Kezdőoldal » Számítástechnika » Programozás » C# ütközés játéktábla feladat...

C# ütközés játéktábla feladat hogyan lehetséges lista,linq nélkül ?

Figyelt kérdés

Egy játéktáblán a 0. időegységben L bábu van. Mindegyiket elindítjuk valamerre. Egy

időegység alatt mindegyik a neki megfelelő távolságra mozdul el, a tábla szélére érve

megállnak. Lehetséges, hogy előbb-utóbb két bábu összeütközik: ugyanarra a helyre lépnének

vagy átlépnének egymáson.

Készítsen programot, amely megadja, hogy K időegységen belül mikor ütközik legelőször

két bábu!

A tabla.be szöveges állomány első sorában a játéktábla sorai és oszlopai száma

(1N,M100), a bábuk száma (1L10) és az időtartam (1K100 000) van, egyetlen

szóközzel elválasztva. A következő L sor egy-egy bábu leírását tartalmazza: a kezdő helyét

(1SiN, 1OiM) és mozgás irányát (Xi

,{F,L,J,B} – fel, le, jobbra, balra), egy-egy

szóközzel elválasztva.

A tabla.ki szöveges állomány egyetlen sorába az első ütközés időpontját kell írni! Ha

K időegységen belül nincs ütközés, akkor -1-et kell kiírni!

Példa:

tabla.be tabla.ki

7 10 3 100 3

4 3 J

2 6 F

4 8 B

Magyarázat: A bábuk helyzete időegységenként:

1: (4,4), (1,6), (4,7)

2: (4,5), (1,6), (4,6)

3: (4,6), (1,6), (4,5)

A 3. időegységre az 1-es és a 3-as bábu egymáson átlépett volna, azaz a 3.

időegységben ütköztek.


Fontos hogy listát,linq nem lehet használni és kezdőként nehéz feladat számomra.Előre is köszönöm a segítségeket.



2021. nov. 12. 18:57
 1/8 anonim ***** válasza:
Senki sem fogja helyetted megoldani. Hol akadtál el pontosan?
2021. nov. 12. 19:17
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
Csak listát nem lehet használni, vagy más adatstruktúrát sem? Ha mást lehet, akkor ez egy egyszerű bfs.
2021. nov. 12. 19:53
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

Egy babu egy idoegyseg alatt mindig csak 1 cellat lep?

Illetve ha nem valtoztathatnak iranyt, akkor mi ertelme van k > max(n, m)-nek? Max 99 idoegyseg utan egy helyben fog allni mindegyik.

2021. nov. 12. 20:31
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
Egyszerűség kedvéért képzeljünk el egy sakktáblát mezőkkel. Minden mező egy objekt, ami tárolja mi lehet rajta, plusz referenciát a köznyező mezőkre. Így van egy struktúrád ami nem lista mégis működik.
2021. nov. 12. 22:22
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:
Itt vagy koztunk kerdezo?
2021. nov. 13. 08:54
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

#4: Szerintem te nagyon túlbonyolítod, azért ehhez nem kell gráfot építeni.

Elég egy (vagy pár) sima N*M-es tömb (tekintve, hogy N és M elég kicsi, max 100)

Az adott helyeken pedig van egy struktúra amiben benne van a bábu sorszáma és iránya. Vagy ha úgy tetszik, akkor 2 ilyen tömböd van, egyik a sorszámokat tartalmazza, másik az irányokat. Kb tökmindegy, bár az utóbbi esetben valószínűleg valamivel (de nem számottevőem) lassab programot tudsz írni.

Igazából az a kérdés, hogy mi van akkor, ha pl az egyik bábu jobbra, másik lefelé lép és a jobbra lépő oda lépne ahol a lefelé lépő kezdetben áll:

(1,1), (1,2)

(1,2), (2,1)


Ekkor az (1,2) mezőn ideiglenesen, részben egyszerre vannak. Ha ez határozatlan (elfogadják ütközésnek is és nem ütkötésnek is), akkor nagyon egyszerű a feladat, hiszen csak sorban a bábukat át kell rakni az új helyre és megnézni, hogy van-e már ott valami amikor éppen lép.


Ha ez meg van határozva (akármelyik módon), akkor egy picikét bonyolultabb, de még így simán megoldható :)

2021. nov. 13. 09:02
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:

Kérdező vagyok.

Nem azért írtam ide a kérdést hogy valaki a komplett programot ide írja.Inkább a feladat megértéséhez kellene segítség,miként kéne felépíteni a feladatot.Lista,Linq függvények,Tömb rendezési algoritmusokat nem lehet használni.Ezek helyett programozási tételek használata megengedett.Köszönöm az eddigi segítségeket

2021. nov. 13. 15:06
 8/8 anonim ***** válasza:
Mivel max. 10 babu lehet, ezert bfs-nel gyorsabb, ha O(L^2) komplexitassal vegigiteralsz minden lehetseges paron es megvizsgalod, hogy a 2 adott babu utkozik-e es ha igen, akkor mennyi idoegyseg mulva (ez ugye konstans idoben eldontheto). Ehhez nem kell semmi egy tombon kivul, amiben a babukat tarolod.
2021. nov. 13. 15:17
Hasznos számodra ez a válasz?

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!