Advertisement
eddiehy

porker

Dec 6th, 2015
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define CARD 52
  5. #define NUMBER 13
  6. #define SUIT 4
  7. #define PEOPLE 4
  8.  
  9. #define MAX_SIZE 52
  10.  
  11. // 堆疊結構的宣告
  12. int stack[MAX_SIZE];
  13. int top=-1;
  14.  
  15.  
  16. // 堆疊資料的存入
  17. int push(int value)
  18. {
  19. if( top == MAX_SIZE-1 )
  20. {
  21. return -1;
  22. }
  23. top++;
  24. stack[top] = value;
  25. return 1;
  26. }
  27.  
  28. //堆疊資料的取出
  29. int pop()
  30. {
  31. int temp;
  32.  
  33. if( top == -1 ) //判斷堆疊是否為空的
  34. {
  35. return -1;
  36. }
  37. temp = stack[top];
  38. stack[top] = 0;
  39. top--;
  40. return temp;
  41. }
  42.  
  43. void InsertionSort(int n, int *data)
  44. {
  45. int i, j, key;
  46. for( i=1; i<n; i++)
  47. {
  48. key=data[i];
  49. for(j=i-1; j>=0 && data[j]>key; j--)
  50. {
  51. data[j+1] = data[j];
  52. }
  53. data[j+1] = key; //將key插入
  54. }
  55. }
  56.  
  57. void reshuffle()
  58. //把牌用亂數選號放到新陣列
  59. //大樂透法
  60. {
  61. int pos;
  62. int num=CARD;
  63. int i;
  64. int card[CARD]={0};
  65. srand(time(NULL));
  66. for (i=0;i<MAX_SIZE;i++)
  67. {
  68. pos = rand()%num;
  69. push(pos);
  70. card[pos]=card[num-1];
  71. num--;
  72. }
  73. /*i=0;
  74. while(i!=CARD)
  75. {
  76. pos = rand()%CARD;
  77. if(card[pos]==0)
  78. {
  79. push(pos);
  80. card[pos]=1;
  81. i++;
  82. }
  83. }
  84. */
  85. }
  86.  
  87. void displayCard(int n, int *card)
  88. {
  89. int i;
  90.  
  91. printf("Player%d:\n", n+1);
  92. for(i=0; i<CARD/PEOPLE; i++)
  93. {
  94. printf("[%c%2d] ", card[i]/NUMBER+3, card[i]%NUMBER+1);
  95. }
  96. printf("\n");
  97. }
  98.  
  99. // 主程式
  100. int main()
  101. {
  102. // 宣告
  103. int i, j;
  104. int player[PEOPLE][CARD/PEOPLE];
  105.  
  106. // 洗牌
  107. reshuffle();
  108.  
  109. // 發牌
  110. for(i=0; i<CARD/PEOPLE; i++)
  111. {
  112. for(j=0; j<PEOPLE; j++)
  113. {
  114. player[j][i] = pop();
  115. }
  116. }
  117.  
  118. // 看牌
  119. for(i=0; i<PEOPLE; i++)
  120. displayCard(i, player[i]);
  121. printf("\n");
  122.  
  123. // 排序
  124. for(i=0; i<PEOPLE; i++)
  125. {
  126. InsertionSort(CARD/PEOPLE, player[i]);
  127. displayCard(i, player[i]);
  128. }
  129. system("pause");
  130. return 0;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement