Blackjack
public cpp v1 · immutable 1. #include <iostream> 2. #include <stdlib.h> 3. #include <time.h> 4. #include <string.h> 5. //system ("cls"); per sistemi windows 6. using namespace std; 7. 8. main () { 9. 10. cout <<"------------------------------------------------------------"<<endl; 11. cout <<" Blackjack "<<endl; 12. cout <<"------------------------------------------------------------"<<endl; 13. cout <<""<<endl; 14. cout <<""<<endl; 15. cout <<"-Men-------"<<endl; 16. cout <<""<<endl; 17. cout <<"Gioca (1)"<<endl; 18. cout <<"Guida al gioco (2)"<<endl; 19. cout <<"Valori carte (3)"<<endl; 20. cout <<"Esci (4)"<<endl; 21. cout <<""<<endl; 22. int scelta; 23. cout <<"Inserisci scelta: "; 24. cin >> scelta; 25. 26. switch (scelta) { 27. case (3): 28. system ("clear"); 29. cout <<"Valori carte -------------------------------------------"<<endl; 30. cout <<"A=11"<<endl; 31. cout <<"K/Q/J/10 = 10"<<endl; 32. cout <<"Il resto dei numeri conservano il loro valore."<<endl; 33. cout <<"--------------------------------------------------------"<<endl; 34. int scelta1; 35. cout <<"Torna al men (1) - Esci (2)"<<endl; 36. cin >> scelta1; 37. if (scelta1 == 1) { 38. system ("clear"); 39. return main (); 40. }else{ 41. return 0; 42. } 43. case (4): 44. return 0; 45. break; 46. case (2): 47. system ("clear"); 48. cout <<"Guida -----------------------------------------"<<endl; 49. cout <<"Una volta che i giocatori hanno fatto la loro puntata, il banchiere procedendo da sinistra verso destra assegna a ciascuno dei giocatori una carta scoperta in ogni postazione giocata, assegnando l'ultima al banco. Effettua poi un secondo giro di carte scoperte,senza per attribuirne una a se stesso. Avvenuta la distribuzione, il dealer legge in ordine il punteggio di ciascun giocatore invitandoli a manifestare il loro gioco: Essi potranno chiedere carta o stare, a loro discrezione. se un giocatore supera il 21 risulta perdente e il dealer incasser la puntata. Una volta che i giocatori hanno definito i loro punteggi il dealer sviluppa il suo gioco seguendo la regola del banco: egli deve tirare carta con un punteggio inferiore o uguale a 16. Una volta superato il 16 si deve fermare. Se oltrepassa il 21 il banco sballa e deve pagare tutte le puntate rimaste sul tavolo. Una volta definiti tutti i punteggi, il dealer confronta il proprio con quello degli altri giocatori, paga le combinazioni superiori alla sua, ritira quelle inferiori e lascia quelle in parit. Il pagamento delle puntate vincenti alla pari."<<endl; 50. cout <<"Nel gioco presente solo la variante giocatore vs mazziere."<<endl; 51. cout <<"-----------------------------------------------"<<endl; 52. int scelta2; 53. cout <<"Torna al men (1) - Esci (2)"<<endl; 54. cin >> scelta2; 55. if (scelta2 == 1) { 56. system ("clear"); 57. return main (); 58. }else{ 59. return 0; 60. } 61. 62. case (1): 63. system ("clear"); 64. cout <<"Carta ricevuta:"<<endl; 65. int carta_ric; 66. srand(time(NULL)); 67. carta_ric=rand()%13; 68. 69. switch (carta_ric) { 70. case (11): 71. cout <<"J"; 72. cout <<""<<endl; 73. break; 74. case (12): 75. cout <<"Q"; 76. cout <<""<<endl; 77. break; 78. case (1): 79. cout <<"K"; 80. cout <<""<<endl; 81. break; 82. case (0): 83. cout <<"A"; 84. cout <<""<<endl; 85. break; 86. 87. } 88. if (carta_ric == 2 || carta_ric == 3 || carta_ric == 4 || carta_ric == 5 || carta_ric == 6 || carta_ric == 7 || carta_ric == 8 || carta_ric == 9 || carta_ric == 10) { 89. cout<<carta_ric<<endl; 90. cout<<""<<endl; 91. } 92. 93. if (carta_ric == 1 || carta_ric == 12 || carta_ric == 11 || carta_ric == 10) { 94. carta_ric = 10; 95. 96. }else if (carta_ric == 0) { 97. carta_ric = 11; 98. 99. } 100. 101. int carta_ric2; 102. cout <<"Seconda carta:"<<endl; 103. srand(time(NULL)); 104. carta_ric2=rand()%14; 105. if (carta_ric2 >=1) { 106. carta_ric2=carta_ric2-1; 107. } 108. switch (carta_ric2) { 109. case (11): 110. cout <<"J"; 111. carta_ric2 = 10; 112. cout <<""<<endl; 113. break; 114. case (12): 115. cout <<"Q"; 116. carta_ric2 = 10; 117. cout <<""<<endl; 118. break; 119. case (1): 120. cout <<"K"; 121. carta_ric2 = 10; 122. cout <<""<<endl; 123. break; 124. case (0): 125. cout <<"A"; 126. carta_ric2 = 11; 127. cout<<""<<endl; 128. break; 129. case (10): 130. cout <<"10"; 131. carta_ric2 = 10; 132. cout <<""<<endl; 133. break; 134. 135. } 136. if (carta_ric2 == 2 || carta_ric2 == 3 || carta_ric2 == 4 || carta_ric2 == 5 || carta_ric2 == 6 || carta_ric2 == 7 || carta_ric2 == 8 || carta_ric2 == 9 ) { 137. cout <<carta_ric2<<endl; 138. cout <<""<<endl; 139. } 140. 141. 142. int punteggio_pr = carta_ric+carta_ric2; 143. cout <<""<<endl; 144. cout <<"Punteggio provvisorio: "<<punteggio_pr<<endl; 145. cout <<""<<endl; 146. if (punteggio_pr == 21) { 147. cout <<"Blackjack!"<<endl; 148. cout <<"Hai battuto il banco!"<<endl; 149. cout <<""<<endl; 150. return 0; 151. }else if (punteggio_pr > 21) { 152. cout <<"Hai perso!"<<endl; 153. return 0; 154. 155. }else{ 156. 157. string scelta_1; 158. cout <<"Scrivere (carta) per richiedere un'altra carta o scrivere (stop) per fermarsi: "<<endl; 159. cin >> scelta_1; 160. 161. if (scelta_1 == "carta") { 162. srand(time(NULL)); 163. int carta_ric3; 164. carta_ric3=rand()%13; 165. 166. switch (carta_ric3) { 167. case (11): 168. cout <<"J"; 169. carta_ric3 = 10; 170. cout <<""<<endl; 171. break; 172. case (12): 173. cout <<"Q"; 174. carta_ric3 = 10; 175. cout <<""<<endl; 176. break; 177. case (1): 178. cout <<"K"; 179. carta_ric3 = 10; 180. cout <<""<<endl; 181. break; 182. case (0): 183. cout <<"A"; 184. carta_ric3 = 11; 185. cout<<""<<endl; 186. break; 187. case (10): 188. cout <<"10"; 189. carta_ric3 = 10; 190. cout <<""<<endl; 191. break; 192. 193. } 194. 195. if (carta_ric3 == 2 || carta_ric3 == 3 || carta_ric3 == 4 || carta_ric3 == 5 || carta_ric3 == 6 || carta_ric3 == 7 || carta_ric3 == 8 || carta_ric3 == 9 ) { 196. cout <<carta_ric3<<endl; 197. cout <<""<<endl; 198. 199. } 200. int punteggio_finale = punteggio_pr+carta_ric3; 201. cout <<""<<endl; 202. cout <<"Punteggio finale: "<<punteggio_finale<<endl; 203. if (punteggio_finale > 21) { 204. cout <<""<<endl; 205. cout <<"Hai perso!"<<endl; 206. cout <<""<<endl; 207. return 0; 208. }else if (punteggio_finale == 21) { 209. cout <<""<<endl; 210. cout <<"Blackjack! Hai vinto!"<<endl; 211. cout <<""<<endl; 212. return 0; 213. }else{ 214. cout <<""<<endl; 215. cout <<"Ora tocca al banco..."<<endl; 216. int mazziere; 217. srand(time(NULL)); 218. mazziere=rand()%21; 219. while (mazziere <= 16) { 220. srand(time(NULL)); 221. mazziere=rand()%21; 222. } 223. cout <<mazziere<<endl; 224. cout <<""<<endl; 225. if (mazziere == 21) { 226. cout <<"Il banco vince! Ha fatto Blackjack."<<endl; 227. 228. } else if (punteggio_finale > mazziere) { 229. cout <<"Complimenti! Hai battuto il banco."<<endl; 230. }else if (punteggio_finale < mazziere) { 231. cout <<"Il banco ha realizzato un punteggio migliore del tuo. Hai perso."<<endl; 232. }else{ 233. cout <<"Hai realizzato lo stesso punteggio del banco."<<endl; 234. } 235. } 236. } else if (scelta_1 == "stop") { 237. cout <<""<<endl; 238. cout <<"Ora tocca al banco..."<<endl; 239. cout <<""<<endl; 240. int mazziere; 241. srand(time(NULL)); 242. mazziere=rand()%20; 243. 244. while (mazziere <= 16) { 245. srand(time(NULL)); 246. mazziere=rand()%21; 247. } 248. 249. cout <<mazziere<<endl; 250. cout <<""<<endl; 251. if (mazziere == 21) { 252. cout <<"Il banco vince! Ha fatto Blackjack."<<endl; 253. 254. } else if (punteggio_pr > mazziere) { 255. cout <<"Complimenti! Hai battuto il banco."<<endl; 256. }else if (punteggio_pr < mazziere) { 257. cout <<"Il banco ha realizzato un punteggio migliore del tuo. Hai perso."<<endl; 258. }else{ 259. cout <<"Hai realizzato lo stesso punteggio del banco."<<endl; 260. } 261. } 262. } 263. } 264. }