永发信息网

数据结构C++设计的纸牌游戏

答案:3  悬赏:80  手机版
解决时间 2021-03-02 18:02
  • 提问者网友:我是女神我骄傲
  • 2021-03-02 12:47
规则:
1.一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一个人为用户,另一个人为计算机;
2.每轮每人各发5张牌,各自以这5张牌建立二叉排序树;
3.由用户先出,轮流出牌,每次只能出一张并且要比别人出的大,如:用户出3,计算机则要出比3大的牌,没有则选择不出;
4.最先出完的人获胜。
最佳答案
  • 五星知识达人网友:平生事
  • 2021-03-02 12:53
强烈建议看一下《算法导论》,这个是不可不看的如果是竞赛的话还要看刘汝佳大神写的《算法艺术与信息学竞赛》另外其实编程这东西很综合,图论你要看,还有概率,矩阵,数论等等,看个人需求和学的程度。当然,如果是竞赛的话,这些都是必须的。如果帮助到您,希望您能采纳。祝好!
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-03-02 15:26
能不建立2叉树吗?
  • 2楼网友:纵马山川剑自提
  • 2021-03-02 13:46
#include "stdafx.h" #include void fenxi(); void shuchu(); void main(){ int m; printf("\n\n\n"); printf("\t\t\t******纸牌游戏******\n"); printf("游戏规则如下:\n\n\n"); printf("\t编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,\n"); printf(" 直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后\n"); printf(" 一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;\n"); printf(" 再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向\n"); printf(" 上的牌有哪些?"); while(1){ printf("\n\t*1.游戏分析:\n\t*2.输出结果:\n\t*3.退出:\n"); printf("\t请输入你的选择:"); scanf("%d",&m); switch(m){ case 1: fenxi(); break; case 2: shuchu(); break; default: return; } } return; } void fenxi(){ int i,j; printf("游戏分析:\n\n"); printf("\t如下列数组,游戏开始时,所有牌面朝上,每张牌翻一下,则该张牌出现一次,若"); printf("出现偶数次的牌为正反抵消,依然为朝上的,所以朝上的为1和以下偶数次出现的数。\n"); for(i=1;i<=52;i++){ for(j=2;j<=52;j++) if(i%j==0){ printf("%d ",i); } printf("\n"); } return; } void shuchu(){ int a[52]={0}; int i,j; printf("\n\n第五十二次翻牌过后正面向上的有:\n\n"); for(i=0;i<=51;i++) { a[i]=-1; } for(i=1;i<=52;i++) { for(j=2;j<=52;j++){ if(i%j==0){ a[i-1]=a[i-1]*-1; } } } for(i=1;i<=52;i++){ if(a[i-1]*-1==1) printf("%d ",i); } getchar(); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯