witam, mam pewien problem. stworzyłem program w którym po dwuwymiarowej tablicy losowo porusza się punkt, aż do natrafienia na jeden z końców tablicy. nastepnie program wyświetla wartość na brzegu tablicy na który trafił. chcę aby czynność błądzenia wykonywała się np 10 razy. ale w pętli for dostaję za każdą iteracją ten sam wynik. Z góry dziękuję za podpowiedzi :)
#include <iostream>
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
const int N=15;
const int a=1;
const int b=10;
int main() {
int tab [N][N];
int tab1[b];
int x=7;
int y=7;
int licznik=0;
for(int i=0;i<b;i++){
tab1[i]=0;
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
tab[i][j]=0;
}
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
tab[0][j]=100;
}
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
tab[N-1][j]=50;
}
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
tab[i][0]=20;
}
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
tab[i][N-1]=40;
}
}
int suma=0;
srand( time( NULL ) );
for(int k=0;k<500;k++){ // ten fragment kodu chcaiłbym policzyć wielokrotenie, z nowym losowaniem za każdym razem
int liczba=(rand()%4)+1;
if(liczba==1){
if(x==N-a ||y==N-a ||x==0 ||y==0){
cout << "wartosc nabrzegu: "<< endl;
cout <<tab[x][y]<<endl;
cout << endl;
break;
}
tab[x++][y]=1;
licznik++;
}
else if(liczba==2){
if(x==N-a ||y==N-a||x==0 ||y==0){
cout << "wartosc nabrzegu: "<< endl;
cout <<tab[x][y]<<endl;
cout << endl;
break;
}
tab[x--][y]=1;
licznik++;
}
else if(liczba==3){
if(x==N-a ||y==N-a||x==0 ||y==0){
cout << "wartosc nabrzegu: "<< endl;
cout <<tab[x][y]<<endl;
cout << endl;
break;
}
tab[x][y++]=1;
licznik++;
}
else if(liczba==4){
if(x==N-a ||y==N-a||x==0 ||y==0){
cout << "wartosc nabrzegu: "<< endl;
cout <<tab[x][y]<<endl;
cout << endl;
break;
}
tab[x][y--]=1;
licznik++;
}
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
cout << tab[i][j]<<" ";
}
cout <<endl;
}
cout<<endl<<licznik<<endl; // zlicza ilość kroków
return 0;
}