Advertisement
Guest User

Untitled

a guest
Jun 13th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib> /
  3. #include <windows.h> // biblioteka pozwalajaca nam wykorzystac komendy z zakresu system("...")
  4.  
  5. using namespace std;
  6.  
  7. void plansza(char p[]) // algorytm rysujacy plansze 9x9 z pustymi komorkami oznaczonymi p[i]
  8. {
  9. cout << "\n---+---+---+---+---+---+---+---+---+\n";
  10. for(int i=1; i <= 81; i++)
  11. {
  12. cout << " "<< p[i] <<" ";
  13. if(i % 9 )
  14. cout << "|";
  15. else if(i != 10000)
  16. cout << "\n---+---+---+---+---+---+---+---+---+\n";
  17. else
  18. cout << endl;
  19. }
  20. }
  21.  
  22. char ruch(char p[]) //funckja odpowiedzialna za wpisaywanie wartosci w odpowiednie miejsca na planszy
  23. {
  24. int r;
  25. char w;
  26.  
  27. cout << "Wybierz pole:";
  28. cin >> r; // r oznacza miejsce, w ktore gracz chce wpisac jakas liczbe
  29.  
  30. if((r >= 1) && (r <= 81) && (r != 3) && (r != 5) && (r != 7) && (r !=9) && (r != 11) && (r != 12) && (r != 17) && (r !=19)
  31. && (r !=33) && (r != 35) && (r != 37) && (r != 38) && (r !=39) && (r != 43) && (r != 54) && (r != 63) && (r !=67) && (r != 69)
  32. && (r !=75) && (r !=79))
  33. {
  34. cout << "Podaj wartosc, ktora ma byc wpisana w wyzej podane pole:";
  35. cin >> w; // w oznacza liczbe ktora gracz chce wpisac w miejsce podane wyzej
  36. if((w='1') || (w='2') || (w='3') || (w='4') || (w='4') || (w='5') || (w='6') || (w='7') || (w='8') || (w='9'))
  37. // if, ktory ma za zadanie pozwolic wpisywac tylko wartosci z zakresu 1-9
  38. {
  39. p[r] = w;
  40. }
  41. else cout << "bledna wartosc!";
  42. }
  43. else cout << "Bledna wartosc!";
  44.  
  45. Sleep(750); // funkcja usypia program na 750 mili sekund
  46. system("cls"); // po czym czysci ekran konsoli cmd
  47. return *p;
  48. }
  49.  
  50. bool Wygrana(char p[])
  51. {
  52. int IloscZnalezionych=0;
  53. bool wygrana = false;
  54.  
  55. for (int i=1;i<82;i++)
  56. {
  57. if ((p[i] == '1') || (p[i] == '2') || (p[i] == '3') || (p[i] == '4')
  58. || (p[i] == '5') || (p[i] == '6') || (p[i] == '7') || (p[i] == '8') || (p[i] == '9'))
  59. {
  60. IloscZnalezionych++;
  61. }
  62. }
  63.  
  64. if(IloscZnalezionych == 81)
  65. {
  66. wygrana = true;
  67. }
  68.  
  69. return wygrana;
  70. }
  71.  
  72. int main()
  73. {
  74. char p[82]; // p[82], a nie 81 ze wzgledu na nie uwzglednienie numeracji od 0 w tablicach c++
  75.  
  76. for(int i=0; i<82; i++)
  77. {
  78. p[i]='0';
  79. }
  80.  
  81. p[3]='1'; p[5]='8'; p[7]='2'; p[9]='3'; p[11]='9';
  82. p[12]='2'; p[17]='7'; p[19]='7'; p[33]='7'; p[35]='1';
  83. p[37]='9'; p[38]='3'; p[39]='2'; p[43]='8'; p[54]='9';
  84. p[63]='5'; p[67]='8'; p[69]='9'; p[75]='6'; p[79]='9'; // recznie zostala uzupelniona w niektorych miejscach plansza sudoku
  85.  
  86. for(int i=0; i<82; i++)
  87. {
  88. if ((p[i] != '1') && (p[i] != '2') && (p[i] != '3') && (p[i] != '4')
  89. && (p[i] != '5') && (p[i] != '6') && (p[i] != '7') && (p[i] != '8') && (p[i] != '9'))
  90. {
  91. p[i] = ' ';
  92. }
  93. }
  94.  
  95. bool wygrana=false;
  96.  
  97. while(!wygrana)
  98. {
  99. plansza(p);
  100. *p = ruch(p);
  101. wygrana = Wygrana(p);
  102. }
  103.  
  104. cout << "Brawo! Wygrales";
  105.  
  106. cout << "Nacisnij dowolony przycisk, aby opuscic gre:";
  107. system("pause>nul");
  108.  
  109. return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement