fork(1) download
  1. //ver 1.4
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. #define K 10 // giá trị lá K
  7. #define J 10 // giá trị lá J
  8. #define Q 10 // giá trị lá Q
  9.  
  10. // hàm này sẽ lần lược rút 3 lá cho 2 bên
  11. //Tham số vào là số nút hiện tại của 2 bên và 2 mảng
  12. // hàm trả về số nút của hai bên sau khi phát xong.
  13. void phatBai(int nut1[], int nut2[], int laBai[], int trangThai[]);
  14.  
  15. //hàm này sẽ rút 1 lá bài và đánh dấu trạng thái lá bài ấy
  16. //Input: các lá bài và trạng thái của chúng
  17. //trả về lá rút ngẩu nhiên.
  18. int rutBai(int laBai[], int trangThai[]);
  19.  
  20. //hàm thông báo: sẽ thông báo lá bài rút được
  21. //Input: lá bài đã rút được
  22. //Output: một câu thông báo bình thường
  23. void thongBao(int laBaiRutDuoc);
  24.  
  25. int tinhNut(int soNut[]);
  26.  
  27. int main(void)
  28. {
  29. int laBai[13]={1,2,3,4,5,6,7,8,9,10,K,J,Q};
  30. int trangThai[13]={0}; // start with 0,0,0,0,0,...
  31.  
  32. srand(time(NULL)); //set time random
  33.  
  34. int nut_1 = 0; // số nút ng chơi 1
  35. int nut_2 = 0; // số nút ng chơi 2
  36.  
  37. phatBai(&nut_1,&nut_2,laBai,trangThai);
  38. printf("\nRESULT:");
  39.  
  40. printf("\nComputer scores : %d",nut_1);
  41. printf("\nPlayer scores : %d\n",nut_2);
  42. if(nut_1>nut_2) printf("\n\4 You Lose \4\n");
  43. else
  44. if(nut_1<nut_2) printf("\n\4 You Win \4\n");
  45. else printf("\n\4 Bang nhau \4\n");
  46.  
  47. printf("\n");
  48. printf("Thoi gian choi: %f",(double)clock()/CLOCKS_PER_SEC);
  49. printf("\n");
  50. return 0;
  51.  
  52. }
  53. //******************************************************************************//
  54. void phatBai(int *nut_1, int *nut_2, int laBai[], int trangThai[])
  55. {
  56. int la=0; // la bai se phát
  57. for(int i=0; i<=2; i++)
  58. {
  59. //vào game.....
  60. printf("\nDraw %d\n",i);
  61. //rút cho máy
  62. la=rutBai(laBai,trangThai); //rút bài
  63. *nut_1+=laBai[la]; // cập nhật số nút
  64. printf("Computer card: "); //thông báo
  65. thongBao(la);
  66. printf("\n");
  67.  
  68. //rút cho người chơi
  69. la=rutBai(laBai,trangThai); //rút bài
  70. *nut_2+=laBai[la]; // cập nhật số nút
  71. printf("Player card: "); //thông báo
  72. thongBao(la);
  73. printf("\n");
  74. }
  75. }
  76. //********************************************************************//
  77. int rutBai(int laBai[], int trangThai[])
  78. {
  79. int la=0;
  80. do
  81. {
  82. la =rand()%(13-1+1);// vì lá chỉ là chỉ số thôi. stt mới +1 vào
  83. } while (trangThai[la]==1); // trạng thái lá bài thứ "la" đã phát rồi
  84.  
  85. trangThai[la]=1;
  86.  
  87. return la;
  88. }
  89. //********************************************************************//
  90. void thongBao(int laBaiRutDuoc)
  91. {
  92. switch(laBaiRutDuoc)
  93. {
  94. case 10: printf("J"); // thông báo lá J
  95. break;
  96. case 11: printf("Q"); // thông báo lá Q
  97. break;
  98. case 12: printf("K"); // thông báo lá K
  99. break;
  100. default: printf("%d",laBaiRutDuoc+1); // các lá từ 1->10
  101. };
  102. }
  103.  
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
Draw 0
Computer card: 1
Player card: 5

Draw 1
Computer card: K
Player card: Q

Draw 2
Computer card: 10
Player card: 7

RESULT:
Computer scores : 21
Player scores : 22

 You Win 

Thoi gian choi: 0.005810