10点小游戏
用户和计算机都有三次抽牌机会,三次抽到的牌点数之和小于10且大于对方的点数即为胜利。每个回合都可以选择放弃,其中计算机抽牌的点数之和不会大于等于10点。
1. // 10点小游戏 2. #include <iostream> 3. #include <cstdio> 4. #include <cstdlib> 5. #include <ctime> 6. using namespace std; 7. int main(int argc, char *argv[]) 8. { 9. printf("******************************************\n"); 10. printf(" 10点小游戏 \n"); 11. printf(" 选择y表示继续要牌,n表示放弃 \n"); 12. printf("所抽的三次牌之和如果大于或等于10则直接为输\n"); 13. printf("******************************************\n"); 14. int a1,a2,a3,a4,c1,c2,c3,c4,flag; 15. a1=a2=a3=a4=c1=c2=c3=c4=flag=0; 16. char s; 17. srand(time(0)); 18. a1=rand()%9+1; 19. printf("您的第一张牌为:%d\n",a1); 20. c1=rand()%9+1; 21. printf("电脑已经抽出第一张牌。\n"); 22. printf("-----------------------------------------\n"); 23. printf("您是否继续要牌?请输入y/n。\n"); 24. fflush(stdin); 25. scanf("%c",&s); 26. if(s=='y'){ 27. a2=rand()%9+1; 28. printf("您的第二张牌为:%d\n",a2); 29. } 30. c2=rand()%9+1; 31. if((c1+c2)>=10) { 32. printf("电脑放弃抽牌!\n"); 33. c2=0;flag=1; 34. } 35. else printf("电脑的第二张牌为:%d\n",c2); 36. printf("-----------------------------------------\n"); 37. printf("您是否继续要牌?请输入y/n。\n"); 38. fflush(stdin); 39. scanf("%c",&s); 40. if(s=='y'){ 41. a3=rand()%9+1; 42. printf("您的第三张牌为:%d\n",a3); 43. } 44. c3=rand()%9+1; 45. if((flag==1)||(c1+c2+c3>=10)) { 46. printf("电脑放弃抽牌!\n"); 47. c3=0; 48. } 49. else printf("电脑的第三张牌为:%d\n",c3); 50. printf("-----------------------------------------\n"); 51. a4=a1+a2+a3; 52. c4=c1+c2+c3; 53. printf("您的三张牌为:%d + %d + %d = %d\n",a1,a2,a3,a4); 54. printf("电脑的第一张牌为:%d \n",a1); 55. printf("电脑的三张牌为:%d + %d + %d = %d\n",c1,c2,c3,c4); 56. 57. if(a4>=10) a4=-1; 58. if(a4>c4) printf("恭喜你,你赢了!\n"); 59. else printf("抱歉电脑赢了!\n"); 60. printf("-----------------------------------------\n"); 61. return 0; 62. }