Za ulohu sme dostali urobit vlastnu implementaciu Karla. v jazyku C.. Neviem si však teraz rady s jednou podmienkou... Skompiluje ju v poriadku avšak stále nerobí to čo by mala robiť... Cielom tej podmienky je aby Karel nemohol prejst cez stenu...
Kód: Vybrať všetko
#include <windows.h>
#include <stdlib.h>
#define MAX_HEIGHT 20
#define MAX_WIDTH 20
#define WALL -1
#define EMPTY 0
int width,height,karel_x,karel_y;
enum {sever,vychod,juh,zapad} karel_direction;
int i,j;
int world[MAX_HEIGHT][MAX_WIDTH];
void turnOn(){
karel_x=0;
karel_y=0;
karel_direction=vychod;
width=5;
height=6;
int newWorld[5][6]={
{0,-1,0,0,-1,0},
{0,-1,-1,-1,-1,0},
{0,0,0,0,0,0},
{0,-1,-1,-1,-1,0},
{0,-1,0,0,-1,0}};
for(i=0;i<height;i++){
for(j=0;j<width;j++)
world[i][j]=newWorld[i][j];
}
}
void draw(){
system("CLS");
for(i=0;i<height;i++){
for(j=0;j<width;j++){
if(karel_y==i && karel_x==j) { if (karel_direction==vychod) printf(">"); else
if (karel_direction==juh) printf("v"); else
if (karel_direction==zapad) printf("<"); else
if (karel_direction==sever) printf("^");
}
else if(world[i][j]==WALL)
printf("#");
else printf(".");
}
printf("\n");
}
sleep(1250);
}
void move()
{
if (karel_direction==vychod && world[karel_x+1][karel_y]==EMPTY){karel_x++; draw();} else printf("CHYBA!!!");
}Problem je v tejto podmienke if (karel_direction==vychod && world[karel_x+1][karel_y]==EMPTY){karel_x++; draw();} else printf("CHYBA!!!");
Mozte mi prosim poradit?
Za odpoved vopred dakujem...