txtcko obsahuje bludisko
tie divne znaky si nevsimajte to je v konzole v poriadku, S=start F=finish len mne by to malo prepisat to F a jakosi to nejde a nwm preco pls pomozte
Kód: Vybrať všetko
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
struct uzol
{
int x;
int y;
char smer;
} uzly[20];
int aktUzol=0;
char pole[20][10];
char dalsiKrok(int x, int y)
{
if(pole[x][y-1]==' '||pole[x][y-1]=='F')
return'U';
else if(pole[x][y+1]==' '||pole[x][y+1]=='F')
return'D';
else if(pole[x+1][y]==' '||pole[x+1][y]=='F')
return'R';
else if(pole[x-1][y]==' '||pole[x][y-1]=='F')
return'L';
else
return'N';
}
void vratUzol(int & x, int & y)
{
aktUzol--;
x=uzly[aktUzol].x;
y=uzly[aktUzol].y;
return;
}
void akUzol(int x, int y)
{
int i=0;
char smer;
if(pole[x][y-1]==' ')
i++;
if(pole[x][y+1]==' ')
i++;
if(pole[x+1][y]==' ')
i++;
if(pole[x-1][y]==' ')
i++;
if(i>=2)
{
uzly[aktUzol].x=x;
uzly[aktUzol].y=y;
if(pole[x][y-1]=='x')
smer='U';
if(pole[x][y+1]=='x')
smer='D';
if(pole[x+1][y]=='x')
smer='R';
if(pole[x-1][y]=='x')
smer='L';
uzly[aktUzol].smer=smer;
aktUzol++;
}
return;
}
bool Nacitaj(void)
{
char znak;
ifstream file;
file.open("maze.txt");
for(int y=0;y<11;y++)
{
for(int x=0;x<21;x++) {
znak=file.get();
pole[x][y]=znak;
}
}
file.close();
}
void Nakresli(void)
{
for(int y=0;y<11;y++)
{
for(int x=0;x<20;x++)
cout<<pole[x][y];
cout<<endl;
}
}
int main(void)
{
system("color e");
Nacitaj();
Nakresli();
int i=0;
int x=1, y=1;
bool game=true;
while(game!=false)
{
akUzol(x,y);
pole[x][y]='x';
switch(dalsiKrok(x,y))
{
case 'U':
y--;
break;
case 'D':
y++;
break;
case 'R':
x++;
break;
case 'L':
x--;
break;
case 'N':
vratUzol(x,y);
break;
}
if(pole[x][y]=='F')
break;
pole[x][y]='A';
Nakresli();
cout<<"X= "<<x<<"\n"<<"Y= "<<y<<endl;
Sleep(100);
}
for(i=0;i<=20;i++)
cout<<"Uzol c:"<<i<<"\nX:"<<uzly[i].x<<"\nY:"<<uzly[i].y<<endl;
cout<<"Ciel najdeny! :D\n";
cin.get();
return 1;
}