#include #include #include char ala[10][10]; int xpos; int ypos; int axpos; int aypos; int l2bi=0; int saab=0; void readfile(int lvl) { int i, j; FILE *f; char failinimi[256]; sprintf(failinimi, "level.%d", lvl); printf(failinimi); f=fopen(failinimi, "r"); for(i=0;i<=9;i++) for(j=0;j<=9;j++) { ala[i][j]=fgetc(f); if(ala[i][j]=='*') { xpos=j; ypos=i; } if(ala[i][j]=='a') { axpos=j; aypos=i; } } fclose(f); } /*void kontroll(int x, int y) { printf("%d %d\n", x, y); if(ala[x+1][y]=='a') saab=1; if(ala[x-1][y]=='a') saab=1; if(ala[x][y+1]=='a') saab=1; if(ala[x][y-1]=='a') saab=1; if(ala[x+1][y]==' ') kontroll(x+1, y); if(ala[x-1][y]==' ') kontroll(x-1, y); if(ala[x][y+1]==' ') kontroll(x, y+1); if(ala[x][y-1]==' ') kontroll(x, y-1); }*/ void printout() { int i, j; printf("\n+----------+\n"); for(i=0;i<=9;i++) { printf("|"); for(j=0;j<=9;j++) printf("%c", ala[i][j]); printf("|\n\r"); } } void move_right() { if(ypos<9) if(ala[xpos][ypos+1]==' ') { ala[xpos][ypos]=' '; ala[xpos][++ypos]='*'; } else if(xpos==axpos&&ypos+1==aypos) l2bi=1; } void move_left() { if(ypos>0) if(ala[xpos][ypos-1]==' ') { ala[xpos][ypos]=' '; ala[xpos][--ypos]='*'; } } void move_up() { if(xpos>0) if(ala[xpos-1][ypos]==' '||ala[xpos-1][ypos]=='a') { ala[xpos][ypos]=' '; ala[--xpos][ypos]='*'; } } void move_down() { if(ypos<9) if(ala[xpos+1][ypos]==' '||ala[xpos+1][ypos]=='a') { ala[xpos][ypos]=' '; ala[++xpos][ypos]='*'; } } void move() { int c; c=getchar(); printf("xpos:%d ypos:%d", xpos, ypos); switch(c) { case 'a': move_left(); break; case 'd': move_right(); break; case 'w': move_up(); break; case 's': move_down(); break; } system("cls"); printout(); } int main(void) { int level; for(level=1;;level++) { readfile(level); //kontroll(xpos, ypos); printout(); for(;;) { if(xpos==aypos&&ypos==axpos) break; move(); } if(l2bi==1) { system("cls"); } system("pause"); } }