Advertisement
Guest User

Untitled

a guest
Mar 24th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.53 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4. using namespace std;
  5. bool wstaw(int w,int k,char tab[][20],int& lz) { //przekazywanie zmiennej przez referencje - adres
  6.     if(w<0 or w>19 or k<0 or k>19) {
  7.         cout << "Miejsce poza zakresem!" << endl;
  8.         return false;
  9.     } else if (tab[w][k]==' ') {
  10.         lz++;
  11.         if (lz%2==0) {
  12.             tab[w][k]='x';
  13.         } else {
  14.             tab[w][k]='o';
  15.         }
  16.         return true;
  17.     } else {
  18.         cout << "Miejsce zajete!" << endl;
  19.         return false;
  20.     }
  21. }
  22. void wypisz (int th,int tw,char tab[][20]) {
  23.     cout << "|x|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|x" << endl;
  24.     int i,l;
  25.     for (i=0; i<th; i++) {
  26.         cout << "|" << i%10 << "|";
  27.         for (l=0; l<tw; l++) {
  28.  
  29.             cout << tab[i][l] << "|" ;
  30.         }
  31.         cout << i%10;
  32.         cout << endl;
  33.     }
  34.     cout << "|x|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|x" << endl;
  35. }
  36.  
  37. int sprawdz_kolumna(int w, int k, char znak, char tab[][20]) {
  38.  
  39.     bool flaga;
  40.     for (int j=w-4; j<=w; j++){
  41.             cout << "j=" <<  j << endl;
  42.         flaga = true;
  43.         for (int i=0; i < 5; ++i) {
  44.             if (tab[j+i][k] != znak){
  45.                 //return 0; // brak wygranej
  46.                 cout << "i=" << i << endl;
  47.                 flaga = false;
  48.                 break;
  49.             }
  50.         }
  51.         if (flaga == true){
  52.             cout << "działa" << endl;
  53.             return 1; //wygrana
  54.         }
  55.     }
  56.     return 0;//przegrana
  57. }
  58.  
  59. int sprawdz_wiersz(int k, int rozmiar, char znak, char tab[][20]) {
  60.     for (int i=0; i < rozmiar; ++i) {
  61.         if (tab[i][k] != znak)
  62.             return 0;
  63.     }
  64.     return 1;
  65. }
  66.  
  67. int sprawdz_przekontna_1(int rozmiar, char znak, char tab[][20]) {
  68.     for (int i=0; i<rozmiar; ++i) {
  69.         if (tab[i][i] != znak)
  70.             return 0;
  71.     }
  72.     return 1;
  73. }
  74.  
  75. int sprawdz_przekontna_2(int rozmiar, char znak, char tab[][20]) {
  76.     for (int i=0; i<rozmiar; ++i) {
  77.         if (tab[i][rozmiar-(i+1)] != znak)
  78.             return 0;
  79.     }
  80.     return 1;
  81. }
  82.  
  83. int sprawdz(int w,int k,char znak,char tab[][20],int lz) {
  84.  
  85.     if (sprawdz_wiersz(w, 5, znak, tab) == 1 ||
  86.             sprawdz_kolumna(w, k, znak, tab) == 1 ||
  87.             sprawdz_przekontna_1(5, znak, tab) == 1 ||
  88.             sprawdz_przekontna_2(5, znak, tab) == 1) {
  89.         if (znak == 'x')
  90.             cout << "Wygrywa gracz 2!";
  91.         else
  92.             cout << "Wygrywa gracz 1!";
  93.         return 1; //wygrana
  94.     } else {
  95.         if (lz >= 400) {
  96.             cout << "Remis!";
  97.             return 2;
  98.         } else
  99.             return 0;
  100.     }
  101. }
  102.  
  103.  
  104. void ruchKomputera(int& w, int& k){
  105.     //w = rand()%20;
  106.     //k = rand()%20;
  107.  
  108.  
  109.  
  110.  
  111. }
  112.  
  113. int main() {
  114.     srand(time(0));
  115.     int w,k,i,l,tw=20,th=20;
  116.  
  117.     int lz=0;
  118.     char tab[20][20];
  119.     for (int l=0; l<20; l++){
  120.         for (int i=0; i<20; i++){
  121.             tab [i][l] = ' ';
  122.         }
  123.     }
  124.  
  125.     char znak;
  126.     while(true) {
  127.         wypisz(th,tw,tab);
  128.         if (lz%2==0) {
  129.             znak='o';
  130.             cout << "Podaj wiersz:" << endl;
  131.             cin >> w ;
  132.             cout << "Podaj kolumne:" << endl ;
  133.             cin >> k ;
  134.             wstaw(w,k,tab,lz);
  135.         } else {
  136.             znak='x';
  137.             do{
  138.                 ruchKomputera(w,k);
  139.             }
  140.             while (tab [w][k] != ' ');
  141.             wstaw(w,k,tab,lz);
  142.         }
  143.         bool ck=sprawdz(w,k,znak,tab,lz);
  144.         if (ck!=0) {
  145.             break;
  146.         }
  147.     }
  148.     return 0;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement