Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
17.04.2013
Размер:
1.41 Кб
Скачать
// grayrat3.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include "iostream.h"
#include "stdio.h"
#include "math.h"
#include "string.h"
#include "time.h"
#include "stdlib.h"

const n=5,x=n-1,y=n-1,st=0;
int ar[n][n];
int i,j,k,l,i1;
void ggg(void)
{int i,j;
 for(i=0;i<n;i++)
 {
  cout<<endl;
  for(j=0;j<n;j++)
	printf("%d ",ar[i][j]);  

};
cin>>i;
}

void main(void)
{
 k=1;
 {
 time_t t;
 srand(time(&t));
 }
 for(i=0;i<n;i++) 
  for(j=0;j<n;j++)
   ar[i][j]=0;
for(i=1;i<n*2;i++) ar[rand()%n][rand()%n]=1;
ar[0][0]=2;
 ggg();
for(l=0;l<int((n+1)*(n/2+1));l++)
{k++;
 for(i=0;i<n;i++) 
  for(j=0;j<n;j++)
    
	  if(ar[i][j]==k)
	  { i1=k; 
	    if((i > 0)&&(j > 0)&&(ar[i-1][j-1]==st)) ar[i-1][j-1]=k+1;
		if((i > 0)&&(j<n-1)&&(ar[i-1][j+1]==st)) ar[i-1][j+1]=k+1;
        if((i<n-1)&&(j<n-1)&&(ar[i+1][j+1]==st)) ar[i+1][j+1]=k+1;
		if((i<n-1)&&(j > 0)&&(ar[i+1][j-1]==st)) ar[i+1][j-1]=k+1;
        
		if((j > 0)&&(ar[i  ][j-1]==st)) ar[i  ][j-1]=k+1;
        if((j<n-1)&&(ar[i  ][j+1]==st)) ar[i  ][j+1]=k+1;
        if((i > 0)&&(ar[i-1][j  ]==st)) ar[i-1][j  ]=k+1;
        if((i<n-1)&&(ar[i+1][j  ]==st)) ar[i+1][j  ]=k+1; 
        	
	  }    
}
if(ar[y][x]>1) cout<<"za "<<ar[y][x]-2<<" hodov iz labirinta videt "<<endl; 	
if((ar[y][x]==st)||(ar[y][x]==1)) cout<<endl<<"vihoda net"; 
ggg();
cin>>i;
}

Соседние файлы в папке ООП_ЭТМО