规则:
1.一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一个人为用户,另一个人为计算机;
2.每轮每人各发5张牌,各自以这5张牌建立二叉排序树;
3.由用户先出,轮流出牌,每次只能出一张并且要比别人出的大,如:用户出3,计算机则要出比3大的牌,没有则选择不出;
4.最先出完的人获胜。
数据结构C++设计的纸牌游戏
答案:3 悬赏:80 手机版
解决时间 2021-03-02 18:02
- 提问者网友:我是女神我骄傲
- 2021-03-02 12:47
最佳答案
- 五星知识达人网友:平生事
- 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();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯