Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //1. Zrobia czyst¹ plansze
- //2. Zrobia losowanie min w zale¿noœci od ich liczby
- //3. Zrobia wybór
- //4. Zrobia sprawdzenie ile min jest w okolicy i wypisaa numer
- //5. Zrobia sprawdzenie czy mina
- //6. Zrobia sprawdzenie zwyciestwa
- #include <iostream>
- #include <cstdlib>
- #include <cstdio>
- #include <ctime>
- #include <sstream>
- using namespace std;
- void sprawdz(string plansza[][10], string udawanaPlansza[][10],int minitab[],int death[]){
- int miny=0;
- int minyWPoblizu=0;
- int j,k;
- do{
- cout<<"j: "<<minitab[0]<<" k: "<<minitab[1]<<endl;
- j=minitab[0];
- k=minitab[1];
- if(plansza[minitab[0]][minitab[1]]=="M"){
- cout<<"Slepa mina Koniec gry"<<endl;
- death[0]=1;
- exit(0);
- }
- if(j==0 && k==0){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj lewy gorny rog"<<endl;
- minyWPoblizu=0;
- if(plansza[j][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- int rekurencja[2];
- rekurencja[0]=minitab[0];
- rekurencja[1]=minitab[1]+1;
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- rekurencja[0]=minitab[0]+1;
- rekurencja[1]=minitab[1]+1;
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- rekurencja[0]=minitab[0]+1;
- rekurencja[1]=minitab[1];
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- if(j!=0 && j!=9 && k==0){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj gora"<<endl;
- minyWPoblizu=0;
- if(plansza[j][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- int rekurencja[2];
- rekurencja[0]=minitab[0];
- rekurencja[1]=minitab[1]+1;
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- rekurencja[0]=minitab[0]+1;
- rekurencja[1]=minitab[1]+1;
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- rekurencja[0]=minitab[0]+1;
- rekurencja[1]=minitab[1];
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- rekurencja[0]=minitab[0]-11;
- rekurencja[1]=minitab[1];
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- rekurencja[0]=minitab[0]-1;
- rekurencja[1]=minitab[1]-1;
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- if(j==9 && k==0){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj Prawy Gorny rog"<<endl;
- minyWPoblizu=0;
- if(plansza[j][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k+1]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- int rekurencja[2];
- rekurencja[0]=minitab[0];
- rekurencja[1]=minitab[1]+1;
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- rekurencja[0]=minitab[0]-1;
- rekurencja[1]=minitab[1];
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- rekurencja[0]=minitab[0]-1;
- rekurencja[1]=minitab[1]+1;
- sprawdz(plansza,udawanaPlansza,rekurencja,death);
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- if(j==9 && k!=0 && k!=9){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj Prawa"<<endl;
- minyWPoblizu=0;
- if(plansza[j][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j][k-1]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- if(j==9 && k==9){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj Prawy dolny rog"<<endl;
- minyWPoblizu=0;
- if(plansza[j-1][k]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j][k-1]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- if(j!=9 && j!=0 && k==9){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj dol"<<endl;
- minyWPoblizu=0;
- if(plansza[j-1][k]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- if(j==0 && k==9){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj lewy dolny rog"<<endl;
- minyWPoblizu=0;
- if(plansza[j][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- if(j==0 && k!=0 &&k!=9){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj lewa"<<endl;
- minyWPoblizu=0;
- if(plansza[j][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- if(j!=0 && j!=9 && k!=0 && k!=9){ //j jest pionem a k jest poziomem
- cout<<"bylem tutaj srodek"<<endl;
- minyWPoblizu=0;
- if(plansza[j][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k+1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k-1]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j-1][k]=="M"){
- minyWPoblizu++;
- }
- if(plansza[j+1][k]=="M"){
- minyWPoblizu++;
- }
- if(minyWPoblizu==0){
- udawanaPlansza[j][k]=minyWPoblizu;
- }else{
- ostringstream ss;
- ss << minyWPoblizu;
- udawanaPlansza[j][k]=ss.str();
- }
- }
- }while(miny>0);
- }
- void wyczyscPlansze(string plansza[][10])
- {
- int k=0,j=0;
- for (int j=0;true;j++){
- plansza[j][k]="0";
- cout<<plansza[j][k];
- if(j==9)
- {
- if(j==9 && k==9){
- break;
- }
- k++;
- j=-1;
- cout<<"k++"<<endl;
- }
- }
- }
- void wylosujMiny(string plansza[][10], int miny)
- {
- int j=0,k=0,l=0;
- for(int z=0;z<miny;){
- j=( rand() % 10 ) + 0;
- k=( rand() % 10 ) + 0;
- cout<<"j: "<<j<<" k: "<<k<<endl;
- if(plansza[j][k]=="M"){
- cout<<"powtórzenie"<<endl;
- }
- else{
- plansza[j][k]="M";
- z++;
- }
- cout<<endl;
- }
- for (int j=0;true;j++){
- cout<<plansza[j][l];
- if(j==9)
- {
- if(j==9 && l==9){
- break;
- }
- l++;
- j=-1;
- cout<<endl;
- }
- }
- cout<<endl<<endl;
- }
- void wyczyscUdawanaPlansze(string plansza[][10])
- {
- int k=0,j=0;
- for (int j=0;true;j++){
- plansza[j][k]="?";
- cout<<plansza[j][k];
- if(j==9)
- {
- if(j==9 && k==9){
- break;
- }
- k++;
- j=-1;
- cout<<"k++"<<endl;
- }
- }
- cout<<endl;
- }
- void narysujPole(string plansza[][10]){
- int k=0,j=0;
- for (int j=0;true;j++){
- cout<<plansza[j][k];
- if(j==9)
- {
- if(j==9 && k==9){
- break;
- }
- k++;
- j=-1;
- cout<<"k++"<<endl;
- }
- }
- cout<<endl;
- }
- void wybor(int minitab[]){
- int j,k;
- cout<<endl<<"Prosze wybierz wspolrzendne do sprawdzenia"<<endl;
- do{
- cin.clear();
- cin.sync();
- cin>>j>>k;
- if(j<0 || j>9 || k<0 || k>9 || (cin.good()==false)){
- cout<<"Zakres liczb wynosi 1-9. Popraw sie"<<endl;
- }else{
- minitab[0]=j;
- minitab[1]=k;
- }
- }while(j<0 || j>9 || k<0 || k>9 || (cin.good()==false));
- }
- int main()
- {
- srand( time( NULL ) );
- int miny=0;
- int minyWPoblizu=0;
- int j,k;
- int death[1];
- death[0]=0;
- cout<<"Witaj w saperze 10x10"<<endl;
- cout<<"Ile chcesz min? :"<<endl;
- cin>>miny;
- while (miny > 99){
- cout<<"pls no more than 99"<<endl<<"Try again"<<endl;
- cin>>miny;
- }
- string plansza[10][10];
- string udawanaPlansza[10][10];
- wyczyscPlansze(plansza);
- wylosujMiny(plansza,miny);
- wyczyscUdawanaPlansze(udawanaPlansza);
- int minitab[2];
- narysujPole(udawanaPlansza);
- do{
- wybor(minitab);
- sprawdz(plansza, udawanaPlansza,minitab,death );
- narysujPole(udawanaPlansza);
- }while(death[0]!=1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement