Egyszerű konzolos játék (egyetemi feladat)
2019-04-18T17:51:58+02:00
2019-04-18T19:27:43+02:00
2022-08-11T11:55:30+02:00
MrRobot
Sziasztok! 1.félévben megbuktam prog1-ből, így most a 2.félévben még mindig prog1-et tanulok :( Feladtak egy beadandó feladatot, ami ha sikerül, akkor mehetek vizsgázni. De elakadtam.
Eddig jutottam:
using System; using System.IO; using System.Linq; using System.Collections.Ge - Pastebin.com

Ez a feladat:
"Készítsen egyszerű Bul játékot! Ezt két játékos játszhatja egymás ellen. A játéktér
hosszúkás, és egyenlő méretű részterületekre van osztva a hossza mentén. A pálya két végén lévő részterületek a játékosok bázisai. Mindkét játékosnak van ezen kívűl azonos
számú bábuja, kezdetben a saját bázisán.
A játékosok célja, hogy megöljék az ellenség összes figuráját, a következőképpen:
• A játékosok felváltva jönnek. Az éppen következő játékos a köre elején dob egy
kockával. A kockadobás a figurák haladását szabályozza.
• A játékos akármelyik bábúját mozgathatja az ellenséges bázis felé, pontosan annyi
lépéssel, ahányat dobott. A lépés során a bábu nem kerülhet olyan részterületre,
ahol már van egy ugyanahhoz a játékoshoz tartozó bábu. Előfordulhat, hogy emiatt
nem tud lépni. Akkor a másik jön.
• Ha a játékos olyan helyre lépett, ahol egy ellenséges bábu van, akkor fogságba ejti
azt. Ezentúl, amikor a fogságba ejtő bábu lép, a foglya vele együtt mozdul. Ha
olyan bábura lépett, amelynek már vannak foglyai, akkor az adott bábu a foglyaival
együtt ugyanúgy a foglyává válik.
• Ha egy bábu foglyot ejtett, akkor már csak visszafelé, a saját bázisa felé mozoghat.
Ha visszaér a bázisra, a foglyai felszabadulnak (a saját bábuk) vagy meghalnak (az
ellenséges bábuk).
• A cél az ¨osszes ellenséges bábu megsemmisítése.
A játék aktuális állását átláthatóan jelenítse meg a képernyőn. Az egyik játékos színe
fehér, a másiké piros. Mindkét játékos bábui számozva legyenek, és a játéktér alatt
mindig legyen listázva, hogy melyik játékos melyik bábujának hány/milyen színű foglya
van.
A program indításakor a játékos kiválaszthatja, hogy hány mezőre legyen osztva a játéktér,
illetve az egy játékosnál lévő bábuk számát. Lehetővé kell tenni, hogy a játék bármelyik
pontján a játékállást szövegfájlba ki lehessen menteni, illetve a program indításakor egy
régi állást vissza lehessen tölteni.
A feladat megvalósításakor objektumorientált szemléletet kövessen!"

Bármilyen segítség jól jönne :)
Mutasd a teljes hozzászólást!

  • Hali!

    Bármilyen segítség jól jönne :)

    Nekünk meg bármilyen információ azzal kapcsolatosan, hogy mi nem megy, hol/miben akadtál el, mit vársz tőlünk.

    Mutasd a teljes hozzászólást!
  • Ott, hogy ha elfogja az egyik játékos a másik bábúit, akkor nyilvántartani, hogy melyik játékos mennyi bábúja van fogságban, és ha felszabadítják az adott bábúkat akkor visszakerüljenek az eredeti helyükre. Órák óta próbálom megoldani, hogy ha mondjuk a player2 rálép egy olyan oszlopra ahol már a player1 elfogott mondjuk 2 bábút akkor azokat visszaérve a helyére felszabadítsa a player2. De már ott is gondok vannak, hogy amikor valamelyik player olyan oszlopba lép ahol már van másik játékos bábúja akkor nem "fogja el", hanem csak egymás mellett pihennek az oszlopban. Már az agyamnak sajnos gondot okoz az ilyesfajta programozási logika, ezért is írtam ki ezt a kérdést.
    Mutasd a teljes hozzászólást!
  • Szia!

    Megírni nem tudom neked, de erre a feladatra olyan tömböket kell generálni ami több adatot is tud tárolni egy egy bábúról. Pl 5,10 azaz ha 5 játékosod van, akkor a másik dimenzióban 2x akkora legyen mint ahány bábú van. Az első plusz dimenzióban a foglyul ejtett bábú indexe van. Ha pl 10 bábú van akkor 1-5-ig a sajátod, 6-10-ig az ellenségé. A másikban meg el kell tárolni a hozzá tartozó értéket ahol állt. Ha a többi dolog megy, akkor mindig le kell futtatni egy rutint, ami végigmegy ezeken a tömbökön és vizsgálja, hogy az adott indexű bábú az felszabadul vagy meghal. Szóval ez csak egy Nx2N elemű tömb kezelése. A feladatban szerepel, hogy ki is kell menteni az aktuális állást. Ez már rá is világít arra, hogy ez tényleg egy tömb elemekkel operáló program.
    Mutasd a teljes hozzászólást!
abcd