Advertisement
Guest User

abc2

a guest
Nov 23rd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // PoPprojekt1
  4. //
  5. // Created by Damian Szwichtenberg on 23.11.2017.
  6. // Copyright © 2017 Damian Szwichtenberg. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10.  
  11. const int SZER = 11; //szerokosc naszej planszy
  12. const int WYS = 6; //wysokosc naszej planszy
  13.  
  14. //generowanie planszy startowej
  15. int generowanie_planszy(char plansza[WYS][SZER]);
  16. //wypisywanie naszej planszy
  17. int wypisz_plansze(char plansza[WYS][SZER]);
  18. //kontrola danych
  19. int pobierz_wspolrzedna(char plansza[WYS][SZER], int &x, int &y);
  20. //sprawdzanie czy wybrane pole jest poprawne
  21. int sprawdz_pole(char plansza[WYS][SZER], int li, int cy);
  22.  
  23. int main() {
  24. //tablica 2D przechowujaca nasza plansze
  25. char plansza[WYS][SZER];
  26. //ilosc pozostalych pionkow
  27. int ilosc_czarnych, ilosc_czerwonych;
  28. ilosc_czarnych = ilosc_czerwonych = 4;
  29. //do aktualnie wybranej pozycji
  30. int x, y;
  31. x = y = 0;
  32.  
  33. generowanie_planszy(plansza);
  34. wypisz_plansze(plansza);
  35.  
  36. pobierz_wspolrzedna(plansza, x, y);
  37. std::cout << sprawdz_pole(plansza, x, y) << std::endl;
  38.  
  39. return 0;
  40. }
  41.  
  42. int generowanie_planszy(char plansza[WYS][SZER]) {
  43. //sprawdzanie poprawnosci otrzymanych danych
  44. if(plansza == NULL)
  45. return -1;
  46.  
  47. //zmienne do wypisywania wspolrzecdnych
  48. char pion = '4';
  49. char poziom = 'A';
  50.  
  51. //zewnetrzna petla przesuwa sie po wierszach
  52. for(int i = 0; i < WYS; i++) {
  53. //wewnetrzna petla przesuwa sie po kolumnach
  54. for(int j = 0; j < SZER; j++) {
  55. //jesli jestesmy w pierwszej kolumnie na wysokosci planszy
  56. if(j == 0 && i < 4)
  57. plansza[i][j] = pion--;
  58. //jesli jestesmy w ostatnim wierszu, to wpisujemy w co 2 kolumne pod plansza
  59. else if(i == WYS-1 && j > 2 && j % 2 != 0)
  60. plansza[i][j] = poziom++;
  61. //od 2 kolumny wlaczenie, co druga; tylko 4 pierwsze wiersze
  62. else if(j > 1 && j % 2 == 0 && i < 4)
  63. plansza[i][j] = '|';
  64. //pierwszy wiersz, co 2 pole, od 3, tylko nieparzyste
  65. else if(i == 0 && j > 2 && j % 2 != 0)
  66. plansza[i][j] = 'c';
  67. //ostatni wiersz planszy (nie tabeli), od 3, co 2 pole, tylko nieparzyste
  68. else if(i == WYS-3 && j > 2 && j % 2 != 0)
  69. plansza[i][j] = 'b';
  70. //pozostale przypadki
  71. else
  72. plansza[i][j] = ' ';
  73. }
  74. }
  75.  
  76. return 1;
  77. }
  78.  
  79. int wypisz_plansze(char plansza[WYS][SZER]) {
  80. //sprawdzanie poprawnosci otrzymanych danych
  81. if(plansza == NULL)
  82. return -1;
  83.  
  84. //zewnetrzna petla przesuwa sie po wierszach
  85. for(int i = 0; i < WYS; i++) {
  86. //wewnetrzna petla przesuwa sie po kolumnach
  87. for(int j = 0; j < SZER; j++) {
  88. std::cout << plansza[i][j];
  89. }
  90. //po wypisaniu calego wiersza przechodzimy o linijke nizej
  91. std::cout << std::endl;
  92. }
  93.  
  94. return 1;
  95. }
  96.  
  97. int pobierz_wspolrzedna(char plansza[WYS][SZER], int &x, int &y) {
  98. //sprawdzanie poprawnosci otrzymanych danych
  99. if(plansza == NULL)
  100. return -1;
  101.  
  102. char znak[2];
  103. char pomocna;
  104.  
  105. do {
  106. //czyszczenie strumienia
  107. std::cin.clear();
  108. std::cin.sync();
  109.  
  110. std::cout << "Podaj wspolrzedne pionka : ";
  111. znak[0] = getchar();
  112. znak[1] = getchar();
  113. pomocna = getchar();
  114. if(pomocna == 10)
  115. pomocna = EOF;
  116. } while(znak[0] < 65 || znak[0] > 68 || znak[1] < 49 || znak[1] > 52 || pomocna != EOF);
  117.  
  118. //zapisujemy nasze wybrane wspolrzedne
  119. x = znak[0];
  120. y = znak[1];
  121.  
  122. return 1;
  123. }
  124.  
  125. int sprawdz_pole(char plansza[WYS][SZER], int li, int cy) {
  126. //sprawdzanie poprawnosci otrzymanych danych
  127. if(plansza == NULL)
  128. return -1;
  129.  
  130. int wsp_x = 0;
  131. int wsp_y = 0;
  132.  
  133. for(int j = 3; j <= 9; j += 2) {
  134. if(plansza[WYS-1][j] == li)
  135. wsp_x = j;
  136. }
  137.  
  138. for(int i = 0; i < 4; i++) {
  139. if(plansza[i][0] == cy)
  140. wsp_y = i;
  141. }
  142.  
  143. if(plansza[wsp_y][wsp_x] == 'c')
  144. return 1;
  145. else
  146. return -2;
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement