劣质代码评析——《写给大家看的C语言书(第2版)》》附录B之21点程序(七)

0. #include <stdio.h>1. #include <time.h>2. #include <ctype.h>3. #include <stdlib.h>4. 5. #define BELL ‘\a’6. #define DEALER 07. #define PLAYER 18. 9. #define ACELOW 010. #define ACEHIGH 111. 12. int askedForName = 0;13. 14. void dispTitle(void);15. void initCardsScreen(int cards[52],int playerPoints[2],16. int dealerPoints[2], int total[2], 17. int *numCards);18. int dealCard(int * numCards,int cards[52]);19. void dispCard(int cardDrawn,int points[2]);20. void totalIt(int points[2],int tatal[2],int who);21. void dealerGetsCard(int *numCards,int cards[52],22. int dealerPoints[2]);23. void playerGetsCard(int *numCards,int cards[52],24. int playerPoints[2]);25. char getAns(char mesg[]);26. void findWinner(int total[2]);27. 28. main()29. {30. int numCards;31. int cards[52],playerPoints[2],dealerPoints[2],total[2];32. char ans;33. 34. do 35. { 36.initCardsScreen(cards,playerPoints,dealerPoints,total, &numCards);37.dealerGetsCard(&numCards,cards, dealerPoints););39.playerGetsCard(&numCards,cards,playerPoints); 40.playerGetsCard(&numCards,cards,playerPoints);41.do42.{); )45.{ 46.playerGetsCard(&numCards,cards,playerPoints);47.} 48.} );50. 51.totalIt(playerPoints,total,PLAYER);52.do53.{54.dealerGetsCard(&numCards,cards,dealerPoints);55.}56.while (dealerPoints[ACEHIGH] < 17 );57. 58.totalIt(dealerPoints,total,DEALER);59.findWinner(total); 60. ); 62. });64. 65. return ;66. 67. }68. 69. void initCardsScreen( int cards[52],int playerPoints[2],70.int dealerPoints[2], int total[2], 71.int *numCards )72. {73. int sub,val = 1 ;74. char firstName[15];75. *numCards=52;76. 77. for(sub=0;sub<=51;sub++)78. {79.val = (val == 14) ? 1 : val;80.cards[sub] = val;81.val++; 82. }83. 84. for(sub=0;sub<=1;sub++)85. { 86.playerPoints[sub]=dealerPoints[sub]=total[sub]=0;87. }88. dispTitle();89. 90. if (askedForName==0)91. { );,firstName);94.askedForName=1;,firstName);96.getchar();97. }98. return;99. }100. 101. void playerGetsCard(int *numCards,int cards[52],int playerPoints[2])102. {103. int newCard;104. newCard = dealCard(numCards, cards););106. dispCard(newCard,playerPoints);107. }108. 109. 110. void dealerGetsCard(int *numCards,int cards[52],int dealerPoints[2])111. {112. int newCard;113. newCard = dealCard(numCards,cards););115. dispCard(newCard,dealerPoints);116. }117. 118. int dealCard(int * numCards,int cards[52])119. {120. int cardDrawn,subDraw;121. time_t t;122. srand(time(&t));123. subDraw = (rand()%(*numCards));124. cardDrawn = cards[subDraw];125. cards[subDraw] = cards[*numCards -1];126. (*numCards)-;127. return cardDrawn;128. }129. 130. void dispCard(int cardDrawn, int points[2])131. {132. switch(cardDrawn)133. {,);135.points[ACELOW] += 10;136.points[ACEHIGH] += 10;137.break;,);139.points[ACELOW] += 10;140.points[ACEHIGH] += 10;141.break;,);143.points[ACELOW] += 10;144.points[ACEHIGH] += 10;145.break;146.default : points[ACELOW] += cardDrawn;147.if(cardDrawn==1)148.{ ,);150.points[ACEHIGH]+= 11;151.}152.else153.{ 154.points[ACEHIGH]+=cardDrawn;,cardDrawn); 156.}157. }158. return ;159. }160. 161. void totalIt(int points[2],int total[2],int who)162. {163. if ( (points[ACELOW] == points[ACEHIGH])164.||(points[ACEHIGH] > 21 ))165. { 166.total[who] = points[ACELOW];167. }168. else169. { 170.total[who] = points[ACEHIGH];171. }172. 173. if (who == PLAYER )174. {, total[PLAYER]);176. }177. else178. {, 180.total[DEALER]);181. }182. return;183. }184. 185. void findWinner(int total[2])186. {187. if ( total[DEALER] == 21 )188. {);190.return ;191. }192. if ( (total[DEALER] > 21) && (total[PLAYER] > 21) )193. { , );195.return ; 196. }197. if ((total[DEALER] >= total[PLAYER])&& (total[DEALER] < 21))198. { );200.return ; 201. }202. if ((total[PLAYER] > 21)&& (total[DEALER] < 21))203. { );205.return ; 206. },,BELL);208. return;209. }210. 211. char getAns(char mesg[])212. {213. char ans;, mesg);215. ans = getchar();216. getchar();217. return toupper(ans);218. }219. 220. void dispTitle(void)221. {222. int i = 0 ;223. while(i<25)224. { );226.i++; 227. });229. return ;230. },香港服务器,虚拟主机,美国服务器黄色蓝色或者砖红色,犹如童话世界。

劣质代码评析——《写给大家看的C语言书(第2版)》》附录B之21点程序(七)

相关文章:

你感兴趣的文章:

标签云: