Kezdőoldal » Számítástechnika » Programozás » Milyen játékot vagy projektet...

Milyen játékot vagy projektet készítsek (pascal)?

Figyelt kérdés
Pascalban tanulunk programozni és nemrég elkezdtük a grafikát, még csak az alapokat tanultuk de már kéne készítsünk egy kis játékot vagy akármilyen projektet aminek van valami értelme, és jegyet kapunk érte, de nem tudom hogy mit csináljak, ötleteket várok.Grafikából amit tanultunk:Alakzatok rajzolása(kör, téglalap,háromszög),háttérszín és alakzatszín, alakzatok mozgatása(akár billentyűkkel).Kérlek segítsetek fontos.

2012. jún. 14. 22:02
1 2 3 4 5
 11/45 A kérdező kommentje:

Azt hogyan csinálhatom meg, hogy ha beolcvasok egy számot(1-tól 9-ig) akkor abban a négyzetbe rakja az x-et(vagy 0-át) lévén hogy 3x3-as amőba tábláról van szó.


Meg azt hogy a gép rakjon véletszerüen egy olyan helyre 0-t(vagy x-et) ami már nem foglalt.


És hogy írja ki hogyha nyertem vagy nem.tehát hogy érzékeli hogy egy sorba kijött a 3 azonos jel.

Fontos lenne.Előre is kösz.

2012. jún. 17. 15:22
 12/45 tabaki ***** válasza:

Bocs, hogy maradok a tizenötösnél...

Írtam neked egy tizenötös-játékot, hátha segít. Ez csak karakteres képernyőn fut, de a megjelenítésen kívül grafikus program esetén is minden működhetne hasonlóan.

Arról mindenesetre tudjál, hogy nem vagyok programozó, úgyhogy bátran bíráld felül az esetleges marhaságaimat.


A programot két változatban készítettem el. Az első a régi szép basic-kort idéző begépelős, a mozgatni kívánt kocka számát kell beírni az inputsorba. Ez eléggé lökött megoldás, nem is magyarázom, de hátha tetszik, akkor majd kitalálod, mit csinál. A kód kissé fésületlen, de működik. A konstansok megváltoztatásával elvileg könnyen átírható más méretű táblára.


A második kódot, amely nyílbillentyűs mozgatásra épül, tőlem telhetően bőségesen kommenteztem, de mivel kifutottam az időből, szokásomtól eltérően nem fejtem ki bővebben a honlapomon, kétszer ad, ki gyorsan ad... Szívfájdalmam, hogy ebben még bűvös számokat használok konstansnevek helyett, ezért csak a hagyományos 4*4-es táblát produkálja, de az általad megcélzott grafikus képernyőn amúgy sem egyszerű a kockák rajzának futás közben való generálása. Gondolom, előre elkészített rajzokat (vagy kockánként kidolgozott rajzoló eljárásokat) használsz majd, akkor meg nem érdekes a kötött forma.


A kódokat Geany-vel szerkesztettem, ha a Free Pascal IDE hülyén tabulálja, bocsi.

Innen töltheted le őket:


tabaki.uw.hu/tizenotos/tizenotos.zip


Sok sikert, megküldhetnéd az eredményt. (tabaki@uw.hu)

2012. jún. 17. 17:10
Hasznos számodra ez a válasz?
 13/45 A kérdező kommentje:

kösz a játékot viszont nekem épp az az egyik bajom hogy most a sulbiban a grafikát tanuljuk és az az egyik követelmény hogy grafikus ábrázolás legyen, a másik hogy működjön normálisan.Az amőbát már elkezdtem már megvannak az alapok,már csak ezek hiányoznak:

A gép rakjon véletszerüen egy olyan helyre 0-t(vagy x-et) ami már nem foglalt,illetve ne tudjak még egyszer olyan helyre rakni ami már foglalt.


És hogy írja ki hogyha nyertem vagy nem.Tehát hogy érzékelje hogy egy sorba kijött a 3 azonos jel.

Várom a további válaszokat.

2012. jún. 17. 17:49
 14/45 anonim ***** válasza:

Ezek olyan kérdések, amiket nem a grafikus felületen kelll megoldani, hanem vezérlési szinten. Ugyanúgy kell lerakni, érzékelni, mint karakteres felületen. Megjeleníteni kell grafikusan.

Amúgy az amoba játék titka egy jó tömb.

2012. jún. 18. 05:46
Hasznos számodra ez a válasz?
 15/45 Srapnel ***** válasza:
A válaszaidból ítélve itt nem nagyon tudunk segíteni neked, csak ha valaki helyetted megírja. A legjobb az lesz, ha erősen nekiállsz tanulni és gyakorolni. Máshogy nem fog menni. Mert ez a házifeladat csak az első. Úgy nem tudod, meg nincs is értelme végigcsinálni az iskolát, hogy a végén semmit nem fogsz tudni, mert más csinálta meg helyetted.
2012. jún. 18. 12:43
Hasznos számodra ez a válasz?
 16/45 A kérdező kommentje:
Nem az első, már 2 évet jártam, de eddig karakteres feladatokat oldóttunk és azzal sose volt bajom, azt értettem, és a grafikus ábrázolást is értem csak bizonyos dolgokat nem tudok megcsinálni, és nem is kértem teljes programot csak segítséget, elmagyarázni(szóban) hogy hogyan csináljam meg.
2012. jún. 18. 16:48
 17/45 tabaki ***** válasza:

Mindenesetre frissítettem a tegnapi zipet, mert egy-két dolog kimaradt belőlük a hirtelen munkában, meg grafikus képernyőt is nyitottam a kedvedért. A kockák számozására nem használom az általad említett rajzoló utasításokat, csak outtextxy-t, te alkalmazd helyette a tanultakat.


[link]

2012. jún. 18. 21:56
Hasznos számodra ez a válasz?
 18/45 tabaki ***** válasza:

Amúgy ezt az amőbás dolgot nem értem (bár szerintem a Tic-tac-toe játékról van szó, ha belegondolsz, csak az X és O írása hasonlít az igazi amőbajátékra, de hol az amőba-forma, amiről az a nevét kapta?) mert a gép taktikája érdekes kérdés ugyan, de ahhoz képest a te nehézségeid speciel csip-csup ügyeknek tűnnek. Szerintem is egy tömbben kéne könyvelni az egészet, és akkor nagyon egyszerűen meg tudod határozni a vizsgálandó tömbelemeket, és mondjuk összeadod őket. Teszemazt, az üres nullázva van, te írsz be egyeseket, az ellenfél mínusz egyeket, ha az adott tömbelem értéke 0. Ha bármelyik sort, oszlopot vagy átlót összeadva 3 az eredmény, te nyertél, ha -3, akkor az ellenfél. Ha egyik sem következik be, van még lépés. Ez hat összeadás. Lehet, hogy fifikásabban is meg lehet oldani a dolgot, de így parasztilag mindenképpen működik.

A grafika csak leköveti, ami a tömbben történik. Először felejtsd el grafikus felületet, írd meg karakteres képernyőre, ha abban nagyobb gyakorlatod van. Amikor már működik, akkor foglalkozz a rajzzal. A megjelenítő részt később átírni már nudli. Ahol karakteresen egyet léptél és kiírtál egy ikszet, ott majd mondjuk százat lépsz, és egy 100*100-as kockába rajzolsz két átlós vonalat, ésatöbbi.

2012. jún. 18. 22:42
Hasznos számodra ez a válasz?
 19/45 tabaki ***** válasza:
Bocs, 8 összeadás. Nem t'ok számolni, arra ott a gép...
2012. jún. 18. 23:32
Hasznos számodra ez a válasz?
 20/45 Srapnel ***** válasza:

A "sima" 5-ös amőbánál sem nehéz megnézni, kijött-e az 5. Van egy kis teljes indukciós beütése a dolognak. Ha az algoritmus jó, akkor az 5 mindig csak az utolsó lépésben jön össze és ekkor az 5-nek része az utolsó lépés. Vagyis semmi mást nem kell tenni, mint minden beírt lépés helyéről kiindulva megszámolni, hogy a 8 belőle kiinduló irányban hány ugyanolyan színű jel van. Ha 5, vagy annál több, akkor a lépő győzött. A tábla maradék része ilyenkor közömbös. Az meg már mindegy is, hogy hogyan van tárolva. Azért érdemes tömbben tárolni, mert az előbb vázolt keresést egy tömbben kényelemesebben lehet végrehajtani, mintha mondjuk egy (x, y, szín) hármasokból álló listád lenne.


Szerintem egy (2 személyes, nem AI-s) amőba kb. az a szint, amit ki lehet tökölni türelemmel, gondolkodással és próbálkozással 2 év közepes programozástanulás után. Azért lenne fontos ezt a kérdezőnek magától megtennie, mert ekkor szerez felbecsülhetetlen értékű tapasztalatot.


Mit kell megérteni?

- Minimális koordinátageometria (a rajzoláshoz) - Ha ez nincs meg, akkor neki kell állni matekot tanulni

- Minimális tömbkezelés

- Probléma modellezés és dekompozíció - Hogyan bontsa elemeire a problémát az ember

- Egy programnyelv és platform közepes ismerete (tömbök, grafika, egér/bill. IO, vezérlési szerkezetek)


Ennyi. Ebben semmi bonyolult nincs, nem kell trükkös struktúrákat és bonyolult algoritmusokat kitalálni. Ha 2 év nem elég ehhez, akkor vagy hiányosan tanult a kérdező, vagy ez az egész programozás nem neki való. Ezt nem bántásból, tényleg jószándékú véleménynek írom.

2012. jún. 19. 06:06
Hasznos számodra ez a válasz?
1 2 3 4 5

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!