Ütközés feladatban segítség? C#
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!
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
#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!)
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!