cześć dzięki Spine za pomocne rady :)
przebudowałem swój program pod kątem tablic dwuwymiarowych jednak cieżko mi przekonwertować to na funkcje czy macie jakieś sugestie?
oraz potrzebuje porady jak ugryźć kwestie AI żeby np wyszukiwał najlepsze ruchy
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int x = 6;
int y = 5;
int Kierunek = 0;
int tablica[50] = { 0 };
int index = 0;
int Board[13][11] = {
//0 1 2 3 4 5 6 7 8 9 10
{0,0,0,0,0,0,0,0,0,0,0}, //0
{0,0,0,0,0,0,0,0,0,0,0}, //1
{0,0,0,0,0,0,0,0,0,0,0}, //2
{0,0,0,0,0,0,0,0,0,0,0}, //3
{0,0,0,0,0,0,0,0,0,0,0}, //4
{0,0,0,0,0,0,0,0,0,0,0}, //5
{0,0,0,0,0,9,0,0,0,0,0}, //x6, y5 -> 9 oznacza obecną pozycje
{0,0,0,0,0,0,0,0,0,0,0}, //7
{0,0,0,0,0,0,0,0,0,0,0}, //8
{0,0,0,0,0,0,0,0,0,0,0}, //9
{0,0,0,0,0,0,0,0,0,0,0}, //10
{0,0,0,0,0,0,0,0,0,0,0}, //11
{0,0,0,0,0,0,0,0,0,0,0} //12
};
//z kazdego punktu mozliwe 8 ruchow
int PamiecPlanszy[143][8] = {
//indeks wierszy // srodek to PamiecPlanszy[71][0]
// 1 2 3 4 5 6 7 8 9 10 11
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,8,8,8,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, //1
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,8}, {0,1,2,8,8,8,6,7}, {0,1,2,8,8,8,6,7}, {0,8,8,8,8,8,6,7}, {8,8,8,8,8,8,8,8}, {0,1,2,8,8,8,8,8}, {0,1,2,8,8,8,6,7}, {0,1,2,8,8,8,6,7}, {0,8,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, //2
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //3
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //4
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //5
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //6
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //7
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //8
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //9
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //10
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}, {0,8,8,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //11
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,8,6,7}, {8,8,2,3,4,5,6,8}, {8,8,2,3,4,5,6,8}, {8,8,8,8,4,5,6,8}, {8,8,8,8,8,8,8,8}, {8,2,3,4,8,8,8,8}, {8,8,2,3,4,5,6,8}, {8,8,2,3,4,5,6,8}, {0,1,2,8,4,5,6,7}, {0,1,2,3,4,5,6,7}, //12
{0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,8,8,8,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7} //13
};
//glowna petla programu
do{
cin >> Kierunek;
system( "cls" );
if(Kierunek == 0) {
if( PamiecPlanszy[(x-1)*11+y][0] == 8 || PamiecPlanszy[(x-1)*11+y+1+1][0] == 8 || PamiecPlanszy[x*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y][0] == 8 || PamiecPlanszy[(x+1)*11+y-1][0] == 8 || PamiecPlanszy[x*11+y-1][0] == 8 || PamiecPlanszy[(x-1)*11+y-1][0] == 8 ) {
if(PamiecPlanszy[(x-1)*11+y][4] != 4) {
Board[x][y] = Kierunek;
PamiecPlanszy[x*11+y][0] = Kierunek;
x--;
Board[x][y] = 9;
}
}
}
if(Kierunek == 1) {
if( PamiecPlanszy[(x-1)*11+y][1] == 8 || PamiecPlanszy[(x-1)*11+y+1+1][1] == 8 || PamiecPlanszy[x*11+y+1][1] == 8 || PamiecPlanszy[(x+1)*11+y+1][1] == 8 || PamiecPlanszy[(x+1)*11+y][1] == 8 || PamiecPlanszy[(x+1)*11+y-1][1] == 8 || PamiecPlanszy[x*11+y-1][1] == 8 || PamiecPlanszy[(x-1)*11+y-1][1] == 8 ) {
if(PamiecPlanszy[(x-1)*11+y+1][5] != 5) {
Board[x][y] = Kierunek;
PamiecPlanszy[x*11+y][1] = Kierunek;
x--;
y++;
Board[x][y] = 9;
}
}
}
if(Kierunek == 2) {
if( PamiecPlanszy[(x-1)*11+y][2] == 8 || PamiecPlanszy[(x-1)*11+y+1+1][2] == 8 || PamiecPlanszy[x*11+y+1][2] == 8 || PamiecPlanszy[(x+1)*11+y+1][2] == 8 || PamiecPlanszy[(x+1)*11+y][2] == 8 || PamiecPlanszy[(x+1)*11+y-1][2] == 8 || PamiecPlanszy[x*11+y-1][2] == 8 || PamiecPlanszy[(x-1)*11+y-1][2] == 8 ) {
if(PamiecPlanszy[x*11+y+1][2] != 2) {
Board[x][y] = Kierunek;
PamiecPlanszy[x*11+y][2] = Kierunek;
y++;
Board[x][y] = 9;
}
}
}
if(Kierunek == 3) {
if( PamiecPlanszy[(x-1)*11+y][3] == 8 || PamiecPlanszy[(x-1)*11+y+1+1][3] == 8 || PamiecPlanszy[x*11+y+1][3] == 8 || PamiecPlanszy[(x+1)*11+y+1][3] == 8 || PamiecPlanszy[(x+1)*11+y][3] == 8 || PamiecPlanszy[(x+1)*11+y-1][3] == 8 || PamiecPlanszy[x*11+y-1][3] == 8 || PamiecPlanszy[(x-1)*11+y-1][3] == 8 ) {
if(PamiecPlanszy[(x+1)*11+y+1][7] != 7) {
Board[x][y] = Kierunek;
PamiecPlanszy[x*11+y][3] = Kierunek;
x++;
y++;
Board[x][y] = 9;
}
}
}
if(Kierunek == 4) {
if( PamiecPlanszy[(x-1)*11+y][0] == 8 || PamiecPlanszy[(x-1)*11+y+1+1][0] == 8 || PamiecPlanszy[x*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y][0] == 8 || PamiecPlanszy[(x+1)*11+y-1][0] == 8 || PamiecPlanszy[x*11+y-1][0] == 8 || PamiecPlanszy[(x-1)*11+y-1][0] == 8 ) {
if(PamiecPlanszy[(x+1)*11+y][0] != 0) {
Board[x][y] = Kierunek;
PamiecPlanszy[x*11+y][4] = Kierunek;
x++;
Board[x][y] = 9;
}
}
}
if(Kierunek == 5) {
if( PamiecPlanszy[(x-1)*11+y][0] == 8 || PamiecPlanszy[(x-1)*11+y+1+1][0] == 8 || PamiecPlanszy[x*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y][0] == 8 || PamiecPlanszy[(x+1)*11+y-1][0] == 8 || PamiecPlanszy[x*11+y-1][0] == 8 || PamiecPlanszy[(x-1)*11+y-1][0] == 8 ) {
if(PamiecPlanszy[(x+1)*11+y-1][1] != 1) {
Board[x][y] = Kierunek;
PamiecPlanszy[x*11+y][5] = Kierunek;
x++;
y--;
Board[x][y] = 9;
}
}
}
if(Kierunek == 6) {
if( PamiecPlanszy[(x-1)*11+y][0] == 8 || PamiecPlanszy[(x-1)*11+y+1+1][0] == 8 || PamiecPlanszy[x*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y][0] == 8 || PamiecPlanszy[(x+1)*11+y-1][0] == 8 || PamiecPlanszy[x*11+y-1][0] == 8 || PamiecPlanszy[(x-1)*11+y-1][0] == 8 ) {
if(PamiecPlanszy[x*11+y-1][2] != 2) {
Board[x][y] = Kierunek;
PamiecPlanszy[x*11+y][6] = Kierunek;
y--;
Board[x][y] = 9;
}
}
}
if(Kierunek == 7) {
if( PamiecPlanszy[(x-1)*11+y][0] == 8 || PamiecPlanszy[(x-1)*11+y+1+1][0] == 8 || PamiecPlanszy[x*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y+1][0] == 8 || PamiecPlanszy[(x+1)*11+y][0] == 8 || PamiecPlanszy[(x+1)*11+y-1][0] == 8 || PamiecPlanszy[x*11+y-1][0] == 8 || PamiecPlanszy[(x-1)*11+y-1][0] == 8 ) {
if(PamiecPlanszy[(x-1)*11+y-1][3] != 3) {
Board[x][y] = Kierunek;
PamiecPlanszy[x*11+y][7] = Kierunek;
x--;
y--;
Board[x][y] = 9;
}
}
}
//prymitywna wizualizacja planszy
for(int i=0; i<13; i++) {
cout<< "\n";
cout<< Board[i][0];
for(int j=1; j<11; j++) {
cout << Board[i][j];
}
}
//Wypisuje indeksy PamieciPlanszy
cout<< "\n";
for(int i=0; i<143; i++) {
cout << "\n";
cout << i << " numer: " <<PamiecPlanszy[i][0];
for(int j=1; j<8; j++) {
cout << PamiecPlanszy[i][j];
}
if(i<=10) {
cout <<" Board[" << 0 << "][" << i << "]";
}
if(i<22 && i>=11) {
cout <<" Board[" << 1 << "][" << i-11 << "]";
}
if(i<33 && i>=22) {
cout <<" Board[" << 2 << "][" << i-22 << "]";
}
if(i<44 && i>=33) {
cout <<" Board[" << 3 << "][" << i-33 << "]";
}
if(i<55 && i>=44) {
cout <<" Board[" << 4 << "][" << i-44 << "]";
}
if(i<66 && i>=55) {
cout <<" Board[" << 5 << "][" << i-55 << "]";
}
if(i<77 && i>=66) {
cout <<" Board[" << 6 << "][" << i-66 << "]";
}
if(i<88 && i>=77) {
cout <<" Board[" << 7 << "][" << i-77 << "]";
}
if(i<99 && i>=88) {
cout <<" Board[" << 8 << "][" << i-88 << "]";
}
if(i<110 && i>=99) {
cout <<" Board[" << 9 << "][" << i-99 << "]";
}
if(i<121 && i>=110) {
cout <<" Board[" << 10 << "][" << i-110 << "]";
}
if(i<132 && i>=121) {
cout <<" Board[" << 11 << "][" << i-121 << "]";
}
if(i<143 && i>=132) {
cout <<" Board[" << 12 << "][" << i-132 << "]";
}
}
//koniec rozpiski
tablica[index] += Kierunek;
index++;
}while(Kierunek == 0 || Kierunek == 1 || Kierunek == 2 || Kierunek == 3 || Kierunek == 4 || Kierunek == 5 ||Kierunek == 6 || Kierunek == 7);
system( "cls" );
//wygenerowanie zapisu partii
for(int i=0; i<50; i++) {
cout << i+1 << ". " << tablica[i] << " " << tablica[i+1] << " ";
}
return 0;
}