Nadesłany przez Tomasz Gietka, 01 kwietnia 2007 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.Pobierz pełne rozwiązanie.
Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
Kolko i Krzyzyk/Unit1.cpp:
//***********************************************************************// // GRA W KÓŁKO I KRZYŻYK // // PROGRAM NAPISANY I POMYŚLNIE SKOMPILOWANY W Dev-C++ 4.9.6.0 // // ORAZ BCB 6 // // PROGRAM POBRANY Z WITRYNY WWW.ALGORYTM.ORG // //***********************************************************************// #include <iostream> #include <string> //do napisów #include <conio.h> //do clrscr #include <vector> //do vector<string> #include <fstream> //do ifstream #include <sstream> //do stringstream #include <time.h> //daty i czasu #include <windows.h> //do Sleep //przestrzenie nazw using namespace std; //funkcje void menu(); //deklaracja funkcji menu potrzebna np. do rekurencji void ustawienia(); //zmienne char wybor; int kk,ww,krok,krzyzyki,kolka,kx,wx,numer_znaku_wypunktowania,jezyk; char tablica[3][3]; bool blad,koniec,wstawione; string gracz1,gracz2,przegr,zwyc,styl_gry_komputera,sposob_blokowania; string miesiace[12] = {"I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"}; string miesiaces[12] = {"stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"}; string teksty[2][55]; int strtoint(string tekst) { stringstream konwersja(tekst); int liczba; konwersja>>liczba; return liczba; } void pauza() { printf("%s",teksty[jezyk][51].c_str()); getch(); } void zerowanie() { tablica[0][0]=' '; tablica[0][1]=' '; tablica[0][2]=' '; tablica[1][0]=' '; tablica[1][1]=' '; tablica[1][2]=' '; tablica[2][0]=' '; tablica[2][1]=' '; tablica[2][2]=' '; } void druk() { printf("\n%s\n\n",teksty[jezyk][44].c_str()); printf("%c%c%c%c%c\n",tablica[0][0],(char)(179),tablica[1][0],(char)(179),tablica[2][0]); printf("%c%c%c%c%c\n",(char)(196),(char)(197),(char)(196),(char)(197),(char)(196)); printf("%c%c%c%c%c\n",tablica[0][1],(char)(179),tablica[1][1],(char)(179),tablica[2][1]); printf("%c%c%c%c%c\n",(char)(196),(char)(197),(char)(196),(char)(197),(char)(196)); printf("%c%c%c%c%c\n\n",tablica[0][2],(char)(179),tablica[1][2],(char)(179),tablica[2][2]); } bool wygrana(char znaczek, int k, int w) { //badanie wiersza if ((tablica[0][w]==znaczek)&&(tablica[1][w]==znaczek)&&(tablica[2][w]==znaczek)) return true; //badanie kolumny if ((tablica[k][0]==znaczek)&&(tablica[k][1]==znaczek)&&(tablica[k][2]==znaczek)) return true; //badanie przekątnych if ((k==w)||(k+w==2)) { if (((tablica[0][0]==znaczek)&&(tablica[1][1]==znaczek)&&(tablica[2][2]==znaczek))||((tablica[2][0]==znaczek)&&(tablica[1][1]==znaczek)&&(tablica[0][2]==znaczek))) return true; } //jesli doszło dotąd to zwróć 0 (false) return 0; } void ruch(char znak) { do { blad=false; printf("%s\n",teksty[jezyk][37].c_str()); do { printf("%s ",teksty[jezyk][38].c_str()); scanf("%d",&kk); if ((kk>3)||(kk<1)) printf("%s\n",teksty[jezyk][39].c_str()); } while ((kk>3)||(kk<1)); kk--; do { printf("%s ",teksty[jezyk][40].c_str()); scanf("%d",&ww); if ((ww>3)||(ww<1)) printf("%s\n",teksty[jezyk][39].c_str()); } while ((ww>3)||(ww<1)); ww--; if ((ww==1)&&(kk==1)&&((krok==1)||(krok==2))&&((sposob_blokowania=="graczom")||(sposob_blokowania=="wszystkim"))) { printf("\n%s\n\n",teksty[jezyk][41].c_str()); blad=true; } else { //czytanie kolumnami w dol for (int i=0; i<3; i++) { for (int j=0; j<3; j++) { if ((i==kk)&&(j==ww)) { if (tablica[kk][ww]==' ') tablica[kk][ww]=znak; else { printf("%s%d,%d%s\n",teksty[jezyk][42].c_str(),kk+1,ww+1,teksty[jezyk][43].c_str()); blad=true; break;//petla j } } if (blad)//w petli i break;//petla i } } } } while (blad); druk(); //pokaz plansze if (wygrana(znak,kk,ww)) { if (znak=='O') zwyc=gracz1; else zwyc=gracz2; koniec=true; } } //funkcje do ruchu komputera //funkcje z "I" to próba wygrania bool spr_pion_I(int kol) { krzyzyki=0; if (tablica[kol][0]=='O') return false; if (tablica[kol][0]=='X') krzyzyki++; if (tablica[kol][1]=='O') return false; if (tablica[kol][1]=='X') krzyzyki++; if (tablica[kol][2]=='O') return false; if (tablica[kol][2]=='X') krzyzyki++; if (krzyzyki==2) return true; else return false; } bool spr_poziom_I(int wiersz) { krzyzyki=0; if (tablica[0][wiersz]=='O') return false; if (tablica[0][wiersz]=='X') krzyzyki++; if (tablica[1][wiersz]=='O') return false; if (tablica[1][wiersz]=='X') krzyzyki++; if (tablica[2][wiersz]=='O') return false; if (tablica[2][wiersz]=='X') krzyzyki++; if (krzyzyki==2) return true; else return false; } bool spr_ukos1_I() { krzyzyki=0; if (tablica[0][0]=='O') return false; if (tablica[0][0]=='X') krzyzyki++; if (tablica[1][1]=='O') return false; if (tablica[1][1]=='X') krzyzyki++; if (tablica[2][2]=='O') return false; if (tablica[2][2]=='X') krzyzyki++; if (krzyzyki==2) return true; else return false; } bool spr_ukos2_I() { krzyzyki=0; if (tablica[2][0]=='O') return false; if (tablica[2][0]=='X') krzyzyki++; if (tablica[1][1]=='O') return false; if (tablica[1][1]=='X') krzyzyki++; if (tablica[0][2]=='O') return false; if (tablica[0][2]=='X') krzyzyki++; if (krzyzyki==2) return true; else return false; } //sprawdź czy możesz wygrać, jeśli tak to wypełnij całą daną linię bool sprawdz_dwojki_I() { //sprawdzanie linii pionowych if (spr_pion_I(0)) { tablica[0][0]='X'; tablica[0][1]='X'; tablica[0][2]='X'; kx=0; wx=1;//np, moze byc tez 0 lub 2 return true; } if (spr_pion_I(1)) { tablica[1][0]='X'; tablica[1][1]='X'; tablica[1][2]='X'; kx=1; wx=1;//np return true; } if (spr_pion_I(2)) { tablica[2][0]='X'; tablica[2][1]='X'; tablica[2][2]='X'; kx=2; wx=1; return true; } //sprawdzanie linii poziomych if (spr_poziom_I(0)) { tablica[0][0]='X'; tablica[1][0]='X'; tablica[2][0]='X'; wx=0; kx=1;//np return true; } if (spr_poziom_I(1)) { tablica[0][1]='X'; tablica[1][1]='X'; tablica[2][1]='X'; wx=1; kx=1;//np return true; } if (spr_poziom_I(2)) { tablica[0][2]='X'; tablica[1][2]='X'; tablica[2][2]='X'; wx=2; kx=1;//np return true; } //sprawdzanie glownej przekatnej if (spr_ukos1_I()) { tablica[0][0]='X'; tablica[1][1]='X'; tablica[2][2]='X'; kx=1;//np wx=1;//np return true; } //sprawdzanie drugiej przekatnej if (spr_ukos2_I()) { tablica[2][0]='X'; tablica[1][1]='X'; tablica[0][2]='X'; kx=1;//np wx=1;//np return true; } return false; } //funkcje z "II" to próba nieprzegrania bool spr_pion_II(int kol) { kolka=0; if (tablica[kol][0]=='X') return false; if (tablica[kol][0]=='O') kolka++; if (tablica[kol][1]=='X') return false; if (tablica[kol][1]=='O') kolka++; if (tablica[kol][2]=='X') return false; if (tablica[kol][2]=='O') kolka++; if (kolka==2) return true; else return false; } bool spr_poziom_II(int wiersz) { kolka=0; if (tablica[0][wiersz]=='X') return false; if (tablica[0][wiersz]=='O') kolka++; if (tablica[1][wiersz]=='X') return false; if (tablica[1][wiersz]=='O') kolka++; if (tablica[2][wiersz]=='X') return false; if (tablica[2][wiersz]=='O') kolka++; if (kolka==2) return true; else return false; } bool spr_ukos1_II() { kolka=0; if (tablica[0][0]=='X') return false; if (tablica[0][0]=='O') kolka++; if (tablica[1][1]=='X') return false; if (tablica[1][1]=='O') kolka++; if (tablica[2][2]=='X') return false; if (tablica[2][2]=='O') kolka++; if (kolka==2) return true; else return false; } bool spr_ukos2_II() { kolka=0; if (tablica[2][0]=='X') return false; if (tablica[2][0]=='O') kolka++; if (tablica[1][1]=='X') return false; if (tablica[1][1]=='O') kolka++; if (tablica[0][2]=='X') return false; if (tablica[0][2]=='O') kolka++; if (kolka==2) return true; else return false; } //sprawdź czy możesz przegrać, jeśli tak to wypełnij puste pole w danej linii bool sprawdz_dwojki_II() { if (spr_pion_II(0)) { if (tablica[0][0]==' ') tablica[0][0]='X'; if (tablica[0][1]==' ') tablica[0][1]='X'; if (tablica[0][2]==' ') tablica[0][2]='X'; return true; } if (spr_pion_II(1)) { if (tablica[1][0]==' ') tablica[1][0]='X'; if (tablica[1][1]==' ') tablica[1][1]='X'; if (tablica[1][2]==' ') tablica[1][2]='X'; return true; } if (spr_pion_II(2)) { if (tablica[2][0]==' ') tablica[2][0]='X'; if (tablica[2][1]==' ') tablica[2][1]='X'; if (tablica[2][2]==' ') tablica[2][2]='X'; return true; } if (spr_poziom_II(0)) { if (tablica[0][0]==' ') tablica[0][0]='X'; if (tablica[1][0]==' ') tablica[1][0]='X'; if (tablica[2][0]==' ') tablica[2][0]='X'; return true; } if (spr_poziom_II(1)) { if (tablica[0][1]==' ') tablica[0][1]='X'; if (tablica[1][1]==' ') tablica[1][1]='X'; if (tablica[2][1]==' ') tablica[2][1]='X'; return true; } if (spr_poziom_II(2)) { if (tablica[0][2]==' ') tablica[0][2]='X'; if (tablica[1][2]==' ') tablica[1][2]='X'; if (tablica[2][2]==' ') tablica[2][2]='X'; return true; } if (spr_ukos1_II()) { if (tablica[0][0]==' ') tablica[0][0]='X'; if (tablica[1][1]==' ') tablica[1][1]='X'; if (tablica[2][2]==' ') tablica[2][2]='X'; return true; } if (spr_ukos2_II()) { if (tablica[2][0]==' ') tablica[2][0]='X'; if (tablica[1][1]==' ') tablica[1][1]='X'; if (tablica[0][2]==' ') tablica[0][2]='X'; return true; } return false; } //ruch komputera, trzeba go nauczyc grac !!! void komputer() { int klos,wlos; if (sprawdz_dwojki_I()) //jesli jest mozliwosc wygrania { if (wygrana('X',kx,wx)) { zwyc=gracz2; koniec=true; } } else //a jesli brak mozliwosci wygrania to sprawdz czy mozesz przegrac { if (!sprawdz_dwojki_II()) //jesli nie bylo ryzyka przegrania to kombinuj :) { //"sztuczna inteligencja" :) printf("%s ",teksty[jezyk][45].c_str()); if (styl_gry_komputera=="kolejno") { printf("%s\n",teksty[jezyk][46].c_str()); for (int i=0; i<3; i++) //po wierszach { for (int j=0; j<3; j++) //po kolumnach { if (tablica[j][i]==' ') //jesli pole wolne { tablica[j][i]='X'; //wstaw X wstawione=true; break; //do j } } if (wstawione) { wstawione=false; break; //do i } } } else { printf("%s\n",teksty[jezyk][47].c_str()); do { srand(time(NULL)); // "wymieszaj" klos = rand()%3; // lusuj liczbe z przedzialu od 0 do 2 wlos = rand()%3; // lusuj liczbe z przedzialu od 0 do 2 if ((tablica[klos][wlos]==' ')&&(!((wlos==1)&&(klos==1)&&((krok==1)||(krok==2))&&((sposob_blokowania=="komputerowi")||(sposob_blokowania=="wszystkim"))))) { tablica[klos][wlos]='X'; wstawione=true; } } while (!wstawione); wstawione=false; } } //koniec kombinowania czyli "sztucznej inteligencji" } druk(); } void zapis(string zwyciezca,string przegrany) //zapis do pliku { FILE *plik; int lp=1; //liczenie linii plik=fopen("wyniki.txt","r"); if (plik!=NULL) { vector<string> v; ifstream zrodlo("wyniki.txt"); string linia; while(getline(zrodlo,linia)) v.push_back(linia); for(int i=0;i<v.size();i++) lp++; } fclose(plik); //koniec liczenia linii //dopisywanie plik=fopen("wyniki.txt","a+"); if (plik!=NULL) { time_t teraz; struct tm *czas; teraz = time(NULL); czas = localtime(&teraz); fprintf(plik,"%d) Dnia %d.%s.%d o godz. %d:%d:%d ",lp,czas->tm_mday,miesiace[czas->tm_mon].c_str(),czas->tm_year+1900,czas->tm_hour,czas->tm_min,czas->tm_sec); if (zwyc!="Komputer") fprintf(plik,"gracz "); fprintf(plik,"%s wygral z ",zwyciezca.c_str()); if (przegr=="Komputer") fprintf(plik,"komputerem.\n"); else { fprintf(plik,"graczem %s",przegrany.c_str()); fprintf(plik,".\n"); } } else printf("\n%s\n\n",teksty[jezyk][21].c_str()); fclose(plik); //koniec dopisywania } void z_komputerem() //gra z komputerem { printf("%s ",teksty[jezyk][9].c_str()); /*if (getch()==(char)(27)) { clrscr(); menu(); }*/ cin>>gracz1; gracz2="Komputer"; printf("\n"); druk(); for (krok=1; krok<10; krok++)//maksymalnie 9 ruchów { if ((krok%2)==1) { printf("%s %s\n",gracz1.c_str(),teksty[jezyk][10].c_str()); ruch('O'); } else { printf("%s\n",teksty[jezyk][11].c_str()); komputer(); } if (koniec) break; }//koniec petli for 9 if (koniec) { printf("\n%s\n",teksty[jezyk][12].c_str()); printf("%s %s.\n",teksty[jezyk][13].c_str(),zwyc.c_str()); if (zwyc!="Komputer") { printf("%s\n",teksty[jezyk][14].c_str()); if (zwyc==gracz1) przegr=gracz2; else przegr=gracz1; } else //wygrał komputer { przegr=gracz1; printf("%s\n",teksty[jezyk][15].c_str()); } zapis(zwyc,przegr); } else printf("\n%s\n",teksty[jezyk][16].c_str()); printf("\n"); pauza(); clrscr(); menu(); }//koniec gry z komputerem void dwuch_graczy() { printf("\n%s ",teksty[jezyk][17].c_str()); cin>>gracz1; printf("%s ",teksty[jezyk][18].c_str()); cin>>gracz2; druk(); for (krok=1; krok<10; krok++) //maksymalnie 9 ruchów { if ((krok%2)==1) { printf("%s %s\n",gracz1.c_str(),teksty[jezyk][10].c_str()); ruch('O'); } else { printf("%s %s\n",gracz2.c_str(),teksty[jezyk][19].c_str()); ruch('X'); } if (koniec) break; //przerwanie petli 9-u ruchow } //koniec petli 9 if (koniec) { printf("\n%s\n",teksty[jezyk][12].c_str()); printf("%s %s.\n",teksty[jezyk][13].c_str(),zwyc.c_str()); printf("%s\n",teksty[jezyk][14].c_str()); if (zwyc==gracz1) przegr=gracz2; else przegr=gracz1; zapis(zwyc,przegr); } else printf("\n%s\n",teksty[jezyk][16].c_str()); printf("\n"); pauza(); clrscr(); menu(); } //koniec trybu 2 graczy void gra() { //clrscr(); zerowanie(); kx=0; wx=0; koniec=false; //menu_wewnetrzne(); do { clrscr(); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf(" %s\n",teksty[jezyk][5].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf("1 - %s\n",teksty[jezyk][6].c_str()); printf("2 - %s\n",teksty[jezyk][7].c_str()); printf("3 - %s\n\n\n\n",teksty[jezyk][8].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); wybor=getch(); printf("\n"); } while ((wybor!='1')&&(wybor!='2')&&(wybor!='3')); switch (wybor) { case '1': z_komputerem(); break; case '2': dwuch_graczy(); break; case '3': clrscr(); menu(); } } void wyniki() { FILE *plik; plik=fopen("wyniki.txt","r"); if (plik!=NULL) { clrscr(); ifstream zrodlo("wyniki.txt"); string linia; for (int i=1; i<=75; i++) printf("%c",(char)(196)); printf("\n"); printf(" %s\n",teksty[jezyk][20].c_str()); for (int i=1; i<=75; i++) printf("%c",(char)(196)); printf("\n"); while (getline(zrodlo,linia)) printf("%s\n",linia.c_str()); for (int i=1; i<=75; i++) printf("%c",(char)(196)); printf("\n\n"); } else printf("%s\n\n",teksty[jezyk][53].c_str()); fclose(plik); pauza(); clrscr(); menu(); } void wczytaj_ustawienia() { FILE *plik; plik=fopen("pl.lng","r"); if (plik!=NULL) { ifstream zrodlo("pl.lng"); for (int i=0; i <= 54; i++) { getline(zrodlo,teksty[0][i]); } } fclose(plik); plik=fopen("en.lng","r"); if (plik!=NULL) { ifstream zrodlo("en.lng"); for (int j=0; j <= 54; j++) { getline(zrodlo,teksty[1][j]); } } fclose(plik); printf("Wczytywanie ustawien / Loading settings\n\n"); Sleep(1000); plik=fopen("ustawienia.ini","r"); if (plik!=NULL) { ifstream zrodlo("ustawienia.ini"); string linia; //dane są w liniach parzystych getline(zrodlo,linia); getline(zrodlo,styl_gry_komputera); getline(zrodlo,linia); getline(zrodlo,sposob_blokowania); getline(zrodlo,linia); getline(zrodlo,linia); numer_znaku_wypunktowania=strtoint(linia); getline(zrodlo,linia); getline(zrodlo,linia); if (linia=="polski") jezyk=0; else jezyk=1; if (((styl_gry_komputera=="kolejno")||(styl_gry_komputera=="losowo"))&&((sposob_blokowania=="komputerowi")||(sposob_blokowania=="graczom")||(sposob_blokowania=="wszystkim")||(sposob_blokowania=="nikomu"))&&((linia=="polski")||(linia=="angielski"))) { printf("%s\n\n",teksty[jezyk][48].c_str()); } else { styl_gry_komputera="kolejno"; sposob_blokowania="nikomu"; numer_znaku_wypunktowania=3; jezyk=0; printf("Blad odczytu pliku \"ustawienia.ini\".\nZaladowano ustawienia domyslne.\n\n"); } } else { styl_gry_komputera="kolejno"; sposob_blokowania="nikomu"; printf("Blad odczytu pliku \"ustawienia.ini\".\nZaladowano ustawienia domyslne.\n\n"); } fclose(plik); printf("%s\n\n",teksty[jezyk][54].c_str()); pauza(); clrscr(); return; } void zapisz_ustawienia() { FILE *plik; //zapisywanie plik=fopen("ustawienia.ini","w"); if (plik!=NULL) { fprintf(plik,"[styl gry komputera]\n"); fprintf(plik,"%s\n",styl_gry_komputera.c_str()); fprintf(plik,"[blokuj srodkowe pole]\n"); fprintf(plik,"%s\n",sposob_blokowania.c_str()); fprintf(plik,"[numer znaczka wypunktowania]\n"); fprintf(plik,"%d\n",numer_znaku_wypunktowania); fprintf(plik,"[jezyk]\n"); if (jezyk==0) fprintf(plik,"polski"); else fprintf(plik,"angielski"); } else { printf("%s\n\n",teksty[jezyk][52].c_str()); pauza(); } fclose(plik); //koniec dopisywania } void wypunktowanie() { printf("%c",(char)(numer_znaku_wypunktowania)); } void styl() { clrscr(); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf(" %s\n",teksty[jezyk][28].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf("1 - %s ",teksty[jezyk][29].c_str()); if (styl_gry_komputera=="losowo") wypunktowanie(); printf("\n"); printf("2 - %s ",teksty[jezyk][30].c_str()); if (styl_gry_komputera=="kolejno") wypunktowanie(); printf("\n"); printf("3 - %s\n",teksty[jezyk][31].c_str()); printf("4 - %s\n\n\n",teksty[jezyk][8].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); wybor=getch(); printf("\n"); switch (wybor) { case '1': styl_gry_komputera="losowo"; styl(); break; case '2': styl_gry_komputera="kolejno"; styl(); break; case '3': zapisz_ustawienia(); ustawienia(); break; case '4': zapisz_ustawienia(); clrscr(); menu(); default : styl(); } } void blokowanie() { clrscr(); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf(" %s\n",teksty[jezyk][32].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf("1 - %s ",teksty[jezyk][33].c_str()); if (sposob_blokowania=="komputerowi") wypunktowanie(); printf("\n"); printf("2 - %s ",teksty[jezyk][34].c_str()); if (sposob_blokowania=="graczom") wypunktowanie(); printf("\n"); printf("3 - %s ",teksty[jezyk][35].c_str()); if (sposob_blokowania=="wszystkim") wypunktowanie(); printf("\n"); printf("4 - %s ",teksty[jezyk][36].c_str()); if (sposob_blokowania=="nikomu") wypunktowanie(); printf("\n"); printf("5 - %s\n",teksty[jezyk][31].c_str()); printf("6 - %s\n",teksty[jezyk][8].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); wybor=getch(); printf("\n"); switch (wybor) { case '1': sposob_blokowania="komputerowi"; blokowanie(); break; case '2': sposob_blokowania="graczom"; blokowanie(); break; case '3': sposob_blokowania="wszystkim"; blokowanie(); break; case '4': sposob_blokowania="nikomu"; blokowanie(); break; case '5': zapisz_ustawienia(); ustawienia(); break; case '6': zapisz_ustawienia(); clrscr(); menu(); default : blokowanie(); } } void ustawienia_znaczka() { clrscr(); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf(" %s\n",teksty[jezyk][50].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); for (int i = 1; i <= 5; i++) { printf("%d - %c ASCII %d ",i,(char)(i),i); if (numer_znaku_wypunktowania==i) wypunktowanie(); printf("\n"); } printf("6 - %c ASCII 14 ",(char)(14)); if (numer_znaku_wypunktowania==14) wypunktowanie(); printf("\n"); printf("7 - %c ASCII 15 ",(char)(15)); if (numer_znaku_wypunktowania==15) wypunktowanie(); printf("\n"); printf("8 - %s\n",teksty[jezyk][31].c_str()); printf("9 - %s\n",teksty[jezyk][8].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); wybor=getch(); printf("\n"); switch (wybor) { case '1': numer_znaku_wypunktowania=1; ustawienia_znaczka(); break; case '2': numer_znaku_wypunktowania=2; ustawienia_znaczka(); break; case '3': numer_znaku_wypunktowania=3; ustawienia_znaczka(); break; case '4': numer_znaku_wypunktowania=4; ustawienia_znaczka(); break; case '5': numer_znaku_wypunktowania=5; ustawienia_znaczka(); break; case '6': numer_znaku_wypunktowania=14; ustawienia_znaczka(); break; case '7': numer_znaku_wypunktowania=15; ustawienia_znaczka(); break; case '8': zapisz_ustawienia(); ustawienia(); break; case '9': zapisz_ustawienia(); clrscr(); menu(); default : ustawienia_znaczka(); } } void ustawienia_jezyka() { clrscr(); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf(" %s\n",teksty[jezyk][27].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf("1 - Polski "); if (jezyk==0) wypunktowanie(); printf("\n"); printf("2 - English "); if (jezyk==1) wypunktowanie(); printf("\n"); printf("3 - %s\n",teksty[jezyk][31].c_str()); printf("4 - %s\n\n\n",teksty[jezyk][8].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); wybor=getch(); printf("\n"); switch (wybor) { case '1': jezyk=0; ustawienia_jezyka(); break; case '2': jezyk=1; ustawienia_jezyka(); break; case '3': zapisz_ustawienia(); ustawienia(); break; case '4': zapisz_ustawienia(); clrscr(); menu(); default : ustawienia_jezyka(); } } void ustawienia() { clrscr(); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf(" %s\n",teksty[jezyk][22].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf("1 - %s\n",teksty[jezyk][23].c_str()); printf("2 - %s\n %s\n",teksty[jezyk][24].c_str(),teksty[jezyk][25].c_str()); printf("3 - %s\n",teksty[jezyk][49].c_str()); printf("4 - %s\n",teksty[jezyk][26].c_str()); printf("5 - %s\n",teksty[jezyk][8].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); wybor=getch(); printf("\n"); switch (wybor) { case '1': styl(); break; case '2': blokowanie(); break; case '3': ustawienia_znaczka(); break; case '4': ustawienia_jezyka(); break; case '5': clrscr(); menu(); default : ustawienia(); } } void menu() { for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf(" %s\n",teksty[jezyk][0].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); printf("1 - %s\n",teksty[jezyk][1].c_str()); printf("2 - %s\n",teksty[jezyk][2].c_str()); printf("3 - %s\n",teksty[jezyk][3].c_str()); printf("4 - %s\n\n\n",teksty[jezyk][4].c_str()); for (int i=1; i<=45; i++) printf("%c",(char)(196)); printf("\n"); wybor=getch(); switch (wybor) { case '1': gra(); break; case '2': wyniki(); break; case '3': ustawienia(); break; case '4': case (char)(27): abort(); //ESC default : clrscr(); menu(); } } //************* PROGRAM GLOWNY ************* //aby wygrac z kompuerem przy stylu gry "kolejno": //1,1 -> 2,2 -> 1,3 -> 3,1 int main() { wczytaj_ustawienia(); menu(); return 0; }
Można by sprawdzić czy da się z komputerem wygrać.