Na zajęcia laboratoryjne musiałem napisać program, który polegał na kierowaniu myszą która chciała dotrzeć do sera.
Sterowanie ustawiłem za pomocą klawiszy W,A,S,D.
Miała ona wykrywać odległość od sera i informować użytkownika.
Problem polega na tym, że gdy znajduje się w odp miejscu na osi x lub y to informuje ze jest na dobrej drodze ale w nast wykonaniu pokazuje znów aby skręcić np w prawo.
Najlepiej wykonajcie program i zobaczycie na czym polega błąd.
Mile widziane porady i sugestie:)
Kod: Zaznacz cały
#include <stdio.h>
#include <time.h>
#include <string.h>
int xs, ys, xm, ym;
char a;
int main()
{
printf("####################################\n");
printf("# W-góra #\n");
printf("# A-lewo D-prawo #\n");
printf("# S-dół #\n");
printf("####################################\n");
srand(time(NULL));
xs= -10 + rand() % 21;
ys= -10 + rand() % 21;
xm= -10 + rand() % 21;
ym= -10 + rand() % 21;
while((xm != xs) || (ym != ys))
{
puts("");
scanf("%c", &a);
if(a == 'w')
{
ym = ym + 1;
if(xm < xs)
puts("W prawo!");
else
puts("W lewo!");
if(ym < ys)
puts("W górę!");
else
puts("W dół!");
if(ym == ys)
puts("Oś Y jest ok!");
if(xm == xs)
puts("Oś x jest ok!");
}
else if(a == 's')
{
ym = ym - 1;
if(xm < xs)
puts("W prawo!");
else
puts("W lewo!");
if(ym < ys)
puts("W górę!");
else
puts("W dół!");
if(ym == ys)
puts("Oś Y jest ok!");
if(xm == xs)
puts("Oś x jest ok!");
}
else if(a == 'a')
{
xm = xm - 1;
if(xm < xs)
puts("W prawo!");
else
puts("W lewo!");
if(ym < ys)
puts("W górę!");
else
puts("W dół!");
if(ym == ys)
puts("Oś Y jest ok!");
if(xm == xs)
puts("Oś x jest ok!");
}
else if(a == 'd')
{
xm = xm + 1;
if(xm < xs)
puts("W prawo!");
else
puts("W lewo!");
if(ym < ys)
puts("W górę!");
else
puts("W dół!");
if(ym == ys)
puts("Oś Y jest ok!");
if(xm == xs)
puts("Oś x jest ok!");
}
}
puts("Udalo Ci sie!");
printf("Współrzedne sera to: %d, %d", xs, ys);
return(0);
}