Buna, stiti cumva cum as putea rezolva aceasta problema mai eficient?
În jocul tău, șarpele se va deplasa printr-un grid de 15 linii și 17 coloane, iar acesta se va deplasa doar atunci când primește o comandă de la jucător. Singura mutare invalidă este atunci când șarpele se lovește de un zid (încearcă să iasă în afara gridului). Acest gen de mutări vor fi ignorate, iar șarpele va rămâne în aceeași poziție. Poziția inițială a șarpelui este în mijlocul tablei (linia 8 coloana 9). Liniile tablei și coloanele tablei sunt numerotate începând cu 1.
Află câte deplasări valide a făcut șarpele.
Cerință
În această problemă va trebui să scrii o clasă Snake care conține următoarele metode:
deplasare(int) - numărul primit ca parametru semnifică direcția în care șarpele se va deplasa: 0 - sus, 1 - dreapta, 2 - jos, 3 - stânga
mutariValide() - Returnează numărul de mutări valide făcute de către șarpe până la momentul curent.
Practic plec de pe pozitia [8][9] si trebuie sa ma deplasez pe un grid cu 15 linii si 17 coloane, solutii? Din cate am inteles, nu trebuie sa folosesc neaparat for si niste conditii dar acum nu stiu cum ar trebui exact, am inteles cum este o mutare.
Daca este pe pozitia [8][9] si vrea sa o ia la dreapta o sa fie [9][9] dupa daca se duce in sus cand apelezi un for (in functia main) o sa fie [9][1], dar nu stiu de unde sa plec..
int valid = 0, linie = 15, coloana = 17;
void deplasare(int numar) {
if (a == 0 && X < linie && X > 1 && Y < coloana && Y > 1) {
X--;
valid++;
}
else if (a == 1 && Y < coloana && Y > 1 && X < linie && X > 1) {
Y++;
valid++;
}
else if (a == 2 && X < linie && X > 1 && Y < coloana && Y > 1) {
X++;
valid++;
}
else if (a == 3 && Y < coloana && Y > 1 && X < linie &&X > 1) {
Y--;
valid++;
}
}
int mutariValide() {
return valid;
}
}
joc.deplasare(1);
System.out.println(joc.mutariValide()); // 1
for(int i = 0; i < 100; ++i)
joc.deplasare(0);
System.out.println(joc.mutariValide()); // 8
}
Răspunsuri la întrebare
Răspuns de
0
Dupa [9][9] daca mergi la dreapta o sa fie [9][1] sau [10][9]?
In general, jocurile au un "main loop", adica un for infinit, cu break la sfarsitul jocului (apasarea tastei ESC / Q de catre player, ramanerea fara vieti, etc), conditie pusa de tine.
Daca nu intelegi sau ai nevoie si de altceva scrie-mi si o sa te incerc sa te ajut.
Alte întrebări interesante
Matematică,
8 ani în urmă
Biologie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
In general, jocurile au un "main loop", adica un for infinit, cu break la sfarsitul jocului (apasarea tastei ESC / Q de catre player, ramanerea fara vieti, etc), conditie pusa de tine.
Daca nu intelegi sau ai nevoie si de altceva scrie-mi si o sa te incerc sa te ajut.