Kezdőoldal » Számítástechnika » Programozás » Ütközés feladatban segítség? C#

Ütközés feladatban segítség? C#

Figyelt kérdés

Sziasztok!

Idén kezdtem a programozást C#-ban, és kaptam egy házi feladatot, aminek a logikáját nagyjából értem, de lekódolni még nem tudom.

Ehhez lenne segítségre szükségem!


Természetesen nem kérem senkitől, hogy kódolja le helyettem, azt nekem kell, de már az elején rengeteg kérdésem lenne.


A feladat:

Ütközé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<=100000) 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 és mozgás irányát (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!


Tabla.be:

7 10 3 100

4 3 J

2 6 F

4 8 B


Mosta abba a hibába futottam bele, hogy ha be akarom olvasni az első sort és azt egy tömb elemeiként eltárolni, nem megy.

Az meg van, hogy beolvasom az első sort, és tudom, hogy split-tel a szóközöket kell keresnem, de a szóköz előtti számot hogy tárolom el a tömb[i]-edik elemébe?


Előre is köszönöm a segítséget!



2016. ápr. 17. 18:23
 1/5 A kérdező kommentje:
Megoldva!
2016. ápr. 17. 18:52
 2/5 anonim ***** válasza:

Az első sor 4 változóját elmented 4 intbe, adsz nékik szép nevet. Utána for ciklussal olvasol a fileból (for i=0;i<babukszama;i++), csinálsz 1 osztályt mondjuk string ctorral (bábu: Int x, int y, char mozgás), és feltöltesz belőle egy listát (List<bábu> bábuk = New; bábuk.add (new bábu);

A végén csinálsz egy for ciklust k-ra, lépteted a bábukat, és a ciklus végén megnézed, hogy összeakadtak e. Ha igen, akkor cwtabtab koordináta, vészfék állj, ha nem, akkor cwtabtab -1

2016. ápr. 17. 18:54
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:
Nem csinálhatom listával, mert nem tanultuk még azokat :/
2016. ápr. 17. 19:19
 4/5 anonim ***** válasza:
A "Megoldva" helyett jó lenne, ha azt írnád inkább le, hogy hogyan oldottad meg, az többet segítene az egyéb idetévedőknek :)
2016. ápr. 18. 03:50
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

#2.-es vagyok:

List<bábu> helyettesítendő:

bábu[] bábuk = new bábu[bábukszáma]();

for (int i=0; i< bábukszáma; i++)

{

bábuk[i] = new bábu()...;

}


Konstruktort tanultátok?

public class bábu

{

private int x;

private int y;

private char irány;


public bábu(string sor)

{

var elemek = string.Parse(sor, new char[]{' '});

x = elemek[0];

y = elemek[1];

irány = elemek[2];

}

}


Osztálymetódusok, property-k, accessor metódusok?

public int GetXAt(int t)

{

switch(irány)

{

case 'J': return x +

...

}

}


Vagy BábutMozgat(char irány)

{

switch(irány)

case J:

x = x +

y = y +

...

}

}


Ha switch... case-t nem tanultatok, akkor if (irány == 'J') { return x = ...}

Ha struktúrált programozással kell (if közben nincs return), akkor int result; if (irány == 'j') {result = x + }... else if (...) ... else {} ... return result; (Itt nagyon fontos, hogy else if-et használj, mert nincs return, ami kidobjon a metódusból!)

2016. ápr. 18. 18:50
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!