Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <windows.h>
- #include <ctime>
- using namespace std;
- string nazwaZag="slowa.txt";
- string nazwaWyn="wyniki.txt";
- struct slowa{
- string slowoPrawidlowe;
- string znakUzyty;
- string slowoZmienione;
- string tabBledneSlowa[5];
- int iloscBledow;
- };
- slowa tab[5];
- int liczbaPunktow; // im wiecej tym gorzej
- void menu(){
- cout<<"1 - Graj\n";
- cout<<"2 - wyswietl wyniki\n";
- cout<<"3 - Wylacz\nWybor: ";
- }
- void z(){getchar();getchar();}
- void wyswietlWyniki(){
- system("cls");
- ifstream uchw(nazwaWyn.c_str());
- string linia;
- int byl=0,nrLini=0;
- string liniaD;
- cout<<"Lista wynikow:"<<endl;
- while(!uchw.eof()){
- getline(uchw,linia);
- if((linia=="")&&(byl==0)){
- if(nrLini==0){
- cout<<"Brak wpisow";
- z();
- }
- break;
- }else byl=1;
- if(linia[0]=='*'){
- getline(uchw,liniaD);
- cout<<"Nacisnij dowolny klawisz >>>";
- byl=0;
- z();
- system("cls");
- }else cout<<linia<<endl;
- nrLini++;
- }
- uchw.close();
- }
- string rob0lub1(byte opcja, byte dl){
- string zw="";
- for(int z=0;z<dl;z++){
- if(opcja==0) zw+="0";else zw+="1";
- }
- return zw;
- }
- void skopiujDoTablicy(){
- ifstream uchw(nazwaZag.c_str());
- int d=0;
- while(!uchw.eof()){
- string *linia=&tab[d].slowoPrawidlowe;
- getline(uchw,*linia);
- d++;
- }
- srand(time(NULL));
- int dlWyr,ktEle;
- for(int i=0;i<5;i++){
- dlWyr=tab[i].slowoPrawidlowe.length();
- tab[i].znakUzyty=rob0lub1(0,dlWyr);
- while(tab[i].znakUzyty!=rob0lub1(1,dlWyr)){
- ktEle=rand()%dlWyr;
- if(tab[i].znakUzyty[ktEle]!='1'){
- tab[i].znakUzyty[ktEle]='1';
- tab[i].slowoZmienione+=tab[i].slowoPrawidlowe[ktEle];
- }
- }
- }
- }
- string wypiszBledy(int ktE,int ileB){
- string zw="";
- for(int d=0;d<ileB;d++){
- zw+=tab[ktE].tabBledneSlowa[d];
- if(d!=ileB-1) zw+=", ";
- }
- return zw;
- }
- void gra(string &nick){
- liczbaPunktow=0;
- string podaneSlowo;
- for(int i=0;i<5;i++){
- tab[i].iloscBledow=0;
- int *liBl=&tab[i].iloscBledow;
- do{
- if(*liBl>0) cout<<"Zle ("<<tab[i].slowoZmienione<<")[bledow: "<<*liBl<<"]\n";else
- cout<<"Odgadnij co to za slowo: "<<tab[i].slowoZmienione<<"\n";
- cin>>podaneSlowo;
- if(podaneSlowo==tab[i].slowoPrawidlowe){
- liczbaPunktow+=tab[i].iloscBledow;
- cout<<"Dobrze\n";
- break;
- }else{
- tab[i].iloscBledow++;
- tab[i].tabBledneSlowa[*liBl-1]=podaneSlowo;
- if(*liBl==5){
- liczbaPunktow+=tab[i].iloscBledow;
- }
- }
- }while(*liBl!=5);
- }
- ofstream uchw(nazwaWyn.c_str());
- cout<<nick<<"\n";
- uchw<<nick<<"\n";
- for(int i=0;i<5;i++){
- if(tab[i].iloscBledow>0){
- cout<<"Bledy dla slowa "<<tab[i].slowoPrawidlowe<<" to: "<<wypiszBledy(i,tab[i].iloscBledow)<<"\n";
- uchw<<"Bledy dla slowa "<<tab[i].slowoPrawidlowe<<" to: "<<wypiszBledy(i,tab[i].iloscBledow)<<"\n";
- }
- }
- cout<<"Ogolna liczba bledow: "<<liczbaPunktow;
- uchw<<"Ogolna liczba bledow: "<<liczbaPunktow<<"\n*\n";
- uchw.close();
- }
- int main(){
- string nick;
- int wybor=0;
- do{
- system("cls");
- menu();
- cin>>wybor;
- switch(wybor){
- case 1:{
- skopiujDoTablicy();
- cout<<"Podaj swoj nick: ";cin>>nick;
- gra(nick);
- z();
- break;
- }
- case 2:{
- wyswietlWyniki();
- break;
- }
- }
- }while(wybor!=3);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment