Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <iomanip>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7.  
  8. int roll_dices();
  9. void board_top(char** tab);
  10. void board_bottom(char** tab);
  11. void print_board(char** tab_top, char** tab_bot);
  12. void menu();
  13. void rozgrywka(char**, char**);
  14. void ruch_gracza(char**, char**, int);
  15. void ruch_x(char**, char**, int, int, int, int);
  16.  
  17. const int W = 15;
  18. const int K = 12;
  19.  
  20. int main()
  21. {
  22. srand(time(NULL));
  23.  
  24. // tablica gornej czesci planszy
  25.  
  26. char **tab_top = new char *[W];
  27. for (int i = 0; i < W; i++)
  28. {
  29. tab_top[i] = new char[K];
  30. }
  31.  
  32. //tablica dolnej czesci planszy
  33.  
  34. char **tab_bot = new char *[W];
  35. for (int i = 0; i < W; i++)
  36. {
  37. tab_bot[i] = new char[K];
  38. }
  39. char wybor;
  40. menu();
  41. cin >> wybor;
  42. cin.get();
  43. switch (wybor) {
  44. case '1': {
  45. cout << "Wybrales nowa gre! Trwa generowanie planszy...";
  46. Sleep(2000);
  47. system("cls");
  48. board_top(tab_top);
  49. board_bottom(tab_bot);
  50. print_board(tab_top, tab_bot);
  51. cout << "\n\n";
  52. rozgrywka(tab_top, tab_bot);
  53. break;
  54. }
  55. case '2': {
  56. cout << "Gra zostanie zamknieta!";
  57. Sleep(2000);
  58. return 0;
  59. break;
  60. }
  61. default: {
  62. cout << "Zly button :(, gra zostanie zamknieta";
  63. Sleep(2000);
  64. return 0;
  65. break;
  66. }
  67. }
  68. for (int i = 0; i < W; i++)
  69. {
  70. delete[] tab_top[i];
  71. delete[] tab_bot[i];
  72. }
  73. delete[] tab_top;
  74. delete[] tab_bot;
  75.  
  76. cin.get();
  77. return 0;
  78. }
  79.  
  80. int roll_dices()
  81. {
  82. return ((rand() % 6) + 1);
  83. }
  84.  
  85. void board_top(char** tab)
  86. {
  87. for (int i = 0; i < W; i++)
  88. {
  89. for (int j = 0; j < K; j++)
  90. tab[i][j] = ' ';
  91. }
  92.  
  93. for (int i = 0; i < 5; i++)
  94. tab[i][0] = 'o';
  95.  
  96. for (int i = 0; i < 3; i++)
  97. tab[i][4] = 'x';
  98.  
  99. for (int i = 0; i < 5; i++)
  100. tab[i][6] = 'x';
  101.  
  102. for (int i = 0; i < 2; i++)
  103. tab[i][11] = 'o';
  104.  
  105. }
  106.  
  107. void board_bottom(char** tab)
  108. {
  109. for (int i = 0; i < W; i++)
  110. {
  111. for (int j = 0; j < K; j++)
  112. tab[i][j] = ' ';
  113. }
  114.  
  115. for (int i = 14; i > 9; i--)
  116. tab[i][11] = 'x';
  117.  
  118. for (int i = 14; i > 11; i--)
  119. tab[i][7] = 'o';
  120.  
  121. for (int i = 14; i > 9; i--)
  122. tab[i][5] = 'o';
  123.  
  124. for (int i = 14; i > 12; i--)
  125. tab[i][0] = 'x';
  126. }
  127.  
  128. void print_board(char** tab_top, char** tab_bot)
  129. {
  130. for (int i = 13; i < 25; i++)
  131. cout << i << '\t';
  132.  
  133. cout << endl;
  134.  
  135. for (int i = 0; i < W; i++, cout << endl)
  136. {
  137. for (int j = 0; j < K; j++)
  138. {
  139. cout << tab_top[i][j] << '\t';
  140. }
  141. }
  142.  
  143. cout << endl;
  144.  
  145. for (int i = 0; i < W; i++, cout << endl)
  146. {
  147. for (int j = K - 1; j >= 0; j--)
  148. {
  149. cout << tab_bot[i][j] << '\t';
  150. }
  151. }
  152.  
  153. for (int i = 12; i > 0; i--)
  154. cout << i << '\t';
  155.  
  156. }
  157.  
  158. void menu() {
  159. cout << "Witaj w grze: TRYKTRAK!" << "\n";
  160. cout << "Co chcesz zrobic?" << "\n";
  161. cout << "1) Nowa gra" << "\t" << "2) Wyjdz" << "\n";
  162. }
  163.  
  164. void rozgrywka(char** tab_top, char** tab_bot) {
  165. bool gra_trwa = true;
  166. int tura = 1;
  167. char poddanie;
  168. while (gra_trwa == true)
  169. {
  170. if (tura % 2 != 0) cout << "Gracz 1 - O : ";
  171. else if (tura % 2 == 0) cout << "Gracz 2 - X : ";
  172. cout << "Aby rzucic koscmi, nacisnij dowolny przycisk... ";
  173. cin.get();
  174. ruch_gracza(tab_top, tab_bot, tura);
  175. cout << "\nCzy chcesz sie poddac?\n T \t N\n";
  176. cin >> poddanie;
  177. if (poddanie == 'T' || poddanie == 't')
  178. {
  179. cout << "Poddales sie, wygrywa przeciwnik! Nacisnij przycisk aby wyjsc";
  180. cin.get();
  181. gra_trwa = false;
  182. }
  183. else tura++;
  184. }
  185. }
  186. void ruch_gracza(char** tab_top, char** tab_bot, int tura)
  187. {
  188. int kosc1 = roll_dices();
  189. int kosc2 = roll_dices();
  190. cin.get();
  191. cout << "\nWylosowane liczby to: " << kosc1 << " " << kosc2 << "\n";
  192. cout << "Z ktorej kolumny pionek chcesz przesunac? ";
  193. int z_ktorej_kolumny;
  194. bool prawidlowy_ruch = false;
  195. int wiersz_z_ktorego_przenosimy;
  196. cin >> z_ktorej_kolumny;
  197. if (tura % 2 != 0)
  198. {
  199. if (z_ktorej_kolumny >= 1 && z_ktorej_kolumny <= 12)
  200. {
  201. //tab_bot
  202. for (int i = (W-1); i >=0; i--)
  203. {
  204. if (tab_bot[i][z_ktorej_kolumny-1] == 'o')
  205. {
  206. prawidlowy_ruch = true;
  207. wiersz_z_ktorego_przenosimy = i;
  208. //zamien
  209.  
  210. }
  211. }
  212. if (!prawidlowy_ruch) cout << "Zla kolumna, pominiecie ruchu";
  213. }
  214. else if (z_ktorej_kolumny >= 13 && z_ktorej_kolumny <= 24)
  215. {
  216. for (int i = (W - 1); i >= 0; i--)
  217. {
  218. if (tab_bot[i][z_ktorej_kolumny-13] == 'o')
  219. {
  220. prawidlowy_ruch = true;
  221. wiersz_z_ktorego_przenosimy = i;
  222. //zamien
  223. }
  224. }
  225. }
  226. else {
  227. cout << "Zly numer";
  228. //continue;
  229. }
  230. }
  231. else {
  232. if (z_ktorej_kolumny >= 1 && z_ktorej_kolumny <= 12)
  233. {
  234. //tab_bot
  235. for (int i = 0; i < W; i++)
  236. {
  237. if (tab_bot[i][z_ktorej_kolumny-1] == 'x') {
  238. prawidlowy_ruch = true;
  239. wiersz_z_ktorego_przenosimy = i;
  240. //zamien
  241. if (prawidlowy_ruch == true) {
  242. ruch_x(tab_top, tab_bot, kosc1, kosc2, z_ktorej_kolumny, wiersz_z_ktorego_przenosimy);
  243. break;
  244. }
  245. }
  246. }
  247. }
  248. else if (z_ktorej_kolumny >= 13 && z_ktorej_kolumny <= 24)
  249. {
  250. //tab_top
  251. for (int i = 0; i < W; i++)
  252. {
  253. if (tab_bot[i][z_ktorej_kolumny-13] == 'x') {
  254. prawidlowy_ruch = true;
  255. wiersz_z_ktorego_przenosimy = i;
  256. //zamien
  257.  
  258. }
  259. }
  260. }
  261. else {
  262. cout << "Zly numer";
  263. //continue;
  264. }
  265. }
  266. }
  267.  
  268. void ruch_x(char** tab_top, char** tab_bot, int kosc1, int kosc2, int z_ktorej_kolumny, int wiersz_z_ktorego_przenosimy)
  269. {
  270. cout << "Jak chcesz poruszyc pionek/pionki? \n 1) Pionek o sumie dwoch kosci \t 2) Pionek o wartosc jednej kosci 3) Dwa pionki o wartosci poszczegolnych kosci \n";
  271. char wybor;
  272. cin >> wybor;
  273. switch (wybor)
  274. {
  275. case '1':
  276. {
  277. int ruch = kosc1 + kosc2;
  278.  
  279. }
  280. }
  281. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement