Advertisement
pVinc

kkgame.cc

Dec 15th, 2019
143
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class kkgame{
  5.     private:
  6.         char _t[3][3];
  7.  
  8.     public:
  9.         kkgame(){
  10.             for(int i=0; i<=2; i++){
  11.                 for(int j=0; j<=2; j++){
  12.                     _t[i][j] = '-';
  13.                 }
  14.             }
  15.             this->render();
  16.         }
  17.  
  18.         void render(){
  19.             cout << endl << this->_t[0][0] << this->_t[0][1] << this->_t[0][2] << endl;
  20.             cout << this->_t[1][0] << this->_t[1][1] << this->_t[1][2] << endl;
  21.             cout << this->_t[2][0] << this->_t[2][1] << this->_t[2][2] << endl;
  22.         }
  23.  
  24.         bool set(int x, int y, char znak){
  25.             if(x > 2 || x < 0 || y > 2 || y < 0 || (znak != 'X' && znak != 'O')){
  26.                 cout << "Blad" << endl;
  27.                 this->render();
  28.                 return false;
  29.             }
  30.             if(this->_t[x][y] == 'X' || this->_t[x][y] == 'O'){
  31.                 cout << "Juz istnieje" << endl;
  32.                 this->render();
  33.                 return false;
  34.             }
  35.             this->_t[x][y] = znak;
  36.             this->render();
  37.             return true;
  38.         }
  39.  
  40.         bool check(char znak){
  41.             if(this->_t[0][0] == znak && this->_t[0][1] == znak && this->_t[0][2] == znak){
  42.                 return true;
  43.             }
  44.             if(this->_t[1][0] == znak && this->_t[1][1] == znak && this->_t[1][2] == znak){
  45.                 return true;
  46.             }
  47.             if(this->_t[2][0] == znak && this->_t[2][1] == znak && this->_t[2][2] == znak){
  48.                 return true;
  49.             }
  50.  
  51.             if(this->_t[0][0] == znak && this->_t[1][0] == znak && this->_t[2][0] == znak){
  52.                 return true;
  53.             }
  54.             if(this->_t[1][0] == znak && this->_t[1][1] == znak && this->_t[1][2] == znak){
  55.                 return true;
  56.             }
  57.             if(this->_t[2][0] == znak && this->_t[2][1] == znak && this->_t[2][2] == znak){
  58.                 return true;
  59.             }
  60.  
  61.             if(this->_t[0][0] == znak && this->_t[1][1] == znak && this->_t[2][2] == znak){
  62.                 return true;
  63.             }
  64.             if(this->_t[2][0] == znak && this->_t[1][1] == znak && this->_t[0][2] == znak){
  65.                 return true;
  66.             }
  67.             return false;
  68.         }
  69. };
  70.  
  71. int main(void){
  72.     kkgame g1;
  73.     int i = 0;
  74.     while(1){
  75.         int x, y, a;
  76.         a = 0;
  77.         cout << i << endl;
  78.         cout << "wiersz? ";
  79.         cin >> x;
  80.         cout << "kolumna? ";
  81.         cin >> y;
  82.         if(i%2 == 0){
  83.             if(g1.set(x, y, 'X')){
  84.                 i+=1;
  85.             }
  86.         }else{
  87.             if(g1.set(x, y, 'O')){
  88.                 i+=1;
  89.             }
  90.         }
  91.         if(g1.check('X')){
  92.             cout << "wygrywa X" << endl;
  93.             return 0;
  94.         }else if(g1.check('O')){
  95.             cout << "wygrywa O" << endl;
  96.             return 0;
  97.         }
  98.  
  99.         if(i >= 9){
  100.             cout << "nie wygral nikt" << endl;
  101.             return 255;
  102.         }
  103.     }
  104.     return 0;
  105. }
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement