Robot hľadá cestu z bludiska

Robot hľadajúci cestu z bludiska -> prehľadávanie so spatným návratom.

#include <cstdlib>
#include <iostream>
#include <windows.h>
#define MAXX 30
#define MAXY 30
#define PP 300
using namespace std;
char blud[MAXX][MAXY];
int r1,r2;
int d1,d2;
bool hura;
void generuj(void)
{
     int i,j;
     for(i = 0; i < MAXX; i++)
       for(j = 0; j < MAXY; j++)
          blud[i][j]=' ';
     for(i = 0; i < MAXX; i++)
     {
       blud[i][0]='S';
       blud[i][MAXY-1]='S'; 
     }     
     for(i = 0; i < MAXY; i++)
     {
       blud[0][i]='S';
       blud[MAXX-1][i]='S'; 
     }
     int app=0;
     while (app<PP)
     {
        do
        {
          i=(rand()%(MAXX-2))+1;
          j=(rand()%(MAXY-2))+1;
        }while(blud[i][j]=='S'||(i==1&&j==1)||(i==MAXX-2&&j==MAXY-2)); 
        blud[i][j]='S';
        app++;
     } 
     r1=r2=1;blud[r1][r2]='R';
     d1=MAXX-2;d2=MAXY-2;blud[d1][d2]='D'; 
}

void vypis(void)
{
     int i,j;
     system("cls");
     for(i =0;i<MAXX;i++)
     {
       for(j=0;j<MAXY;j++) putchar(blud[j][i]);
       putchar('\n');
     }
     //Sleep(100);
}

int kracaj(int x,int y)
{
     if(blud[x][y]=='D')return 0;
        //blud[x][y]='.';
        if(blud[x][y+1]==' '||blud[x][y+1]=='D')
          {blud[x][y]='1';vypis();if(kracaj(x,y+1)==0)return 0;}
        if(blud[x+1][y]==' '||blud[x+1][y]=='D')
          {blud[x][y]='2';vypis();if(kracaj(x+1,y)==0)return 0;}
        if(blud[x][y-1]==' '||blud[x][y-1]=='D')
          {blud[x][y]='3';vypis();if(kracaj(x,y-1)==0)return 0;}
        if(blud[x-1][y]==' '||blud[x-1][y]=='D')
          {blud[x][y]='4';vypis();if(kracaj(x-1,y)==0)return 0;}
        blud[x][y]=' ';            
     return 1;   
} 



int main(int argc, char *argv[])
{
    srand((unsigned)time(NULL));
    generuj();
    vypis();
    hura=false;
    kracaj(r1,r2);
    system("PAUSE");
    return EXIT_SUCCESS;
}

Informácie:

Autor: danciwo
www: http://www.danciwo.net
Kategória: Algoritmy
Jazyk: C/C++
Dátum:10/21/2009 3:00:57 PM



Komentáre:



Pridaj komentár:

Pre vloženie komentáru sa musíte najprv prihlásiť.






 Fórum:
Hardware
Software
Programovanie
Všeobecné témy

 Programy:
C#
C/C++
Java
Pascal
PHP

Linky:

Vretenova webova stranka o programovani v Cpp,c++,C,linuxe...

Wdesign

ByteLeak.com diskusné fórum

BlueBoard.cz