Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #include <cstdlib>
- using namespace std;
- bool wstaw(int w,int k,char tab[][20],int& lz) { //przekazywanie zmiennej przez referencje - adres
- if(w<0 or w>19 or k<0 or k>19) {
- cout << "Miejsce poza zakresem!" << endl;
- return false;
- } else if (tab[w][k]==' ') {
- lz++;
- if (lz%2==0) {
- tab[w][k]='x';
- } else {
- tab[w][k]='o';
- }
- return true;
- } else {
- cout << "Miejsce zajete!" << endl;
- return false;
- }
- }
- void wypisz (int th,int tw,char tab[][20]) {
- cout << "|x|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|x" << endl;
- int i,l;
- for (i=0; i<th; i++) {
- cout << "|" << i%10 << "|";
- for (l=0; l<tw; l++) {
- cout << tab[i][l] << "|" ;
- }
- cout << i%10;
- cout << endl;
- }
- cout << "|x|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|x" << endl;
- }
- int sprawdz_kolumna(int w, int k, char znak, char tab[][20]) {
- bool flaga;
- for (int j=w-4; j<=w; j++){
- cout << "j=" << j << endl;
- flaga = true;
- for (int i=0; i < 5; ++i) {
- if (tab[j+i][k] != znak){
- //return 0; // brak wygranej
- cout << "i=" << i << endl;
- flaga = false;
- break;
- }
- }
- if (flaga == true){
- cout << "działa" << endl;
- return 1; //wygrana
- }
- }
- return 0;//przegrana
- }
- int sprawdz_wiersz(int k, int rozmiar, char znak, char tab[][20]) {
- for (int i=0; i < rozmiar; ++i) {
- if (tab[i][k] != znak)
- return 0;
- }
- return 1;
- }
- int sprawdz_przekontna_1(int rozmiar, char znak, char tab[][20]) {
- for (int i=0; i<rozmiar; ++i) {
- if (tab[i][i] != znak)
- return 0;
- }
- return 1;
- }
- int sprawdz_przekontna_2(int rozmiar, char znak, char tab[][20]) {
- for (int i=0; i<rozmiar; ++i) {
- if (tab[i][rozmiar-(i+1)] != znak)
- return 0;
- }
- return 1;
- }
- int sprawdz(int w,int k,char znak,char tab[][20],int lz) {
- if (sprawdz_wiersz(w, 5, znak, tab) == 1 ||
- sprawdz_kolumna(w, k, znak, tab) == 1 ||
- sprawdz_przekontna_1(5, znak, tab) == 1 ||
- sprawdz_przekontna_2(5, znak, tab) == 1) {
- if (znak == 'x')
- cout << "Wygrywa gracz 2!";
- else
- cout << "Wygrywa gracz 1!";
- return 1; //wygrana
- } else {
- if (lz >= 400) {
- cout << "Remis!";
- return 2;
- } else
- return 0;
- }
- }
- void ruchKomputera(int& w, int& k){
- //w = rand()%20;
- //k = rand()%20;
- }
- int main() {
- srand(time(0));
- int w,k,i,l,tw=20,th=20;
- int lz=0;
- char tab[20][20];
- for (int l=0; l<20; l++){
- for (int i=0; i<20; i++){
- tab [i][l] = ' ';
- }
- }
- char znak;
- while(true) {
- wypisz(th,tw,tab);
- if (lz%2==0) {
- znak='o';
- cout << "Podaj wiersz:" << endl;
- cin >> w ;
- cout << "Podaj kolumne:" << endl ;
- cin >> k ;
- wstaw(w,k,tab,lz);
- } else {
- znak='x';
- do{
- ruchKomputera(w,k);
- }
- while (tab [w][k] != ' ');
- wstaw(w,k,tab,lz);
- }
- bool ck=sprawdz(w,k,znak,tab,lz);
- if (ck!=0) {
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement