Advertisement
tomur

Saper

Jan 12th, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.95 KB | None | 0 0
  1. //1. Zrobia czystą plansze
  2. //2. Zrobia losowanie min w zależności od ich liczby
  3. //3. Zrobia wybór
  4. //4. Zrobia sprawdzenie ile min jest w okolicy i wypisaa numer
  5. //5. Zrobia sprawdzenie czy mina
  6. //6. Zrobia sprawdzenie zwyciestwa
  7. #include <iostream>
  8. #include <cstdlib>
  9. #include <ctime>
  10. #include <sstream>
  11. using namespace std;
  12.  
  13. void wyczyscPlansze(string plansza[][10])
  14. {
  15.  
  16.  
  17.  int k=0,j=0;
  18.  for (int j=0;true;j++){
  19.  
  20.     plansza[j][k]="0";
  21.     cout<<plansza[j][k];
  22.  
  23.     if(j==9)
  24.         {
  25.             if(j==9 && k==9){
  26.         break;
  27.     }
  28.         k++;
  29.         j=-1;
  30.         cout<<"k++"<<endl;
  31.         }
  32.  
  33.  }
  34. }
  35. void wylosujMiny(string plansza[][10], int miny)
  36. {
  37.      int j=0,k=0,l=0;
  38.      for(int z=0;z<miny;){
  39.     j=( rand() % 10 ) + 0;
  40.     k=( rand() % 10 ) + 0;
  41.     cout<<"j: "<<j<<" k: "<<k<<endl;
  42.     if(plansza[j][k]=="M"){
  43.          cout<<"powtórzenie"<<endl;
  44.          }
  45.          else{
  46.              plansza[j][k]="M";
  47.              z++;
  48.       }
  49.       cout<<endl;
  50. }
  51. for (int j=0;true;j++){
  52.  
  53.     cout<<plansza[j][l];
  54.  
  55.     if(j==9)
  56.         {
  57.             if(j==9 && l==9){
  58.         break;
  59.     }
  60.         l++;
  61.         j=-1;
  62.         cout<<endl;
  63.         }
  64.  
  65.  }
  66.  cout<<endl<<endl;
  67. }
  68. void wyczyscUdawanaPlansze(string plansza[][10])
  69. {
  70.  
  71.  
  72.  int k=0,j=0;
  73.  for (int j=0;true;j++){
  74.  
  75.     plansza[j][k]="?";
  76.     cout<<plansza[j][k];
  77.  
  78.     if(j==9)
  79.         {
  80.             if(j==9 && k==9){
  81.         break;
  82.     }
  83.         k++;
  84.         j=-1;
  85.         cout<<"k++"<<endl;
  86.         }
  87.  
  88.  }
  89.  cout<<endl;
  90. }
  91. void narysujPole(string plansza[][10]){
  92.     int k=0,j=0;
  93.  for (int j=0;true;j++){
  94.  
  95.     cout<<plansza[j][k];
  96.  
  97.     if(j==9)
  98.         {
  99.             if(j==9 && k==9){
  100.         break;
  101.     }
  102.         k++;
  103.         j=-1;
  104.         cout<<"k++"<<endl;
  105.         }
  106.  
  107.  }
  108.  cout<<endl;
  109. }
  110. void wybor(int minitab[]){
  111.        int j,k;
  112.        cout<<endl<<"Prosze wybierz wspolrzendne do sprawdzenia"<<endl;
  113.        do{
  114.        cin.clear();
  115.        cin.sync();
  116.        cin>>j>>k;
  117.        if(j<0 || j>9 || k<0 || k>9 || (cin.good()==false)){
  118.               cout<<"Zakres liczb wynosi 1-9. Popraw sie"<<endl;
  119.                  }else{
  120.        minitab[0]=j;
  121.        minitab[1]=k;
  122.        }
  123.        }while(j<0 || j>9 || k<0 || k>9 || (cin.good()==false));
  124.        }
  125.  
  126.  
  127.  
  128. int main()
  129. {
  130.     srand( time( NULL ) );
  131.     int miny=0;
  132.     int minyWPoblizu=0;
  133.     int j,k;
  134.     cout<<"Witaj w saperze 10x10"<<endl;
  135.     cout<<"Ile chcesz min? :"<<endl;
  136.     cin>>miny;
  137.     while (miny > 99){
  138.  
  139.              cout<<"pls no more than 99"<<endl<<"Try again"<<endl;
  140.              cin>>miny;
  141.  
  142.         }
  143.     string plansza[10][10];
  144.     string udawanaPlansza[10][10];
  145.     wyczyscPlansze(plansza);
  146.     wylosujMiny(plansza,miny);
  147.     wyczyscUdawanaPlansze(udawanaPlansza);
  148.     int minitab[2];
  149.     do{
  150.     narysujPole(udawanaPlansza);
  151.     wybor(minitab);
  152.     cout<<"j: "<<minitab[0]<<" k: "<<minitab[1]<<endl;
  153.     j=minitab[0];
  154.     k=minitab[1];
  155.     if(plansza[minitab[0]][minitab[1]]=="M"){
  156.     cout<<"Slepa mina Koniec gry"<<endl;
  157.     exit(0);
  158.     }
  159.     if(j==0 && k==0){ //j jest pionem a k jest poziomem
  160.     cout<<"bylem tutaj lewy gorny rog"<<endl;
  161.     minyWPoblizu=0;
  162.         if(plansza[j][k+1]=="M"){
  163.             minyWPoblizu++;
  164.         }
  165.         if(plansza[j+1][k+1]=="M"){
  166.             minyWPoblizu++;
  167.         }
  168.         if(plansza[j+1][k]=="M"){
  169.             minyWPoblizu++;
  170.         }
  171.         if(minyWPoblizu==0){
  172.             udawanaPlansza[j][k]=minyWPoblizu;
  173.  
  174.         }else{
  175.         ostringstream ss;
  176.         ss << minyWPoblizu;
  177.         udawanaPlansza[j][k]=ss.str();
  178.         }
  179.  
  180.     }
  181.     if(j!=0 && j!=9 && k==0){ //j jest pionem a k jest poziomem
  182.     cout<<"bylem tutaj gora"<<endl;
  183.     minyWPoblizu=0;
  184.         if(plansza[j][k+1]=="M"){
  185.             minyWPoblizu++;
  186.         }
  187.         if(plansza[j+1][k+1]=="M"){
  188.             minyWPoblizu++;
  189.         }
  190.         if(plansza[j+1][k]=="M"){
  191.             minyWPoblizu++;
  192.         }
  193.         if(plansza[j-1][k]=="M"){
  194.             minyWPoblizu++;
  195.         }
  196.         if(plansza[j-1][k-1]=="M"){
  197.             minyWPoblizu++;
  198.         }
  199.         if(minyWPoblizu==0){
  200.             udawanaPlansza[j][k]=minyWPoblizu;
  201.  
  202.         }else{
  203.         ostringstream ss;
  204.         ss << minyWPoblizu;
  205.         udawanaPlansza[j][k]=ss.str();
  206.         }
  207.  
  208.     }
  209.     if(j==9 && k==0){ //j jest pionem a k jest poziomem
  210.     cout<<"bylem tutaj Prawy Gorny rog"<<endl;
  211.     minyWPoblizu=0;
  212.         if(plansza[j][k+1]=="M"){
  213.             minyWPoblizu++;
  214.         }
  215.         if(plansza[j-1][k]=="M"){
  216.             minyWPoblizu++;
  217.         }
  218.         if(plansza[j-1][k+1]=="M"){
  219.             minyWPoblizu++;
  220.         }
  221.         if(minyWPoblizu==0){
  222.             udawanaPlansza[j][k]=minyWPoblizu;
  223.  
  224.         }else{
  225.         ostringstream ss;
  226.         ss << minyWPoblizu;
  227.         udawanaPlansza[j][k]=ss.str();
  228.         }
  229.  
  230.     }
  231.  
  232.         if(j==9 && k!=0 && k!=9){ //j jest pionem a k jest poziomem
  233.     cout<<"bylem tutaj Prawa"<<endl;
  234.     minyWPoblizu=0;
  235.         if(plansza[j][k+1]=="M"){
  236.             minyWPoblizu++;
  237.         }
  238.         if(plansza[j-1][k]=="M"){
  239.             minyWPoblizu++;
  240.         }
  241.         if(plansza[j-1][k+1]=="M"){
  242.             minyWPoblizu++;
  243.         }
  244.         if(plansza[j-1][k-1]=="M"){
  245.             minyWPoblizu++;
  246.         }
  247.         if(plansza[j][k-1]=="M"){
  248.             minyWPoblizu++;
  249.         }
  250.         if(minyWPoblizu==0){
  251.             udawanaPlansza[j][k]=minyWPoblizu;
  252.  
  253.         }else{
  254.         ostringstream ss;
  255.         ss << minyWPoblizu;
  256.         udawanaPlansza[j][k]=ss.str();
  257.         }
  258.  
  259.         }
  260. if(j==9 && k==9){ //j jest pionem a k jest poziomem
  261.     cout<<"bylem tutaj Prawy dolny rog"<<endl;
  262.     minyWPoblizu=0;
  263.         if(plansza[j-1][k]=="M"){
  264.             minyWPoblizu++;
  265.         }
  266.         if(plansza[j-1][k-1]=="M"){
  267.             minyWPoblizu++;
  268.         }
  269.         if(plansza[j][k-1]=="M"){
  270.             minyWPoblizu++;
  271.         }
  272.         if(minyWPoblizu==0){
  273.             udawanaPlansza[j][k]=minyWPoblizu;
  274.  
  275.         }else{
  276.         ostringstream ss;
  277.         ss << minyWPoblizu;
  278.         udawanaPlansza[j][k]=ss.str();
  279.         }
  280.  
  281.         }
  282.         if(j!=9 && j!=0 && k==9){ //j jest pionem a k jest poziomem
  283.     cout<<"bylem tutaj dol"<<endl;
  284.     minyWPoblizu=0;
  285.         if(plansza[j-1][k]=="M"){
  286.             minyWPoblizu++;
  287.         }
  288.         if(plansza[j-1][k-1]=="M"){
  289.             minyWPoblizu++;
  290.         }
  291.         if(plansza[j][k-1]=="M"){
  292.             minyWPoblizu++;
  293.         }
  294.         if(plansza[j+1][k-1]=="M"){
  295.             minyWPoblizu++;
  296.         }
  297.         if(plansza[j+1][k]=="M"){
  298.             minyWPoblizu++;
  299.         }
  300.         if(minyWPoblizu==0){
  301.             udawanaPlansza[j][k]=minyWPoblizu;
  302.  
  303.         }else{
  304.         ostringstream ss;
  305.         ss << minyWPoblizu;
  306.         udawanaPlansza[j][k]=ss.str();
  307.         }
  308.  
  309.         }
  310.         if(j==0 && k==9){ //j jest pionem a k jest poziomem
  311.     cout<<"bylem tutaj lewy dolny rog"<<endl;
  312.     minyWPoblizu=0;
  313.         if(plansza[j][k-1]=="M"){
  314.             minyWPoblizu++;
  315.         }
  316.         if(plansza[j+1][k-1]=="M"){
  317.             minyWPoblizu++;
  318.         }
  319.         if(plansza[j+1][k]=="M"){
  320.             minyWPoblizu++;
  321.         }
  322.         if(minyWPoblizu==0){
  323.             udawanaPlansza[j][k]=minyWPoblizu;
  324.  
  325.         }else{
  326.         ostringstream ss;
  327.         ss << minyWPoblizu;
  328.         udawanaPlansza[j][k]=ss.str();
  329.         }
  330.  
  331.         }
  332.         if(j==0 && k!=0 &&k!=9){ //j jest pionem a k jest poziomem
  333.     cout<<"bylem tutaj lewa"<<endl;
  334.     minyWPoblizu=0;
  335.         if(plansza[j][k+1]=="M"){
  336.             minyWPoblizu++;
  337.         }
  338.         if(plansza[j][k-1]=="M"){
  339.             minyWPoblizu++;
  340.         }
  341.         if(plansza[j+1][k-1]=="M"){
  342.             minyWPoblizu++;
  343.         }
  344.         if(plansza[j+1][k+1]=="M"){
  345.             minyWPoblizu++;
  346.         }
  347.         if(plansza[j+1][k]=="M"){
  348.             minyWPoblizu++;
  349.         }
  350.         if(minyWPoblizu==0){
  351.             udawanaPlansza[j][k]=minyWPoblizu;
  352.  
  353.         }else{
  354.         ostringstream ss;
  355.         ss << minyWPoblizu;
  356.         udawanaPlansza[j][k]=ss.str();
  357.         }
  358.  
  359.         }
  360.  
  361.     }while(miny>0);
  362.  
  363.     return 0;
  364. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement