/* * kolkrzyz.cpp * * Kolko i Krzyzyk 1.0 * * Popularna gra logiczna. Wersja przeznaczona do gry z komputerem. * Kompilacja @ Linux: g++ -o kolkrzyz.o kolkrzyz.cpp * * Copyleft (c) 2005 Damian Pasternok . All rights reversed. */ #include using std::cout; using std::cin; char plansza[3][3] = {'x', '8', '9', '4', '5', '6', '1', '2', '3'}; // tablica reprezentujaca plansze char znak; int i; void gotoxy(int x, int y) // ustawia pozycje kursora { cout << "\033[" << x << ";" << y << "H"; } void clrscr(void) // czysci ekran { cout << "\033[0m"; cout << "\033[2J"; gotoxy(0,0); } void rysuj_plansze(void) // rysuje plansze { clrscr(); cout << "Kolko i krzyzyk 1.0 by CrAhKeR\n" "\nZasad gry chyba nie trzeba objasniac :)\n" "Poszczegolne ruchy wykonujemy z klawiatury\n" "numerycznej potwierdzajac klawiszem ENTER.\n" "\nx - komputer\no - gracz"; gotoxy(10,15); cout << plansza[0][0] << " | " << plansza[0][1] << " | " << plansza[0][2]; gotoxy(11,15); cout << "--|---|--"; gotoxy(12,15); cout << plansza[1][0] << " | " << plansza[1][1] << " | " << plansza[1][2]; gotoxy(13,15); cout << "--|---|--"; gotoxy(14,15); cout << plansza[2][0] << " | " << plansza[2][1] << " | " << plansza[2][2]; gotoxy(16,0); cout << "Twoj wybor: "; } void wprowadz_znak(void) // wprowadza znak gracza { if (znak == '1') {plansza[2][0] = 'o';} else if(znak == '2') {plansza[2][1] = 'o';} else if(znak == '3') {plansza[2][2] = 'o';} else if(znak == '4') {plansza[1][0] = 'o';} else if(znak == '5') {plansza[1][1] = 'o';} else if(znak == '6') {plansza[1][2] = 'o';} else if(znak == '7') {plansza[0][0] = 'o';} else if(znak == '8') {plansza[0][1] = 'o';} else if(znak == '9') {plansza[0][2] = 'o';} } int main(void) { // bardzo zaawansowany algorytm sztucznej inteligencji :) rysuj_plansze(); cin >> znak; wprowadz_znak(); rysuj_plansze(); if(plansza[2][2] == '3') { plansza[2][2] = 'x'; rysuj_plansze(); cin >> znak; wprowadz_znak(); if(plansza[1][1] == '5') { plansza[1][1] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { // stan zagrozenia if (plansza[0][1] == 'o') {plansza[2][1] = 'x'; i = 1;} // 1 else if(plansza[2][1] == 'o') {plansza[0][1] = 'x'; i = 2;} // 2 else if(plansza[1][0] == 'o') {plansza[1][2] = 'x'; i = 3;} // 3 else if(plansza[1][2] == 'o') {plansza[1][0] = 'x'; i = 4;} // 4 else if(plansza[2][0] == 'o') {plansza[0][2] = 'x'; i = 5;} // 5 else if(plansza[0][2] == 'o') {plansza[2][0] = 'x'; i = 6;} // 6 rysuj_plansze(); cin >> znak; wprowadz_znak(); // hardkor, czyli gra na remis :P // 1 if(i == 1) { if(plansza[2][0] == '1') { plansza[2][0] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[0][2] = 'x'; rysuj_plansze(); cin >> znak; wprowadz_znak(); if(plansza[1][2] == '6') { plansza[1][2] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[1][0] = 'x'; rysuj_plansze(); cout << "REMIS!\n"; return 0; } } } // 2 else if(i == 2) { if(plansza[0][2] == '9') { plansza[0][2] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[2][0] = 'x'; rysuj_plansze(); cin >> znak; wprowadz_znak(); if(plansza[1][0] == '4') { plansza[1][0] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[1][2] = 'x'; rysuj_plansze(); cout << "REMIS!\n"; return 0; } } } // 3 else if(i == 3) { if(plansza[0][2] == '9') { plansza[0][2] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[2][0] = 'x'; rysuj_plansze(); cin >> znak; wprowadz_znak(); if(plansza[2][1] == '8') { plansza[2][1] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[0][1] = 'x'; rysuj_plansze(); cout << "REMIS!"; return 0; } } } // 4 else if(i == 4) { if(plansza[2][0] == '7') { plansza[2][0] == 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[0][2] = 'x'; rysuj_plansze(); cin >> znak; wprowadz_znak(); if(plansza[0][1] == '8') { plansza[0][1] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[2][1] = 'x'; rysuj_plansze(); cout << "REMIS\n"; return 0; } } } // 5 else if(i == 5) { if(plansza[0][1] == '8') { plansza[0][1] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[1][2] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } } // 6 else if(i == 6) { if(plansza[2][1] == '2') { plansza[2][1] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[1][0] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } } } } else { plansza[2][0] = 'x'; rysuj_plansze(); cin >> znak; wprowadz_znak(); if(plansza[1][0] == '4') { plansza[1][0] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[0][2] = 'x'; rysuj_plansze(); cin >> znak; wprowadz_znak(); if(plansza[0][1] == '8') { plansza[0][1] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } else { plansza[1][1] = 'x'; rysuj_plansze(); cout << "WYGRAL KOMPUTER!\n"; return 0; } } } return 0; }