Guest User

Untitled

a guest
May 27th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.40 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <time.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <windows.h>
  7. #define K 13
  8. #define Q 13
  9. #define J 11
  10. #define T 10
  11.  
  12. //--Tietotyyppien määrittettely
  13.  
  14. typedef char Maa[7];
  15. typedef char Arvo[3];
  16.  
  17. typedef struct {
  18. Maa maa;
  19. Arvo arvo;
  20. }Tkortti;
  21.  
  22. //Määritellään kortin arvoille taulukot
  23. Arvo arvot[13]={"A", "2", "3", "4", "5", "6", "7","8","9","T","J","Q","K"};
  24. Maa maat[4]={"Hertta","Risti","Ruutu","Pata"};
  25.  
  26. //******* FUNKTIOT ********
  27. void tayta_pakka(Tkortti *);
  28. void tulosta_pakka(Tkortti *);
  29. void sekoita_pakka(Tkortti *);
  30. Tkortti jaa_kortti(Tkortti *pakka, Tkortti *pelaaja, Tkortti *jakaja);
  31. void pelaajan_jako(Tkortti *pelaaja, Tkortti *jakaja, int *pelaajan_total, int i);
  32. int lisaa(void);
  33. void clrscr();
  34. //*******************PÄÄOHJELMA**********************//
  35.  
  36. int main (void)
  37. {
  38. printf("| | _ _ _ _ _ |/_ | _ _ _ _ |\n");
  39. printf("| _|(_)| | | |(_| |\(_||_||(_|| | }_ | | |\n\n\n");
  40.  
  41. printf("%c, %c, %c, %c", 979,980, 981, 982);
  42.  
  43. srand(time(NULL));
  44. Tkortti pakka[52]; //Korttipakalle varataan taulukko, joka myöhemmin täytetään ja sekoitetaan jne
  45. Tkortti pelaaja[26]; //Pelaajalle jaetuille korteille varataan taulukko jotka tulostetaan aina pöydälle
  46. Tkortti jakaja[26];
  47.  
  48. Tkortti pelaajan_poyta[26];
  49. Tkortti jakanan_poyta[26];
  50. int pelaajan_summa=0;
  51. int jakajan_summa;
  52. int assa, mones=0;
  53.  
  54. tayta_pakka(pakka);
  55. sekoita_pakka(pakka);
  56. tulosta_pakka(pakka);
  57. jaa_kortti(pakka); //Jakaa pakan kahtia ja täyttää pelaajalle ja jakajalle varatut taulukot korteilla
  58. /*
  59. int i;
  60. for(i=0; i<10; i++)
  61. {
  62. printf("%s \n", pelaaja[i]);
  63. printf("%s \n", pelaaja[i]);
  64. }
  65. */
  66.  
  67. pelaajan_jako(pelaaja,jakaja, &pelaajan_summa, mones);
  68.  
  69.  
  70. while(lisaa())
  71. {
  72. clrscr();
  73. printf("\n Halusit lisää \n");
  74. mones++;
  75. pelaajan_jako(pelaaja,jakaja, &pelaajan_summa, mones);
  76. printf("\n\nSumma main ohjelmassa: %d ", pelaajan_summa);
  77. }
  78.  
  79. /*valinta=getchar();
  80. if (valinta == 'k' || valinta == 'K')
  81. printf("Halusit siis uuden kortin");
  82. else if (valinta == 'e' || valinta == 'E')
  83. printf("Et halua lisää");
  84. printf("Pelaajan eka kortti\n");
  85. printf("\n\nSumma main ohjelmassa: %d ", pelaajan_summa);
  86. printf(pelaaja[0].maa);
  87. printf(pelaaja[0].arvo);
  88. */
  89. system("PAUSE");
  90. }
  91. //***********************************************
  92. //LISÄÄ
  93. int lisaa()
  94. {
  95.  
  96. char valinta;
  97. printf("Valitse joko k = lisää tai e = ei enempää\n");
  98. valinta=getche();
  99. while
  100. (valinta == 'k')
  101. return 1;
  102. if(valinta == 'e'){
  103. printf("\nEt halunnut lisää.\n");
  104. return 0;}
  105. else if (valinta != 'k' || valinta != 'e')
  106. {
  107. printf("VALITSTIT VÄÄRIN! Valitse joko k (lisää) tai e (ei lisää)");
  108. lisaa();
  109. }
  110. }
  111.  
  112.  
  113. //***************************************************//
  114. //PELAAJAN JAKO
  115. void pelaajan_jako(Tkortti *pelaaja, Tkortti *jakaja, int *pelaajan_total, int i)
  116. {
  117.  
  118. int luku=0, osoite_summaan;
  119. char merkki, valinta;
  120.  
  121. osoite_summaan=*pelaajan_total;
  122. merkki=pelaaja->arvo[i];
  123.  
  124. printf("Jakajan ensimmäinen kortti on %s %s\n",jakaja[0].arvo, jakaja[0].maa);
  125. printf("Sinun korttisi on %s %s\n",pelaaja[i].arvo, pelaaja[i].maa);
  126. printf("\ni arvo on %d \n", i);
  127.  
  128. if(merkki == 'K')
  129. luku=10;
  130. else if(merkki == 'Q')
  131. luku=10;
  132. else if(merkki == 'J')
  133. luku=10;
  134. else if(merkki == 'T')
  135. luku=10;
  136. else if(merkki >= 50 && merkki <= 57)
  137. luku=merkki-48;
  138. else if(merkki == 'A')
  139. {luku=1;}
  140.  
  141.  
  142. *pelaajan_total=osoite_summaan+luku;
  143. printf("\n\nSummasi on funktiossa : %d \n", *pelaajan_total);
  144. }
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151. //JAA KORTIT
  152. //Täyttää jaetut taulukon pelaajan korteilla
  153. Tkortti jaa_kortti(Tkortti *pakka, Tkortti *pelaaja, Tkortti *jakaja){
  154. int i;
  155. Tkortti aux;
  156.  
  157. for(i=0; i<25; i++)
  158. {
  159. *pelaaja[i]=pakka[i];
  160. }
  161. for(i=26; i<51; i++)
  162. {
  163. *jakaja=pakka[i];
  164. }
  165. // Tulostut pelaajan korttejan (Tarkistusta varten)
  166. /* for (i=0;i<=25;i++){
  167. printf("Pelaaja %d", i); //Kortin järjestysluku
  168. printf(" "); //
  169. printf(pakka[i].maa); //Tulostaa kortin maa
  170. printf(" ");
  171. printf(pakka[i].arvo); //Tulostaa kortin arvon
  172. printf("\n");
  173. }
  174. */
  175. }
  176. //TÄYTÄ PAKKA
  177. //Täyttää pakan korteilla järjestykseen maittain
  178. void tayta_pakka(Tkortti *pakka){
  179. int i;
  180. for (i=0;i<=51;i++)
  181. {
  182. strcpy (pakka[i].arvo,arvot[i%13]);
  183. strcpy (pakka[i].maa,maat[i/13]);
  184. }
  185. }
  186. //SEKOITA PAKKA
  187. //Sekoittaa pakan
  188. void sekoita_pakka(Tkortti *pakka){
  189. int i,x; //Kaksi muuttujaa
  190. Tkortti apukortti; //Apukortti
  191.  
  192. for (i=0;i<=51;i++)
  193. {
  194. x=rand()%52; //Arvotaan kortti
  195. apukortti=pakka[i]; //kopioidaan apukorttiin alkuperäisestä pakasta arvottu kortti
  196. pakka[i]=pakka[x]; //alkuperäiseen pakkaan laitetaan 0-51 järjestyksessä satunnainen kortti
  197. pakka[x]=apukortti; //arvotunkortin tilalle kortti joka oli tallessa
  198. }
  199. }
  200. //TULOSTA PAKKA
  201. //Tulostaa pakan siinä järjestyksessä kuin se on
  202. void tulosta_pakka(Tkortti *pakka){
  203. int i;
  204. for (i=0;i<=51;i++){
  205. printf(" %d", i); //Kortin järjestysluku
  206. printf(" "); //
  207. printf(pakka[i].maa); //Tulostaa kortin maa
  208. printf(" ");
  209. printf(pakka[i].arvo); //Tulostaa kortin arvon
  210. printf("\n");
  211. }
  212. }
  213.  
  214. //RUUDUN TYHJENNYS
  215. void clrscr()
  216. {
  217. COORD coordScreen = { 0, 0 };
  218. DWORD cCharsWritten;
  219. CONSOLE_SCREEN_BUFFER_INFO csbi;
  220. DWORD dwConSize;
  221. HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  222. GetConsoleScreenBufferInfo(hConsole, &csbi);
  223. dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  224. FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten);
  225. GetConsoleScreenBufferInfo(hConsole, &csbi);
  226. FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
  227. SetConsoleCursorPosition(hConsole, coordScreen);
  228. }
Add Comment
Please, Sign In to add comment