C-tapainen ++/--

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

C-tapainen ++/--

Post by Jani »

Värkkäillessäni muistipaloilla tulin ideaan helpottaa työtä ja laskea tavuja eteenpäin tyyliin

Code: Select all

x++
x+=4
Noh, mikäpä olisi parempi tapa toteuttaa työ kuin muistipalat?

Code: Select all

Function Counter(mem = 0, a = 0)
    If mem = 0 Then
        mem = MakeMEMBlock(4)
        PokeInt mem, 0, a
        Return mem
    EndIf
    num = PeekInt(mem, 0)
    PokeInt mem, 0, num + a
    Return num
EndFunction

num1 = Counter() ' Uusi counter, luku 0
num2 = Counter(0, 7) ' Uusi counter, luku 7

Print "    num1++: " + Counter(num1, 1)
Print "   num1+=5: " + Counter(num1, 5)
Print "      num1: " + Counter(num1)
Print ""
Print " num2+=100: " + Counter(num2, 100)
Print "num2+=num1: " + Counter(num2, Counter(num1))
Print "      num2: " + Counter(num2)

DeleteMEMBlock num1
DeleteMEMBlock num2

WaitKey
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: C-tapainen ++/--

Post by axu »

En nyt oikein tiedä mitä pitäisi sanoa. Tässä funktiossa on yksi suuri ongelma. Se ei nimittäin mitenkään helpota koodin kirjoittamista. Eikö olisi ihan hyvä pidättyä tyylissä x = x + 1 tai jos haluaa säästää muutaman merkin x + 1?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: C-tapainen ++/--

Post by Jani »

axu wrote:En nyt oikein tiedä mitä pitäisi sanoa. Tässä funktiossa on yksi suuri ongelma. Se ei nimittäin mitenkään helpota koodin kirjoittamista. Eikö olisi ihan hyvä pidättyä tyylissä x = x + 1 tai jos haluaa säästää muutaman merkin x + 1?
Onhan siinä se. Kuitenkin omista tottumuksista johtuen oli kyseisen ominaisuuden puute suuri.

Code: Select all

Funktio(Counter(num, 1))
vvvvvvvvvvv
Funktio(num++)
Säästää siinä yhden rivin aina.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: C-tapainen ++/--

Post by axu »

Jani wrote:Onhan siinä se. Kuitenkin omista tottumuksista johtuen oli kyseisen ominaisuuden puute suuri.
Säästää siinä yhden rivin aina.
Ah, niin tietenkin tarkoitat näiden operaattoreiden kutsumista upotettuna muuhun koodiin. Totta, tuotapa en ajatellut. Onhan se joskus kätevää, mutta toisinaan lienee selvempää laittaa eri riveille ne.
EDIT:

Jos parannusehdotusta kaipaat, laadippa vasenkätinenkin operaatio (eli ++x)

Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: C-tapainen ++/--

Post by Jani »

axu wrote:
Jani wrote:Onhan siinä se. Kuitenkin omista tottumuksista johtuen oli kyseisen ominaisuuden puute suuri.
Säästää siinä yhden rivin aina.
Ah, niin tietenkin tarkoitat näiden operaattoreiden kutsumista upotettuna muuhun koodiin. Totta, tuotapa en ajatellut. Onhan se joskus kätevää, mutta toisinaan lienee selvempää laittaa eri riveille ne.
EDIT:

Jos parannusehdotusta kaipaat, laadippa vasenkätinenkin operaatio (eli ++x)

Eipä se ole kuin vaihtaa

Code: Select all

Return num
vvvvvvvvvv
Return num + a
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: C-tapainen ++/--

Post by axu »

Jani wrote:Eipä se ole kuin vaihtaa

Code: Select all

Return num
vvvvvvvvvv
Return num + a
Nyt taitaa olla plusmerkki miinusmerkin tilalla ;)
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C-tapainen ++/--

Post by koodaaja »

Kuinka niin? num+a:han tuohon memblockiinkin kirjoitettiin. ++x pitäisi palauttaa x+1, kuten annettu funktio antaa kun a=1. Jokseenkin järkevämmäksi katsoisin ominaisuuden lisäämisen johonkin jälkikäsittelijään, jolloin funktiokutsun sijaan voisi koodiinsa oikeasti kirjoittaa vain muuttuja++ :>
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: C-tapainen ++/--

Post by Jani »

koodaaja wrote:Kuinka niin? num+a:han tuohon memblockiinkin kirjoitettiin. ++x pitäisi palauttaa x+1, kuten annettu funktio antaa kun a=1. Jokseenkin järkevämmäksi katsoisin ominaisuuden lisäämisen johonkin jälkikäsittelijään, jolloin funktiokutsun sijaan voisi koodiinsa oikeasti kirjoittaa vain muuttuja++ :>
Palautetaan num, mutta kirjoitetaan num + a.
Palauta num + a -> ++x.
Jälkikäsittely on toinen vaihtoehto. :)
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: C-tapainen ++/--

Post by axu »

Eiku hups mitenköhän nyt tuli taas sekoiltua :D Anteeksi tuo edellinen, oikeinhan se tosiaan meni.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Post Reply