Gra saper

Gra Saper  C++


#include<iostream>
#include<stdio.h>
#include<sstream>
#include<time.h>
using namespace std;

char konwersja(int ilosc){
 int ile=ilosc;     
 stringstream ss;    //konwersja int-->string
 string wokol;
 ss << ile;  
 ss >> wokol;
 std::string str(wokol);   //konwersja string-->char
 char znak = str[0];  
    return znak;
}
void wyswietl2(int x, int y, char zakryj[11][11]){
 for (int i=1;i<=10;i++){
  cout<<endl;
  for(int j=1;j<=10;j++){
   zakryj[y][x]='B';
   cout<<zakryj[i][j]<<"  ";
  }
 }
}
void wyswietl(int x, int y, char zakryj[11][11], int ilosc){
 cout<<endl;
 for (int i=1;i<=10;i++){
  cout<<endl;
  for(int j=1;j<=10;j++){
   zakryj[y][x]=konwersja(ilosc);
   cout<<zakryj[i][j]<<"  ";
  }
 }
}
void gra(){
 int n,x,y,s,d,puste;
 while(1){
  cout<<"Podaj ilosc bomb max[99]: ";   //podajemy ilosc bomb
  cin>>n;
  if (n>=100)continue;
  else break;
 }

 srand(time(0));
 int tab[11][11];     //generowanie pustych pól
 for (int i=1;i<=10;i++){
  for(int j=1;j<=10;j++){
   tab[i][j]=0;   
  }
 }
  for(int k=0;k<n;k++){
    s=1+rand()%10;   //losowanie bomb na planszy
    d=1+rand()%10;
    tab[s][d]=1;   
  }

 puste=100-n;
 cout<<"Ilosc bomb na planszy: "<<n<<endl;
  char zakryj[11][11];
 for (int i=1;i<=10;i++){
  cout<<endl;
  for(int j=1;j<=10;j++){
   zakryj[i][j]='-';   //zakrywanie bomb znakiem '-'
   cout<<zakryj[i][j]<<"  ";
  }
 }
 while(1){
  cout<<endl<<endl;
  int ilosc=0;
 cout<<"Podaj wspolrzedne punktu: "<<endl;
 cout<<"x= ";
 cin>>x;
 cout<<"y= ";
 cin>>y;
 if(zakryj[y][x]!='-')continue;
  if(tab[y][x]==1){
   wyswietl2(x,y,zakryj);
   cout<<endl<<endl;
   cout<<"Bomba!!! Przegrales!"<<endl<<endl;
   break;
  }
  if (x<=10 && y<=10){
   if(tab[y][x]==0){
    if(tab[y][x-1]==1)ilosc++;
    if(tab[y-1][x]==1)ilosc++;
    if(tab[y-1][x-1]==1)ilosc++;   //sprawdzanie
    if(tab[y+1][x-1]==1)ilosc++;   //czy wokół punktu
    if(tab[y+1][x]==1)ilosc++;   //znajdujš się bomby
    if(tab[y-1][x+1]==1)ilosc++;
    if(tab[y][x+1]==1)ilosc++;
    if(tab[y+1][x+1]==1)ilosc++;
    
    wyswietl(x,y,zakryj,ilosc);
    puste--;
    if(puste==0){cout<<endl<<"Brawo!!! Wygrales"<<endl<<endl;break;}
    cout<<endl<<endl;
    cout<<"Pozostalo "<<puste<<" pol do odkrycia";
    continue;
   }
  }
 }
}
int main()
{
 char kont;
cout<<"             ******     *      *******   *******  *******"<<endl;
cout<<"             *         * *     *      *  *        *      *"<<endl;
cout<<"             ******   *   *    *******   ******   *******"<<endl;
cout<<"                  *  *******   *         *        *     *"<<endl;
cout<<"             ****** *       *  *         *******  *      *"<<endl<<endl<<endl;
 while(1){
  gra();
  cout<<"Grasz jeszcze raz?"<<endl<<"t - aby grac dalej..."<<endl<<"n - aby zakonczyc..."<<endl;
  cin>>kont;
  if (kont=='t' || kont=='T'){system("cls");continue;}
  else break;
 }
 cout<<endl;
 system("pause");
 return 0;
}