Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -Skoki prawo dol - dzialaja w calosci sprawnie (pomijajac zaznaczenie - malo istotny problem, bardziej estetyczny) - brak bugów, skonczone
- Do Zrobienia 13-02-11 02:11
- -sprawdzic skok 4,2 na 5,3 - naprawione
- -system skoku lewo dol - dziala, w calosci sprawnie (oprocz niepotrzebnego zaznaczenia po skoku - patrzy wyzej)
- -zabezpieczenia przy skoku na krawedz - dziala, nie mozna przeskoczyc za plansze
- -system skokow dla pionkow 2
- -system zamiany pionkow na damki
- debuger:
- cout<<"debug 1";getchar();cin.ignore();
- */
- #include <iostream>
- #include <cstdio>
- #include <windows.h>
- HANDLE kon = GetStdHandle(STD_OUTPUT_HANDLE);
- using namespace std;
- int szachownica[9][9];
- int pionki1[9][9];
- int pionki2[9][9];
- int x,xz,y,yz; //zmienne przesuwajace
- int licz, zazn; //zmienna liczaca ilosc przejsc petli do w wypisz_szach oraz zmienna wazna przy zmianie kolora zaznaczenia
- int runda=1;
- int stop; //zmienna potrzebna przy przeskakiwaniu, aby pionek przeskakiwal a nie podmienal sie. omija warunek
- void pion() // funkcja do pionkow startowych
- {
- pionki1[1][1]=1;
- pionki1[1][3]=1;
- pionki1[1][5]=1;
- pionki1[1][7]=1;
- pionki1[2][2]=1;
- pionki1[2][4]=1;
- pionki1[2][6]=1;
- pionki1[2][8]=1;
- pionki1[3][1]=1;
- pionki1[3][3]=1;
- pionki1[3][5]=1;
- pionki1[3][7]=1;
- pionki2[6][2]=2;
- pionki2[6][4]=2;
- pionki2[6][6]=2;
- pionki2[6][8]=2;
- pionki2[7][1]=2;
- pionki2[7][3]=2;
- pionki2[7][5]=2;
- pionki2[7][7]=2;
- pionki2[8][2]=2;
- pionki2[8][4]=2;
- pionki2[8][6]=2;
- pionki2[8][8]=2;
- }
- void pion1()
- {
- do
- {
- if(pionki1[x][y]==1) // przesuwanie PIONKOW 1
- {
- stop=0;
- SetConsoleTextAttribute (kon,10); // kolor X
- cout << endl << "xz: ";
- cin >> xz;
- if(xz!=0)
- {
- SetConsoleTextAttribute (kon,11); //kolor Y
- cout << "yz: ";
- cin >> yz;
- if(((xz%2) && (yz%2)) || ((!xz%2) && (!yz%2)) || ((x%2) && (y%2)) || ((!x%2) && (!y%2))) //sprawdza czy pionki leza na bialych polach
- {
- if((pionki2[xz][yz])==2) // system przeskakiwania pionkow | sprawdza czy pionek ktory zaznaczamy jest pionkiem przeciwnika
- {
- stop=1;
- if(pionki2[xz+1][yz+1]!=2 && pionki1[xz+1][yz+1]!=1) //sprawdza czy za przeskakiwanym pionkiem jest inny pionek (1 lub 2)
- {
- if(yz>y) // w prawo
- {
- if(x==7 && y!=8 && y!=7) //zabezpieczenie, aby nie dalo sie przeskakiwac za plansze
- {cout<<"debug 1";getchar();cin.ignore();
- stop=1;
- continue;
- }
- pionki1[x][y]=0;
- pionki1[xz+1][yz+1]=1;
- pionki2[xz][yz]=0;
- zazn=1;
- stop=1;
- }
- }
- if((pionki2[xz+1][yz-1]!=2 && pionki1[xz+1][yz-1]!=1)) //sprawdza czy za przeskakiwanym pionkiem jest inny pionek (1 lub 2)
- {
- if(yz<y) // w lewo
- {
- if(y==1 || y==2) //zabezpieczenie, aby nie dalo sie przeskakiwac za plansze
- {
- stop=1;
- continue;
- }
- pionki1[x][y]=0;
- pionki1[xz+1][yz-1]=1;
- pionki2[xz][yz]=0;
- stop=1;
- zazn=1;
- }
- }
- }
- if(pionki1[xz][yz]==0 && xz-x==1 && yz-y==1 && stop!=1) //warunki prawidłowego ruchu (PRAWO DOL)
- {
- pionki1[xz][yz]=1;
- pionki1[x][y]=0;
- zazn=1;
- runda++;
- }
- if(pionki1[xz][yz]==0 && xz-x==1 && yz-y==-1 && stop!=1) //warunki prawidłowego ruchu (LEWO DOL)
- {
- pionki1[xz][yz]=1;
- pionki1[x][y]=0;
- zazn=1;
- runda++;
- }
- if(x==xz && y==yz) //gdy zaznaczymy te samo pole
- {
- pionki1[xz][yz]=1;
- zazn=0;
- }
- }
- licz++;
- }
- if(xz==0) //gdy pierwsza wspolrzedna przesuniecia = 0
- {
- zazn=1;
- }
- }
- if(pionki1[x][y]==0) //gdy pole ktore zaznaczamy = 0, przerywa funkcje i nie zaznacza
- {
- zazn=1;
- break;
- }
- }
- while(zazn==0);
- }
- void pion2()
- {
- do
- {
- if(pionki2[x][y]==2) // przesuwanie PIONKOW 2
- {
- SetConsoleTextAttribute (kon,10); // kolor X
- cout << endl << "xz: ";
- cin >> xz;
- if(xz!=0)
- {
- SetConsoleTextAttribute (kon,11); //kolor Y
- cout << "yz: ";
- cin >> yz;
- if(xz%2 && yz%2 || (xz%2)==0 && (yz%2)==0)
- {
- if(pionki2[xz][yz]==0 && xz-x==-1 && yz-y==-1) //warunki prawidłowego ruchu (LEWO GORA)
- {
- pionki2[xz][yz]=2;
- pionki2[x][y]=0;
- zazn=1;
- runda++;
- }
- if(pionki2[xz][yz]==0 && xz-x==-1 && yz-y==1) //warunki prawidłowego ruchu (PRAWO GORA)
- {
- pionki2[xz][yz]=2;
- pionki2[x][y]=0;
- zazn=1;
- runda++;
- }
- if(x==xz && y==yz) //gdy zaznaczymy te samo pole
- {
- pionki2[xz][yz]=2;
- zazn=0;
- }
- }
- licz++;
- }
- if(xz==0) //gdy pierwsza wspolrzedna przesuniecia = 0
- {
- zazn=1;
- }
- }
- if(pionki2[x][y]==0) //gdy pole ktore zaznaczamy = 0, przerywa funkcje i nie zaznacza
- {
- zazn=1;
- break;
- }
- }
- while(zazn==0);
- }
- void wypisz_szach() // funkcja wypisujaca szachownice
- {
- do
- {
- licz=0;
- system("cls");
- SetConsoleTextAttribute (kon,11); // kolor Y
- cout << " 12345678" << endl
- << " ________" << endl;
- SetConsoleTextAttribute (kon,15);
- for(int i=1; i<=8; i++)
- {
- SetConsoleTextAttribute (kon,10); // kolor X
- cout << i << "|";
- SetConsoleTextAttribute (kon,15);
- for(int k=1; k<=8; k++)
- {
- SetConsoleTextAttribute (kon,15);
- if(i%2 && (k%2)==0 || (i%2)==0 && k%2) // kolorowanie szachownicy
- {
- SetConsoleTextAttribute (kon,2);
- }
- if(i==x && k==y && zazn==0) // kolorowanie zaznaczenia
- {
- SetConsoleTextAttribute (kon,1);
- }
- if(pionki1[i][k]==1) //konwersja pionki1 > szachownica
- {
- szachownica[i][k]=1;
- }
- if(pionki2[i][k]==2) //konwersja pionki2 > szachownica
- {
- szachownica[i][k]=2;
- }
- if(pionki1[i][k]==0 && pionki2[i][k]==0) //gdy nie ma pionkow wypisuje 0
- {
- szachownica[i][k]=0;
- }
- cout << szachownica[i][k];
- }
- cout << endl;
- }
- zazn=0;}
- while(licz==1);
- }
- int main() // glowny program
- {
- pion(); //wypisanie pionkow
- do
- {
- wypisz_szach(); //wypisanie szachownicy
- if((runda%2)==1)
- {
- cout << endl << "Runda: " << runda << " - Gracz 1!"; // ruch GRACZA 1
- SetConsoleTextAttribute (kon,10);
- cout << endl << "x: "; //zaznacza pionki na szachownicy
- cin >> x;
- if(x==0)
- {
- break;
- }
- SetConsoleTextAttribute (kon,11);
- cout << "y: ";
- cin >> y;
- wypisz_szach();
- pion1();
- wypisz_szach();
- zazn=0;
- }
- if((runda%2==0))
- {
- cout << endl << "Runda: " << runda << " - Gracz 2!"; // ruch GRACZA 2
- SetConsoleTextAttribute (kon,10);
- cout << endl << "x: "; //zaznacza pionki na szachownicy
- cin >> x;
- if(x==0)
- {
- break;
- }
- SetConsoleTextAttribute (kon,11);
- cout << "y: ";
- cin >> y;
- wypisz_szach();
- pion2();
- wypisz_szach();
- zazn=1; // naprawia bład przy niepotrzebnym zaznaczeniu po ruchu 2 gracza
- }
- }
- while(x!=0);
- cin.ignore();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement