Advertisement
Guest User

Untitled

a guest
May 11th, 2021
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <time.h>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. class card
  7. {
  8. public:
  9. string name;//np Jopek
  10. string type;//Wino,trefl
  11. int value;//Numeryczne wiadomo Jopek - 11 Królowa - 12 Król-13 As-14 Joker-15
  12. int numerOnList;//kolejność w tali
  13. bool yours;//czy karta jest u ciebie czy u przeciwnika
  14. card()
  15. {
  16. type="unknown";
  17. name="unknown";
  18. value = 404;
  19. numerOnList = 404;
  20. bool yours = false;
  21.  
  22. }
  23. card(string t, int v, int nol, bool y)
  24. {
  25. switch(v)
  26. {
  27. case 2:
  28. name = "2";
  29. break;
  30. case 3:
  31. name = "3";
  32. break;
  33. case 4:
  34. name = "4";
  35. break;
  36. case 5:
  37. name = "5";
  38. break;
  39. case 6:
  40. name = "6";
  41. break;
  42. case 7:
  43. name = "7";
  44. break;
  45. case 8:
  46. name = "8";
  47. break;
  48. case 9:
  49. name = "9";
  50. break;
  51. case 10:
  52. name = "10";
  53. break;
  54. case 11:
  55. name = "Valet";
  56. break;
  57. case 12:
  58. name = "Queen";
  59. break;
  60. case 13:
  61. name = "King";
  62. break;
  63. case 14:
  64. name = "Ace";
  65. break;
  66. case 15:
  67. name = "Joker";
  68. break;
  69. }
  70. type = t;
  71. value = v;
  72. numerOnList = nol;
  73. yours = y;
  74. cout<<"card constructor done"<<endl;
  75. }
  76. void cardRemake(string t, int v, int nol, bool y)
  77. {
  78. switch(v)
  79. {
  80. case 2:
  81. name = "2";
  82. break;
  83. case 3:
  84. name = "3";
  85. break;
  86. case 4:
  87. name = "4";
  88. break;
  89. case 5:
  90. name = "5";
  91. break;
  92. case 6:
  93. name = "6";
  94. break;
  95. case 7:
  96. name = "7";
  97. break;
  98. case 8:
  99. name = "8";
  100. break;
  101. case 9:
  102. name = "9";
  103. break;
  104. case 10:
  105. name = "10";
  106. break;
  107. case 11:
  108. name = "Valet";
  109. break;
  110. case 12:
  111. name = "Queen";
  112. break;
  113. case 13:
  114. name = "King";
  115. break;
  116. case 14:
  117. name = "Ace";
  118. break;
  119. case 15:
  120. name = "Joker";
  121. break;
  122. }
  123. type = t;
  124. value = v;
  125. numerOnList = nol;
  126. yours = y;
  127. cout<<"cardRemake process done"<<endl;
  128. }
  129. };
  130. class deck
  131. {
  132. public:
  133. card cards[54];
  134. int currentPos=26;//ile kart
  135. friend void dealCards();
  136. void moveCard()
  137. {
  138. for(int i=0;i>currentPos;i++)
  139. {
  140. cards[i]=cards[i+1];
  141. }
  142. }
  143. void cardWon(string t, int v, int nol, bool y)
  144. {
  145. currentPos++;
  146. cards[currentPos-2] = cards[0];
  147. cards[currentPos-1] = card(t,v,nol,y);
  148. moveCard();
  149. }
  150. void cardLose(deck *ptr )
  151. {
  152.  
  153. ptr->cardWon(this->cards[0].type,this->cards[0].value,this->cards[0].numerOnList,this->cards[0].yours);
  154. moveCard();
  155. currentPos--;
  156. }
  157. bool testCards(string t, int v, bool y,deck &ptr)
  158. {
  159. cout<<"cardTesting is doing fine"<<endl;
  160. for(int i=0;i<27;i++)
  161. {
  162. if((cards[i].type == t)||(cards[i].value == v)||(cards[i].yours == y))
  163. {
  164. return true;
  165. }
  166. }
  167. for(int i=0;i<27;i++)
  168. {
  169. if((ptr.cards[i].type == t)||(ptr.cards[i].value == v)||(ptr.cards[i].yours == y))
  170. {
  171. return true;
  172. }
  173. else
  174. {
  175. return false;
  176. }
  177. }
  178.  
  179. }
  180. };
  181.  
  182. int main()
  183. {
  184. deck enemyDeck,yourDeck;
  185. bool w;
  186. for(int i=0;i<=26;i++)
  187. {
  188. srand(time(NULL));
  189. string t;
  190. int v, nol=1;
  191. bool y=false;
  192. do
  193. {
  194. v = rand()%4+1;
  195. switch(v)
  196. {
  197. case 1:
  198. t = "clubs";
  199. break;
  200. case 2:
  201. t = "hearts";
  202. break;
  203. case 3:
  204. t = "diamonds";
  205. break;
  206. case 4:
  207. t = "spades";
  208. break;
  209. }
  210. v=rand()%13+2;
  211. w= enemyDeck.testCards(t,v,y,yourDeck);
  212. }
  213. while(w);
  214. enemyDeck.cards[i].cardRemake(t,v,nol,y);
  215. cout<<nol<<".done"<<endl;
  216. nol++;
  217. }
  218. for(int i=0;i<=26;i++)
  219. {
  220. string t;
  221. int v, nol=0;
  222. bool y=true;
  223. nol++;
  224. do
  225. {
  226. v = rand()%4+1;
  227. switch(v)
  228. {
  229. case 1:
  230. t = "clubs";
  231. break;
  232. case 2:
  233. t = "hearts";
  234. break;
  235. case 3:
  236. t = "diamonds";
  237. break;
  238. case 4:
  239. t = "spades";
  240. break;
  241. }
  242. v=rand()%13+2;
  243. w= yourDeck.testCards(t,v,y,enemyDeck);
  244. }
  245. while(w);
  246. yourDeck.cards[i].cardRemake(t,v,nol,y);
  247. cout<<nol<<".done"<<endl;
  248. nol++;
  249. }
  250. for(int i=0; i<107;i++)
  251. {
  252. if(i<54)
  253. {
  254. cout<<enemyDeck.cards[i].numerOnList<<". "<<enemyDeck.cards[i].name<<" "<<enemyDeck.cards[i].type<<" "<<enemyDeck.cards[i].value<<" "<<enemyDeck.cards[i].yours<<endl;
  255. }
  256. else
  257. {
  258. if(i==54)
  259. {
  260. cout<<endl<<endl;
  261. }
  262. cout<<yourDeck.cards[i-54].numerOnList<<". "<<yourDeck.cards[i-54].name<<" "<<yourDeck.cards[i-54].type<<" "<<yourDeck.cards[i-54].value<<" "<<yourDeck.cards[i-54].yours<<endl;
  263. }
  264. }
  265. return 0;
  266. }
  267.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement