Turbo pascalba mi a legbonyolultabb program amit meglehet irni?
az még nagyon a jéghegy csúcsa...tömb.
ezután jönnek gondolom a dinamikus adatszerkezetek, rekurzív algoritmusok, mutatók, filekezelés
aztán ha ezt odavissza vágod álmodból is, akkor elkezdhetsz tanulni graph unitot, írnod kell egy pár sajátot is amivel már tényleges "játékokat" gyárthatsz magadnak.
előre szólok hogy egy snake is feladta nekem, beletört a bicskám.
Ahogy az előttem válaszolók is írták...
Aztán mást is tanulni ( C++, Delphi, Assembly, ... )
Amúgy a Turbo Pascal objektum orientált.
És igen, mint a többiek mondták... előbb az alapokkal ismerkedj...
De már kevés tudással is viszonylag sok érdekességet lehet alkotni magas szintű programnyelveken. Valami szépet összehozni, ami jól mutat, jópofa, hangot ad, színes, mozog...stb.
Turbo Pascal-hoz mindenképpen legyen valami könyved, pl:
- Turbo Pascal 6.0 'A'..'Z' - Angster Erzsébet, Kertész László
- Turbo Pascal 5.5 - Pirkó József
Az első a legfontosabb!!! Egy TP összefoglaló-kivonat. Tök pici könyvecske és a legfontosabb dolgok katalógus-szerűen benne vannak. Szintaktika-puska.
A snake-hez visszatérve... nem is értem mi lehet benne olyan nehéz, aki tud valamicskét programozni (bármilyen magasabb szintű nyelven).
Van x*y képpontom. Amin van egy kukac, meg egy alma, meg üres hely.
2 biten már tudom tárolni a kukac mozgásának az aktuális irányát (4 irány). Vagyis 1 byte-os változóban elfér, amit az irányító gombokkal tudok változtatni.
Tehát... kirajzolom a kukacot és az almát a képernyőre.
A következő képkocka x idő múlva lép érvénybe, amikor a kukac feje arra megy 1 pixelnyit, amerre irányítja az az 1 byte-os változóm, a kukac legutolsó részéből meg eltűnik egy pixel, ha nem evett almát a kukac.
( ha a feje azonos pixelre került, mint az alma, akkor a vége egy ciklusig még változatlan helyen marad és random generátorral megjelenik a képernyő szabad helyén egy alma )
Esetleg még csipog is majd a PC speaker. Ha meg a kukac fejének a helyzete megegyezik a kukac testének valamelyik pontjával, akkor a kukac meghal.
Esetleg almánként számol pontot is. Aztán file-ba kiírja a rekordokat.
Egy tömbben elfér az egész pálya aktuális helyzete. Ahol pixel van, ott 1, ahol nincs pixel, ott 0.
( én mondjuk az egészet 1 dimenziós tömbbe, egy változóba írnám... de mostanában assembly-ben gondolkodok :-D... ((mikrokontrollerek)))
- Egy változó tárolná a kukac fejének aktuális helyzetét, ami egy ciklus után változna 1 helyet egyik irányba.
- Egy meg a végét
- Ha a kukac tudna menni az ellenkező irányba is, akkor csinálnék egy előző állapot irányát (arra menne visszafelé a kukac).
- Illetve az almának a helyzetét is deklarálnám.
- Meg a kukac aktuális irányát
- esetleg pontot számítani
deklarálnék még 6 gombot ( 4 irány, kilépés, pause )
Finomítani lehetne ugye ha highscore táblát is gyártana, meg ha csipogna is, vagy gyorsítani lehetne a kukacot (pl. ha újra nyomom az aktuális irányt, akkor nem vár egy ciklus-időt)
Ja és ez karakteres felületen megoldható.
Ezt cizellálni már nem áll semmiből megcsinálni grafikusan, hogy szép legyen. Színes, meg minden... játék indításakor valami szép animáció... meg dallamos prüttyögés zene címszóval.
Azt asszem' kihagytam, hogy lenne egy kezdő-érték a játék kezdetekor. A mondjuk 3 pontnyi kukac, meg egy random helyű alma.
Ha pedig még jobban törexünk a legideálisabb proci kihasználtságra, akkor az almának a helyzetét is sokféleképpen adhatjuk meg. Amikor kicsi a kukac, lehetne simán random, aztán ha van ott valami (a kukac, vagy később bővítésnél a pályafal), akkor próbálkozzon újra. Ha hosszú a kukac, akkor már más algoritmus a legcélszerűbb. Akkor előbb nézném meg az üres helyeket és utána... na de ennyire már nem kéne megbonyolítani... :-D
Az hogy a képernyő szélének menve véget érjen-e a játék, vagy folytatódjon a játék, már csak apróság. Akár pályákat is lehetne csinálni. Vagy a játéknak egy menüt, ahol ezeket ki lehetne választani. Meg a sebességet is. Vagy akár el is lehetne menteni az aktuális állást.
Visszatérve a kukac mozgására, jut eszembe... olyan kurzort is lehetne használni, amilyen alapból van a pascal-ban, de ilyen egyszerű akárminél tökmind1.
Amíg ezeket leírtam, ennyi idő alatt már a programot is meg lehetett volna írni :-P.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!