机房小游戏
转自:https://blog.csdn.net/qq_44635637/article/details/87383307
众所周知,在机房里是不能玩游戏的,但某些人仍然胆大包天,想在老师们的火眼金睛下偷偷地“爽”一把,这里我就用我以往的经验给大家推荐一些小游戏。
网页小游戏
这些是作者收录的一些有趣的网页小游戏,可以用来打发无聊的信息学生活。
slay.one
这款游戏,许多OIer都非常地熟悉,是一款2D的枪战小游戏,正版在steam上面有,可是贵的出奇,对于我们这种穷人,只能在网页上玩玩盗版了。
网址
名字大作战
这款游戏,真的好像不算游戏,我也不再介绍了。
网址
一些乱七八糟的小游戏
丛林大作战
网址
这是一款类似于球球大作战的小游戏,比较有趣,但有些卡,不是特别推荐,但也可以试一试。
C++小游戏
这是作者收录的一些C++编的小游戏,值得一玩。
猜数字:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
cout << "我这里有一个数,现在请你猜猜它"<<endl;
srand(time(NULL));
int x = rand() % 50;
for (int i =1;i <= 7;i++){
int y;
cin >> y;
if (y<x) {
cout << "不好意思,你猜小了" << endl;
}else if (y>x) {
cout << "对不起,你猜大了" <<endl;
}else {
cout << "恭喜恭喜,猜对了!!!" << endl;
return 0;
}
}
cout << "你的次数用完了,你失败了"<<endl<<"那个数是"<<x;
return 0;
}
冒险小游戏:
#include<stdlib.h> #include<stdio.h> #include<time.h> //suiji #include<string.h> #include<windows.h> //SLEEP函数 struct Player //玩家结构体,并初始化player { char name[21]; int attack; int defense; int health; long int max_health; int level; int exp; int range_exp; long int max_exp; } player= {"勇者",50,40,100,100,1,0,0,100}; struct Enemy //怪的结构体,并初始化各种怪 { char name[20]; char wupin[12]; int attack; int defense; int health; int money; long int exp; int wupin_sign; int wupinpro; int double_attack; int miss; } strongman= {"森林巨人","黄金圣衣",40,50,350,200,100,1,2,1,0}, witch= {"森林女巫","银甲",25,15,100,50,50,2,2,1,1}, xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,3,2,2}, big_strongman= {"森林巨人王","巨人之臂",40*5,50*5,350*5,200*5,100*5,4,4,2,0}, lion= {"草原雄狮","绝世好剑",60,30,280,200,100,5,2,1,0}, horse= {"草原野马","碧血剑",28,12,90,50,50,6,2,1,1}, bee= {"草原黄蜂","长剑",17,11,60,30,35,7,3,2,2}, shitu= {"使徒","\0",60*8,30*8,280*8,200*8,100*8,9,1,1,0}, guai= {"\0","\0",0,0,0,0,0,0,0,0,0}; struct Place { int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3; } place= {1,2,3,4,5,6,7,8}; int max_exp=0; int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=9; int cao=3,jijiubao=2,baiyao=2,superbaiyao=1,boom=3,dubiao=2,atom_boom=1; int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0; int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0; char gongname[20]="无",fangname[20]="无"; char proof; void AddWupin(int); int AttackResult(); void BattleAct(); void ChooseWupin(); void DisplayState(); void OrdinaryAct(); int SuiJi(); int SuiJi100(); void WhetherLevelUp(); void SlowDisplay(char *); int main() { int i=0,j=0,k=0; char player_name[21]; SlowDisplay("这是一个勇者的世界! 雅莉萨斯国的XXX公主被陌生人绑架了!\n\n 伟大的勇者啊~拿起你们的武器,营救XXX公主!\n\n\n输入你的名字: (20个字符)\n\n\n"); // sndPlaySound("res\\F005.wav",SND_LOOP); scanf("%s",player_name); strncpy(player.name,player_name,20); if(strcmp(player.name,"PQH")==0) { SlowDisplay("封印多年的 PQH 啊!你终于可以重见天日了!\n\n\n PQH 重新启动... 随即... 暴走!!!\n\n\n"); player.attack=999; player.defense=999; player.health=9999; player.max_health=9999; } getchar(); OrdinaryAct(); return 0; } int SuiJi() { srand((unsigned)time(NULL)); return rand()%10; } int SuiJi100() { srand((unsigned)time(NULL)); return rand()%100; } void ChooseWupin() //选择物品 并使用 { printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom); switch(scanf("%d",&choose_number),choose_number) { case 1: if(cao>0) { SlowDisplay("使用止血草,HP增加60\n\n\n"); cao--; if(player.health+60>player.max_health)player.health=player.max_health; else player.health+=60; } else SlowDisplay("没有止血草了\n\n\n"); break; case 2: if(jijiubao>0) { SlowDisplay("使用急救包,HP增加80\n\n\n"); jijiubao--; if(player.health+80>player.max_health)player.health=player.max_health; else player.health+=80; } else SlowDisplay("没有急救包了\n\n\n"); break; case 3: if(baiyao>0) { SlowDisplay("使用云南白药,HP增加120\n\n\n"); baiyao--; if(player.health+120>player.max_health)player.health=player.max_health; else player.health+=120; } else SlowDisplay("没有云南白药了\n\n\n"); break; case 4: if(superbaiyao>0) { SlowDisplay("使用超级云南白药,HP增加200\n\n\n"); superbaiyao--; if(player.health+200>player.max_health)player.health=player.max_health; else player.health+=200; } else SlowDisplay("没有超级云南白药了\n\n\n"); break; case 5: if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品 { if(boom>0) { SlowDisplay("使用手雷,敌人HP减少100\n\n\n"); boom--; guai.health-=100; AttackResult(); } } else SlowDisplay("非战斗状态,不能使用手雷!\n\n\n"); break; case 6: if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品 { if(dubiao>0) { SlowDisplay("使用毒标,敌人HP减少200\n\n\n"); dubiao--; guai.health-=200; AttackResult(); } } else SlowDisplay("非战斗状态,不能使用毒标!\n\n\n"); break; case 7: if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品 { if(atom_boom>0) { SlowDisplay("使用手抛式原子弹,敌人HP减少500\n\n\n"); atom_boom--; guai.health-=500; AttackResult(); } } else SlowDisplay("非战斗状态,不能使用手抛式原子弹!\n\n\n"); break; case 0: break; default: printf("ChooseWupin error!\n\n\n"); } } int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级 { if(guai.health<=0) { battle=0; printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp); player.exp+=guai.exp; player.range_exp+=guai.exp; money+=guai.money; s=SuiJi(); if(s<guai.wupinpro) { SlowDisplay("从敌人尸骸中发现"); printf("%s\n\n\n",guai.wupin); AddWupin(guai.wupin_sign); } WhetherLevelUp(); if(strcmp(guai.name,"使徒")==0) { puts("战斗胜利,救出公主!!!"); getchar(); getchar(); exit(0); } return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为 } else { int s=SuiJi(); if((guai.attack+s-player.defense/3)<0) { player.health-=1; printf("%s反击,你的HP减少了 1\n\n",guai.name); } else { player.health-=guai.attack+s-player.defense/3; printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3); } if(player.health<0) { battle=0; printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500); money-=player.level*500; player.health=player.max_health/5; OrdinaryAct();////////// return 1; } } return 0; } void AddWupin(int wupin_sign) { switch(wupin_sign) { case 1: fang4n++; break; case 2: fang3n++; break; case 3: fang2n++; break; case 4: strongman_arm=1; break; case 5: gong4n++; break; case 6: gong3n++; break; case 7: gong2n++; break; default: printf("AddWupin error\n\n\n"); } } void WhetherLevelUp() { int i=0,j=0; int l1=player.range_exp/100; int l2=player.range_exp/300; int l3=player.range_exp/600; if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级 { if(l1==1) { printf("%s",player.name); SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n"); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3; player.defense+=2; player.max_health+=20; player.health=player.max_health; player.level++; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=100; } else { printf("好厉害!连升%d级!",l1); printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3*l1; player.defense+=2*l1; player.max_health+=20*l1; player.health=player.max_health; player.level+=l1; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=100*l1; } } else if(player.level<=40&&l2>0) { if(l2==1) { printf("%s",player.name); SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n"); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3; player.defense+=2; player.max_health+=20; player.health=player.max_health; player.level++; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=300; } else { printf("好厉害!连升%d级!",l1); printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3*l2; player.defense+=2*l2; player.max_health+=20*l2; player.health=player.max_health; player.level+=l2; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=300*l2; } } else if(l3>0) { if(l3==1) { printf("%s",player.name); SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n"); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3; player.defense+=2; player.max_health+=20; player.health=player.max_health; player.level++; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=600; } else { printf("好厉害!连升%d级!",l1); printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3*l3; player.defense+=2*l3; player.max_health+=20*l3; player.health=player.max_health; player.level+=l3; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=600*l3; } } } void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏) { while(1) { // \(1000); // system("cls"); puts("============================================================================="); printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 0,退出游戏\n\n\n"); puts("============================================================================="); switch(scanf("%d",&choose_number),choose_number) { case 1: //显示移动菜单 SlowDisplay("要去哪里?\n\n\n"); printf("1,酒吧 2,旅馆 3,森林一层 4,森林二层 5,森林三层 6,草原一层 7,草原二层 8,草原三层\n\n\n"); switch(scanf("%d",&choose_number),choose_number) { case 1: place_sign=place.bar; //记录目前位置-酒吧 // OrdinaryAct(); break; case 2: place_sign=place.hotel; //进入旅店 SlowDisplay("要住店吗? 200个金币 1,是 0,否\n\n\n"); choose_number=1; switch(scanf("%d",&choose_number),choose_number) { case 1: if(money-200<0) //判断钱是否够 { SlowDisplay("Sorry,你的钱不够~\n\n\n"); } else { SlowDisplay("好好休息\n\tHP满\n\t\t第二天了\n\n"); money-=200; //花费200住店费 player.health=player.max_health; //体力满 } break; case 0: SlowDisplay("下次再来!\n\n\n"); break; default: printf("hotel talk error!\n\n\n"); } place_sign=0; break; case 3: place_sign=place.forest1; s=SuiJi(); if(s<7) { battle=1; guai=xiyi; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=witch; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { SlowDisplay("这里安全\n\n\n"); //不用调用OAct函数,会自动执行OAct函数; } break; case 4: place_sign=place.forest2; s=SuiJi(); if(s<7) { battle=1; guai=witch; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=strongman; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { SlowDisplay("这里安全\n\n\n"); } break; case 5: place_sign=place.forest3; s=SuiJi(); if(s<7) { battle=1; guai=strongman; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=big_strongman; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { SlowDisplay("这里安全\n\n\n"); } break; case 6: place_sign=place.grass1; s=SuiJi(); if(s<7) { battle=1; guai=bee; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=horse; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { SlowDisplay("这里安全\n\n\n"); } break; case 7: place_sign=place.grass2; s=SuiJi(); if(s<7) { battle=1; guai=horse; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=lion; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { SlowDisplay("这里安全\n\n\n"); } break; case 8: place_sign=place.grass3; s=SuiJi(); if(s<7) { battle=1; guai=lion; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; if(strongman_arm) { SlowDisplay("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨人之臂我要了,公主你也别想带走!\n\n\n"); guai=shitu; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else SlowDisplay("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨人之臂,我可以告诉你公主的下落哦~\n\n\n"); } else { SlowDisplay("这里安全\n\n\n"); } break; default: printf("choose map error!\n\n\n"); } break; case 2: ChooseWupin(); break; //显示道具,并可以使用. case 3: //对话选项 if(place_sign==place.bar) { SlowDisplay("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板\n\n\n"); //显示对话人物 switch(scanf("%d",&choose_number),choose_number) { case 1: SlowDisplay("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n"); break; case 2: if(fang1n<1&&gong1n<1) { SlowDisplay("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的丛林和草原很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n"); printf("%s心想:(哇,这位大叔人真好啊!\n\n\n)",player.name); gong1n++; fang1n++; } else SlowDisplay("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面丛林和草原所吓倒!\n\n\n"); break; case 3: printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,XO酒80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n"); choose_number=1; while(choose_number) { switch(scanf("%d",&choose_number),choose_number) { case 1: if(money<25) { SlowDisplay("钱不够!"); } else { if(player.health+20<=player.max_health) { SlowDisplay("HP+20."); money-=25; player.health+=20; } else { SlowDisplay("HP满了"); player.health=player.max_health; } } break; case 2: if(money<80) { SlowDisplay("钱不够!"); } else { if(player.health+50<=player.max_health) { SlowDisplay("HP+50."); money-=80; player.health+=50; } else { SlowDisplay("HP满了"); player.health=player.max_health; } } break; case 3: if(money<150) { SlowDisplay("钱不够!"); } else { if(player.health+100<=player.max_health) { SlowDisplay("HP+100."); money-=150; player.health+=100; } else { SlowDisplay("HP满了"); player.health=player.max_health; } } break; case 0: SlowDisplay("下次再来!\n"); break; default: SlowDisplay("输入错误\n\n\n"); } } } } else if(place_sign==place.hotel) SlowDisplay("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n"); else SlowDisplay("这里好像没人可以聊天\n\n\n"); break; case 4: DisplayState(); break; //显示状态 case 5: //装备 printf("攻装: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n); printf("防装: 5,布衣:%d个 6,铁甲:%d个 7,银甲:%d个 8,黄金圣衣:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n); SlowDisplay("选择要装备的武器或防具:\n\n\n"); switch(scanf("%d",&choose_number),choose_number) { case 1: if(gong1n>=1) { SlowDisplay("拿起了匕首\n\n\n"); gong=gong1; strcpy(gongname,"匕首"); } else SlowDisplay("你没有匕首可以装备\n\n\n"); break; case 2: if(gong2n>=1) { SlowDisplay("拿起了长剑\n\n\n"); gong=gong2; strcpy(gongname,"长剑"); } else SlowDisplay("你没有长剑可以装备\n\n\n"); break; case 3: if(gong3n>=1) { SlowDisplay("拿起了碧血剑\n\n\n"); gong=gong3; strcpy(gongname,"碧血剑"); } else SlowDisplay("你没有碧血剑可以装备\n\n\n"); break; case 4: if(gong4n>=1) { SlowDisplay("拿起了绝世好剑\n\n\n"); gong=gong4; strcpy(gongname,"绝世好剑"); } else SlowDisplay("你没有绝世好剑可以装备\n\n\n"); break; case 5: if(fang1n>=1) { SlowDisplay("穿上了布衣\n\n\n"); fang=fang1; strcpy(fangname,"布衣"); } else SlowDisplay("你没有布衣可以装备\n\n\n"); break; case 6: if(fang2>=1) { SlowDisplay("穿上了铁甲\n\n\n"); fang=fang2; strcpy(fangname,"铁甲"); } else SlowDisplay("你没有铁甲可以装备\n\n\n"); break; case 7: if(fang3n>=1) { SlowDisplay("穿上了银甲\n\n\n"); fang=fang3; strcpy(fangname,"银甲"); } else SlowDisplay("你没有银甲可以装备\n\n\n"); break; case 8: if(fang4n>=1) { SlowDisplay("穿上了黄金圣衣\n\n\n"); fang=fang4; strcpy(fangname,"黄金圣衣"); } else SlowDisplay("你没有黄金圣衣可以装备\n\n\n"); break; case 0: SlowDisplay("未更换装备\n\n\n"); break; default: printf("change error!"); } break; case 0: SlowDisplay("确定退出游戏?(Y/N)\n\n\n"); getchar(); proof=getchar(); if(proof=='y'||proof=='Y') { SlowDisplay("数据存储中...")//向文件中更新数据; getchar(); SlowDisplay("按回车退出"); getchar(); return; } else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n"); else SlowDisplay("继续!\n\n\n"); break;default:SlowDisplay("输入错误!\n\n\n"); } }}void DisplayState(){ printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health); printf("武器: %s 防具: %s \n\n\n",gongname,fangname); printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);}void BattleAct(){ while(1) { puts("============================================================================="); printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n"); switch(scanf("%d",&choose_number),choose_number) { case 1: s=SuiJi(); printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3); guai.health-=player.attack+s+gong-guai.defense/3; if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数 else continue; case 2: ChooseWupin(); break; //选择物品,可以使用,战斗中允许使用攻击性物品 case 3: DisplayState(); break; //显示状态 case 4: s=SuiJi(); if(s<4) //40%的概率可以逃跑 { printf("%s逃跑了~\n\n\n",player.name); battle=0; return; } else printf("%s逃跑失败!\n\n\n",player.name); break;default: SlowDisplay("输入错误,重新输入!\n\n\n"); } }}void SlowDisplay(char *p){ while(1) { if(*p!=0) printf("%c",*p++); else break; Sleep(100); } } 俄罗斯方块:
#include<cstdio> #include<windows.h> #include<ctime> int a[4][4],i,j,xc,yc,mouse=0,ok=0,record[2][9],foot=9,winner,first=0,who=0; void Place(const int x, const int y) { COORD PlaceCursorHere;PlaceCursorHere.X = y;PlaceCursorHere.Y = x; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), PlaceCursorHere); return; } void color(int x) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);} int search(int x0,int y0,int x,int y) { mouse=GetAsyncKeyState(VK_LBUTTON); POINT pt; HWND h=GetForegroundWindow(); GetCursorPos(&pt); ScreenToClient(h,&pt); if(pt.x>=x0&&pt.y>=y0&&pt.x<=x&&pt.y<=y) { if(mouse!=0) {Sleep(100); return 2;} else return 1; } else return 0; } bool check(int x) { int b=0,c=0,d=0,e=0; for(i=1;i<=3;i++) { for(j=1;j<=3;j++) {b+=a[i][j]; c+=a[j][i];} d+=a[i][i]; e+=a[i][4-i]; if(b==x||c==x||d==x||e==x) return true; b=0; c=0; } return false; } void pcmove() { int x=10,b=0,c=0,d=0,e=0; xc=0; yc=0; while(x>0) { for(i=1;i<=3;i++) { b=0; c=0; for(j=1;j<=3;j++) {b+=a[i][j]; c+=a[j][i];} d+=a[i][i]; e+=a[i][4-i]; if(b==x) {for(j=1;j<=3;j++) if(a[i][j]==0) {xc=i; yc=j; return;}} if(c==x) {for(j=1;j<=3;j++) if(a[j][i]==0) {xc=j; yc=i; return;}} if(d==x) {for(j=1;j<=3;j++) if(a[j][j]==0) {xc=yc=j; return;}} if(e==x) {for(j=1;j<=3;j++) if(a[j][4-j]==0) {xc=j; yc=4-j; return;}} } x-=8; } if(a[2][2]==0) {xc=yc=2; return;} x=2; while(x>0) {for(i=1;i<=3;i+=x) for(j=1;j<=3;j+=x) if(a[i][j]==0) {xc=i; yc=j; return;} x--;} } void show() { int x=foot; for(i=1;i<=3;i++) for(j=1;j<=3;j++) if(a[i][j]!=0) {if(a[i][j]==1) color(15); else color(11); Place(2*i-1,4*j-2); printf("●");} color(15); Place(7,0); if(who==0) {if(foot%2==1) printf("1号"); else printf("2号");} else printf("电脑"); if(who==0||first==1) x--; printf("下子:(%d,%d)",record[0][8-x],record[1][8-x]); } void button(int x) { if(x<3) { Place(x*3,15); printf("┌┄┄┐"); Place(x*3+1,17); if(x==0){if(ok==0) printf("开始"); else printf("悔棋");} if(x==1) printf("重来"); if(x==2) printf("退出"); Place(x*3+2,15); printf("└┄┄┘"); } if(x>2&&x<6) { Place(10,(x-4)*7); printf("┌┄┐"); Place(11,(x-4)*7+2); if(x==4) printf("是"); else printf("否"); Place(12,(x-4)*7); printf("└┄┘"); } if(x>5&&x<8) { Place(10,(x-6)*12); printf("┌┄┄┄┄┐"); Place(11,(x-6)*12+2); if(x==6) printf("人机对战"); else printf("人人对战"); Place(12,(x-6)*12); printf("└┄┄┄┄┘"); } if(x>7) { Place(10,(x-8)*12); printf("┌┄┄┄┄┐"); Place(11,(x-8)*12+2); if(x==8) printf(" 我先手 "); else printf("电脑先手"); Place(12,(x-8)*12); printf("└┄┄┄┄┘"); } } void menu(int x) { int k,l; if(x==0) { if(ok==0) {ok=1; return;} else if(9-foot>1) { foot+=2; for(i=9-foot;i<=11-foot;i++) {a[record[0][i]][record[1][i]]=0; record[0][i]=record[1][i]=0;} for(i=1;i<=3;i++) for(j=1;j<=3;j++) {Place(2*i-1,4*j-2); printf(" ");} show(); } } if(x>0&&x<3) { for(l=10;l<=12;l++) for(j=1;j<=22;j++) {Place(l,j); printf(" ");} Place(9,1); printf("你想"); if(x==1) printf("重来吗?"); if(x==2) printf("退出吗?"); button(4); button(5); while(1) { mouse=GetAsyncKeyState(VK_LBUTTON); for(i=0;i<=1;i++) { k=search(7+i*55,165,40+i*55,200); if(k!=2) {if(k==1) color(15); else color(7); button(i+4);} else {for(l=9;l<=12;l++) for(j=1;j<=12;j++) {Place(l,j); printf(" ");} if(i==0) {if(x==1) ok=2; else exit(0);} return; } } Sleep(50); } } if(x>2&&x<5) {if(x==3) {who=1; return;} else {who=0; return;}} if(x>4) {if(x==5) {first=0; return;} else {first=1; return;}} } void click() { for(i=0;i<=2;i++) { mouse=GetAsyncKeyState(VK_LBUTTON); int k=search(125,i*50+5,175,i*50+40); if(k!=2) {if(k==1) color(15); else color(7); button(i); color(7);} else{menu(i); return;} } Sleep(50); } void humove() { while(1) { for(i=1;i<=3;i++) for(j=1;j<=3;j++) if(search(7+(i-1)*32,7+(j-1)*32,7+i*32,7+j*32)==2&&a[j][i]==0) {if(who==0&&foot%2!=1) a[j][i]=5; else a[j][i]=1; record[0][9-foot]=j; record[1][9-foot]=i; return;} click(); if(ok==2) return; } } void replace() { int k,l,p,q; Place(7,0); for(i=1;i<=15;i++) printf(" "); for(i=1;i<=3;i++) for(j=1;j<=3;j++) {Place(2*i-1,4*j-2); printf(" "); a[i][j]=0;} for(i=0;i<2;i++) for(j=0;j<9;j++) record[i][j]=0; foot=9; winner=0; first=0; who=0; ok=1; button(6); button(7); while(1) { for(i=0;i<=1;i++) { mouse=GetAsyncKeyState(VK_LBUTTON); k=search(i*80+7,165,i*80+103,200); q=search(125,105,175,140); if(k!=2) {if(k==1) color(15); else color(7); button(i+6); color(7);} else { menu(i+3); for(l=10;l<=12;l++) for(j=1;j<=22;j++) {Place(l,j); printf(" ");} if(who==1) { button(7); button(8); while(1) { for(j=0;j<=1;j++) { mouse=GetAsyncKeyState(VK_LBUTTON); k=search(j*80+7,165,j*80+103,200); q=search(125,105,175,140); if(k!=2) {if(k==1) color(15); else color(7); button(j+8); color(7);} else{menu(j+5); for(l=10;l<=12;l++) for(p=1;p<=22;p++) {Place(l,p); printf(" ");} return;} if(q!=2) {if(q==1) color(15); else color(7); button(2); color(7);} else menu(2); } Sleep(50); } } return; } if(q!=2) {if(q==1) color(15); else color(7); button(2); color(7);} else menu(2); } Sleep(50); } } int main() { printf("┌─┬─┬─┐\n\n├─┼─┼─┤\n\n├─┼─┼─┤\n\n└─┴─┴─┘\n\n"); for(i=0;i<3;i++) button(i); while(ok==0) click(); while(1) { replace(); while(foot>0&&ok!=0) { if(first!=1) {humove(); show(); if(check(3)) {winner=1; ok=0; break;} foot--; if(foot<=0||ok==0||ok==2) break;} if(who==0&&check(15)) {winner=2;ok=0;break;} if(who!=0) {pcmove(); record[0][9-foot]=xc; record[1][9-foot]=yc; a[xc][yc]=5; show(); if(check(15)) {winner=2;ok=0;} foot--; first=0;} } if(ok==2) {ok=1; continue;} Place(7,0); for(i=1;i<=15;i++) printf(" "); Place(7,4); color(15); if(winner==0) printf("平局!"); if(who!=0) {if(winner==1) printf("你赢了!"); if(winner==2) printf("你输了!"); Sleep(50);} else {if(winner==1) printf("1号赢了!"); if(winner==2) printf("2号赢了!"); Sleep(50);} ok=0; while(ok==0) click(); } } #include<cstdio> #include<windows.h> #include<ctime> void Place(const int x, const int y) { COORD PlaceCursorHere;PlaceCursorHere.X = y;PlaceCursorHere.Y = x; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), PlaceCursorHere); return; } void color(int x) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);} void appear() {for(i=3;i<=22;i++) for(j=1;j<=15;j++) if(a[i][j]!=0) {Place(i-2,2*j); printf("■");}} void disappear() {for(i=3;i<=22;i++) for(j=1;j<=15;j++) if(a[i][j]==2) {Place(i-2,2*j); printf(" ");}} int search(int x0,int y0,int x,int y) { POINT pt; HWND h=GetForegroundWindow(); GetCursorPos(&pt); ScreenToClient(h,&pt); if(pt.x>=x0&&pt.y>=y0&&pt.x<=x&&pt.y<=y) { if(mouse!=0) {Sleep(100); return 2;} else return 1; } else return 0; } void button(int x) { int m=x*10; if(x<3) { Place(22,m); printf("┌┄┄┄┐"); Place(23,m); { if(x==0) {if(ok!=0) printf("┆start ┆"); else printf("┆pause ┆");} if(x==1) printf("┆reset ┆"); if(x==2) printf("┆ exit ┆"); } Place(24,m); printf("└┄┄┄┘"); } else { Place(9,m-33); printf("┌┄┄┐"); Place(10,m-33); { if(x==4) printf("┆yes ┆"); else printf("┆ no ┆"); } Place(11,m-33); printf("└┄┄┘"); } } void menu(int x) { int k,l; if(x==0) { if(ok!=0) {ok=0; return;} else while(1) { mouse=GetAsyncKeyState(VK_LBUTTON); Place(9,13); printf("pause"); if(search(7,360,71,390)==2) break; Sleep(50); } Place(9,12); for(j=1;j<=6;j++) printf(" "); //appear(); } else { for(i=1;i<=20;i++) for(j=2;j<=30;j++) {Place(i,j); printf(" ");} Place(7,2); for(i=1;i<=15;i++) printf("┄"); Place(12,2); for(i=1;i<=15;i++) printf("┄"); Place(8,6); printf("Do you want to "); if(x==1) printf("reset?"); if(x==2) printf("exit?"); button(4); button(5); while(1) { mouse=GetAsyncKeyState(VK_LBUTTON); for(i=0;i<=1;i++) { k=search(63+i*80,150,110+i*80,180); if(k!=2) {if(k==1) color(15); else color(7); button(i+4);} else {for(l=7;l<=12;l++) for(j=2;j<=30;j++) {Place(l,j); printf(" ");} if(i==0) {if(x==1) ok=2; else exit(0);} return; } } Sleep(50); } } } void click() { for(i=0;i<=2;i++) { mouse=GetAsyncKeyState(VK_LBUTTON); int k=search(i*80+7,360,i*80+71,390); if(k!=2) {if(k==1) color(15); else color(7); button(i); color(7);} else{menu(i); return;} } Sleep(50); } void ss() { Place(9,39); printf("%d",score); if(score>=speed*100) { speed++; ti=ti-200; if(ti<0) ti=0; else { for(i=1;i<=4;i++) { Place(9,12); printf("speed up!"); Sleep(70); Place(9,12); for(j=1;j<=9;j++) printf(" "); Sleep(70); }Sleep(200); } } if(best<score) best=score; appear(); Place(12,39); printf("%d",speed); Place(15,39); printf("%d",best); } void replace() { for(i=1;i<=20;i++) for(j=2;j<=30;j++) {Place(i,j); printf(" ");} for(i=0;i<=22;i++) for(j=1;j<=15;j++) a[i][j]=0; for(i=1;i<=15;i++) a[23][i]=1; for(i=1;i<=23;i++) {a[i][0]=1; a[i][16]=1;} ss(); tim=800;ti=800;shape=0;add=0;score=0;speed=1; } void change(int x) { int q=0,l; for(l=1;l<=x;l++) { for(j=0;j<=2+add;j++) { for(i=2+add;i>=0;i--) { turn[j][q]=ta[i][j]; q++; if(q>2+add) q=0; } } for(i=0;i<=3;i++) for(j=0;j<=3;j++) ta[i][j]=turn[i][j]; } } void born() { int x,q=0; srand(time(NULL)); bn=b; shape=nextshape; x=rand()%12+1; if(b==5&&x>1) {x--; add=1;} for(i=0;i<=2+add;i++) for(j=x;j<=x+2+add;j++) {a[i][j]=nex[i][q]; q++; if(q>2+add) q=0;}add=0; } void next() { srand(time(NULL)); b=rand()%7; nextshape=rand()%4; add=0; for(i=3;i<=6;i++) for(j=37;j<=45;j++) {Place(i,j); printf(" ");} for(i=0;i<=3;i++) for(j=0;j<=3;j++) nex[i][j]=turn[i][j]=ta[i][j]=0; ta[1][1]=2; if(b==0) ta[1][2]=ta[1][0]=ta[0][1]=2; if(b==1) ta[1][2]=ta[1][0]=ta[0][0]=2; if(b==2) ta[1][2]=ta[1][0]=ta[0][2]=2; if(b==3) ta[1][0]=ta[0][1]=ta[0][2]=2; if(b==4) ta[0][0]=ta[0][1]=ta[1][2]=2; if(b==5) {ta[1][0]=ta[1][2]=ta[1][3]=2; add=1;} if(b==6) ta[0][0]=ta[0][1]=ta[1][0]=2; if(nextshape>0&&b!=6) {change(nextshape); for(i=0;i<=3;i++) for(j=0;j<=3;j++) {nex[i][j]=turn[i][j]; if(nex[i][j]==2) {Place(i+3,j*2+37); printf("■");}}} else {for(i=0;i<=3;i++) for(j=0;j<=3;j++) {nex[i][j]=ta[i][j]; if(nex[i][j]==2) {Place(i+3,j*2+37); printf("■");}}} } void clear() { int c=0,f=0,l[23],s=0,k; for(i=3;i<=22;i++) { l[i]=0; for(j=1;j<=15;j++) c=a[i][j]+c; if(c==15) { for(j=1;j<=15;j++) a[i][j]=0; for(k=i-1;k>=2;k--) for(j=1;j<=15;j++) a[k+1][j]=a[k][j]; f++; l[i]=1; s=5; } c=0; } score=score+f*10; while(f>1) {score=score+f*5; f--;} f=0; while(s>0) { for(i=22;i>=3;i--) if(l[i]==1) { Place(i-2,2); for(j=1;j<=15;j++) printf("■");}Sleep(70); for(i=22;i>=3;i--) if(l[i]==1) { Place(i-2,2); for(j=1;j<=30;j++) printf(" ");}Sleep(70);s--; } for(i=3;i<=22;i++) for(j=1;j<=15;j++) {Place(i-2,2*j); printf(" ");} appear(); } void control() { int up,down,right,left,c=0,d=0,x,y,no=0,k,l=0,q=0; k=shape; add=0; up=GetAsyncKeyState(VK_UP); down=GetAsyncKeyState(VK_DOWN); right=GetAsyncKeyState(VK_RIGHT); left=GetAsyncKeyState(VK_LEFT); if(down!=0) { tim=0;} if(left!=0||right!=0) { Sleep(100);disappear(); for(i=0;i<=22;i++) for(j=1;j<=15;j++) { if(a[i][j]==2&&a[i][j-1]!=1) c++; if(a[i][j]==2&&a[i][j+1]!=1) d++; } for(i=0;i<=22;i++) for(j=1;j<=15;j++) if(left!=0&&c==4&&a[i][j]==2) {a[i][j-1]=a[i][j]; a[i][j]=0;} for(i=0;i<=22;i++) for(j=15;j>=1;j--) if(right!=0&&d==4&&a[i][j]==2) {a[i][j+1]=a[i][j];a[i][j]=0;} appear(); } if(up!=0&&bn!=6) { Sleep(150); disappear(); for(i=0;i<=22;i++) { for(j=1;j<=15;j++) if(a[i][j]==2) {x=i; no=1; break;} if(no==1) break; } no=0; for(j=1;j<=15;j++) { for(i=0;i<=22;i++) if(a[i][j]==2) {y=j; no=1; break;} if(no==1) break; } no=0; if(k==1) y--; if(k==2) x--; add=0; if(bn==5) {add=1; if(k==0||k==2) x--; if(k==1||k==3) y--;} for(i=0;i<=3;i++) for(j=0;j<=3;j++) ta[i][j]=a[x+i][y+j]; if(bn>=0&&bn<5) { if(k==0) ta[2][0]=0; if(k==1) ta[0][0]=0; if(k==2) ta[0][2]=0; if(k==3) ta[2][2]=0; } if(bn==5) { if(k==0) ta[0][3]=ta[2][0]=ta[2][1]=ta[3][1]=ta[3][0]=0; if(k==1) ta[0][0]=ta[1][0]=ta[0][1]=ta[1][1]=ta[3][3]=0; if(k==2) ta[3][0]=ta[0][2]=ta[0][3]=ta[1][2]=ta[1][3]=0; if(k==3) ta[0][0]=ta[2][2]=ta[2][3]=ta[3][2]=ta[3][3]=0; } for(i=0;i<=2+add;i++) for(j=0;j<=2+add;j++) if(ta[i][j]!=1) l++; if(l==9+add*7) { change(1); for(i=0;i<=22;i++) for(j=1;j<=15;j++) if(a[i][j]==2) a[i][j]=0; for(i=0;i<=2+add;i++) for(j=0;j<=2+add;j++) if(turn[i][j]==2) a[x+i][y+j]=turn[i][j]; shape++; } if(shape>3) shape=0; appear(); } } int main() { int k,start,finish,d; printf("┌"); for(i=1;i<=15;i++) printf("┄"); printf("┐\n"); for(i=1;i<=20;i++) printf("┆\n"); printf("└"); for(i=1;i<=15;i++) printf("┄"); printf("┘"); for(i=1;i<=20;i++) {Place(i,32); printf("┆\n");} Place(2,37); printf("NEXT"); Place(8,37); printf("SCORE"); Place(14,37); printf("BEST"); Place(11,37); printf("SPEED"); for(i=0;i<=2;i++) button(i); while(ok==1) click(); while(ok!=1) { replace(); next(); while(1) { born(); next(); while(1) { appear(); k=0; start=clock(); while(1) { finish=clock(); d=finish-start; if(d>=tim) break; control(); click(); if(ok==2) break; } if(ok==2) break; disappear(); for(i=22;i>=0;i--) for(j=1;j<=15;j++) if(a[i][j]==2&&a[i+1][j]!=1) k++; if(k==4) { for(i=22;i>=0;i--) for(j=1;j<=15;j++) if(a[i][j]==2) { a[i+1][j]=2;a[i][j]=0; } } else { for(i=22;i>=0;i--) for(j=1;j<=15;j++) if(a[i][j]==2) a[i][j]=1; break; } tim=ti; appear(); } if(ok==2) break; appear();clear();ss(); for(i=1;i<=15;i++) if(a[2][i]==1) {ok=1; break;} } if(ok==2) {ok=0; continue;} for(i=1;i<=20;i++) for(j=2;j<=30;j++) {Place(i,j); printf(" ");} Place(9,12); printf("GAME OVER!"); while(ok==1) click(); } return 0; } 买彩票
#include <cstdlib> #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <queue> #include <string> #include <stack> #include <ctime> using namespace std; int money=100; int t=0; int tt=-1; int v; int d; void borrow() { if(tt!=-1) { cout<<"你现在不能借钱"<<endl; return; } cout<<"你要借多少钱?"<<endl; cin>>v; if (d==1||d==2) { if (v>1000) cout<<"你不能借这么多钱!"<<endl,cout<<"你要借多少钱?"<<endl,cin>>v; if (v<=1000) money+=v,cout<<"10天以后你要还"<<2*v<<"美元"<<endl; return; } else { if (v>100) cout<<"你不能借这么多钱!"<<endl,cout<<"你要借多少钱?"<<endl,cin>>v; if (v<=100) money+=v,cout<<"10天以后你要还"<<2*v<<"美元"<<endl; return; } } bool pay() { cout<<"你现在要还 "<<2*v<<endl; money-=2*v; tt=-1; v=0; if(money<=0) return false; else return true; } int main(int argc, char *argv[]) { cout<<"欢迎来到彩票游戏!"<<endl<<endl<<"温馨提示:在游戏内请勿使用小数、负数、英文字母、特殊字符(游戏中另说明除外),"<<endl<<"否则后果自负。"<<endl<<endl; cout<<"请选择难度(输入序号即可):"<<endl<<"1:入门"<<" "<<"2:简单"<<" "<<"3:普通"<<" "<<"4:中等"<<" "<<"5:困难"<<endl; cin>>d; if (d==1) cout<<"已选择难度:入门"<<endl<<endl; if (d==2) cout<<"已选择难度:简单"<<endl<<endl; if (d==3) cout<<"已选择难度:普通"<<endl<<endl; if (d==4) cout<<"已选择难度:中等"<<endl<<endl; if (d==5) cout<<"已选择难度:困难"<<endl<<endl; while(1) { if (d<1) cout<<"没有这个选项"<<endl<<"请选择难度(输入序号即可):"<<endl<<"1:入门"<<" "<<"2:简单"<<" "<<"3:普通"<<" "<<"4:中等"<<" "<<"5:困难"<<endl,cin>>d; if (d>5) cout<<"没有这个选项"<<endl<<"请选择难度(输入序号即可):"<<endl<<"1:入门"<<" "<<"2:简单"<<" "<<"3:普通"<<" "<<"4:中等"<<" "<<"5:困难"<<endl,cin>>d; if (d==1 || d==2 || d==3 || d==4 || d==5) break; } bool flag=true; srand(time(0)); int a[10000]; int n,p; char c[4]; if (d==1) { cout<<"每张彩票 购入价为1美元,出售价为5美元,有五个奖项"<<endl<<"小奖:10美元"<<endl<<"中奖:20美元"<<endl<<"大奖:100美元"<<endl<<"巨额奖金:1,000美元"<<endl<<"杰克壶:10,000美元"<<endl; cout<<"你有100美元,当你赚了超过10,000美元,你就发财了。"<<endl<<"但如果你失去了所有的钱,你破产了。"<<endl; cout<<"你可能想借钱(最多1,000美元),如果你想,按0。"<<endl<<"请记住,当你借了十天以后。你必须偿还两倍,"<<endl; cout<<"你想买彩票还是卖彩票?(buy/sell)"<<endl; } if (d==2) { cout<<"每张彩票 购入价为2美元,出售价为3美元,有五个奖项"<<endl<<"小奖:5美元"<<endl<<"中奖:20美元"<<endl<<"大奖:100美元"<<endl<<"巨额奖金:1,000美元"<<endl<<"杰克壶:10,000美元"<<endl; cout<<"你有100美元,当你赚了超过10,000美元,你就发财了。"<<endl<<"但如果你失去了所有的钱,你破产了。"<<endl; cout<<"你可能想借钱(最多1,000美元),如果你想,请按0。"<<endl<<"请记住,当你借了十天以后。你必须偿还两倍,"<<endl; cout<<"你想买彩票还是卖彩票?(buy/sell)"<<endl; } if (d==3) { cout<<"每张彩票 售价2美元,有五个奖项"<<endl<<"小奖:5美元"<<endl<<"中奖:20美元"<<endl<<"大奖:100美元"<<endl<<"巨额奖金:1,000美元"<<endl<<"杰克壶:10,000美元"<<endl; cout<<"你有100美元,当你赚了超过10,000美元,你就发财了。"<<endl<<"但如果你失去了所有的钱,你破产了。"<<endl; cout<<"你可能想借钱(最多100美元),如果你想,请按0。"<<endl<<"请记住,当你借了十天以后。你必须偿还两倍,"<<endl; cout<<"你想买彩票还是卖彩票?(buy/sell)"<<endl; } if (d==4) { cout<<"每张彩票 售价3美元,有五个奖项"<<endl<<"小奖:5美元"<<endl<<"中奖:20美元"<<endl<<"大奖:100美元"<<endl<<"巨额奖金:1,000美元"<<endl<<"杰克壶:10,000美元"<<endl; cout<<"你有100美元,当你赚了超过100,000美元,你就发财了。"<<endl<<"但如果你失去了所有的钱,你破产了。"<<endl; cout<<"你可能想借钱(最多100美元),如果你想,请按0。"<<endl<<"请记住,当你借了七天以后。你必须偿还两倍,"<<endl; cout<<"你想买彩票还是卖彩票?(buy/sell)"<<endl; } if (d==5) { cout<<"每张彩票 购入价为5美元,出售价为2美元,有五个奖项"<<endl<<"小奖:5美元"<<endl<<"中奖:20美元"<<endl<<"大奖:100美元"<<endl<<"巨额奖金:1,000美元"<<endl<<"杰克壶:5,000美元"<<endl; cout<<"你有100美元,当你赚了超过100,000美元,你就发财了。"<<endl<<"但如果你失去了所有的钱,你就破产了。"<<endl; cout<<"你可能想借钱(最多100美元),如果你想,请按0。"<<endl<<"请记住,当你借了五天以后。你必须偿还两倍,"<<endl; cout<<"你想买彩票还是卖彩票?(buy/sell)"<<endl; } cin>>c; if(c[0]=='b'||c[0]=='B') { while(money>0) { if (d==1||d==2||d==3) if(money>=10000) { cout<<"你发财了! "<<endl; cout<<"你花了 "<<t<<"天"<<endl; system("pause"); return 0; } if (d==4||d==5) if(money>=100000) { cout<<"你发财了! "<<endl; cout<<"你花了 "<<t<<"天"<<endl; system("pause"); return 0; } t++; cout<<"你要买几张票?"<<" "<<"你有$"<<money<<endl; cin>>n; if(n==0) { if (d=4) { borrow(); tt=t+7; } if (d=5) { borrow(); tt=t+5; } else { borrow(); tt=t+10; } } if(t==tt) { flag=pay(); } if(t==tt-1) cout<<"[警告]你必须在明天还钱!"<<endl; if(flag==false) { cout<<"你不能偿还你借的钱!"<<endl; cout<<"你破产了。"<<endl; cout<<"你生存了"<<t<<"天。"<<endl; system("pause"); return 0; } flag=true; if(n<0) { cout<<"因为你违反规则,所以系统强制停止了你的游戏"<<endl; system("pause"); } if (d==1) money=money-n; if (d==2||d==3) money=money-n*2; if (d==4) money=money-n*3; if (d==5) money=money-n*5; if(money<0) { cout<<"你破产了。"<<endl; cout<<"你生存了"<<t<<"天"<<endl; system("pause"); return 0; } for(int i=0; i<n; i++) { p=rand()%12000; if(p==0) { int q=0; q=rand()%4; if(q==1) { cout<<"你获得了杰克壶!"<<endl; if (d==5) money+=5000; else money+=10000; } } else if(p>=1&&p<=8) { int g=0; g=rand()%2; if(g==0) { cout<<"你获得了巨额奖金! "<<endl; money+=1000; } } else if(p>=9&&p<=99) { cout<<"你获得了大奖!"<<endl; money+=100; } else if((p>=100&&p<=399)||(p>1500&&p<=1600)) { cout<<"你获得了中间奖!"<<endl; money+=20; } else if(p>=400&&p<=1500) { cout<<"你获得了小奖!"<<endl; if (d==1) money+=10; else money+=5; } } if(money<=0) { cout<<"你破产了。"<<endl; cout<<"你生存了"<<t<<"天。"<<endl; system("pause"); return 0; } } } if(c[0]=='s'||c[0]=='S') { if (d==1) { cout<<"你有$"<<money<<endl; cout<<"你必须付25美元买一个商店。 "<<endl; cout<<"你只能卖同样数量的票作为你的钱。 "<<endl; money-=25; } if (d==2) { cout<<"你有$"<<money<<endl; cout<<"你必须付35美元买一个商店。 "<<endl; cout<<"你只能卖同样数量的票作为你的钱。 "<<endl; money-=35; } if (d==3||d==4) { cout<<"你有$"<<money<<endl; cout<<"你必须付50美元买一个商店。 "<<endl; cout<<"你只能卖同样数量的票作为你的钱。 "<<endl; money-=50; } if (d==5) { cout<<"你有$"<<money<<endl; cout<<"你必须付60美元买一个商店。 "<<endl; cout<<"你只能卖同样数量的票作为你的钱。 "<<endl; money-=60; } cout<<"你有$"<<money<<endl; while(money>0) { if (d==1||d==2||d==3) if(money>=10000) if (d==4||d==5) if(money>=100000) { cout<<"你发财了!"<<endl; cout<<"你花了"<<t<<"天。"<<endl; system("pause"); return 0; } t++; cout<<"你要卖几张票? "<<" "<<"你有$"<<money<<endl; cin>>n; if(n==0) { borrow(); tt=t+10; } if(t==tt) bool flag=pay(); if(flag==false) { cout<<"你不能偿还你借的钱。"<<endl; cout<<"你破产了!"<<endl; cout<<"你生存了"<<t<<" 天。"<<endl; system("pause"); return 0; } if(n<0 || n>money) { cout<<"注意"<<endl; cout<<"你破产了!"<<endl; cout<<"你生存了"<<t<<" 天"<<endl; system("pause"); return 0; } if (d=1) money=money+n*5; if (d=2) money=money+n*3; else money=money+n*2; if(money<0) { cout<<"你破产了!"<<endl; cout<<"你生存了"<<t<<" 天"<<endl; system("pause"); return 0; } for(int i=0; i<n; i++) { p=rand()%12000; if(p==0) { int y; y=rand()%4; if(y==1) { cout<<"你失去了杰克壶!"<<endl; if (d==5) money-=5000; else money-=10000; } } else if(p>=1&&p<=8) { cout<<"你失去了巨额奖金!"<<endl; money-=1000; } else if(p>=15&&p<=50) { cout<<"你失去了大奖!"<<endl; money-=100; } else if(p>=61&&p<=360) { cout<<"你失去了中奖!"<<endl; money-=20; } else if(p>=401&&p<=1500) { cout<<"你失去了小奖!"<<endl; money-=5; } } } } if(money<=0) { cout<<"你破产了。"<<endl; cout<<"你生存了"<<t<<"天。"<<endl; system("pause"); return 0; } } 三国杀
#include<iostream> #include<time.h> #include<stdio.h> #include <stdlib.h> using namespace std; struct pai { int paifu; int huase; int yanse; int dianshu; int leixing; int changdu; void Kanpai() { if(paifu==0||paifu==1); else printf("牌副参数错误!\n"); switch(huase) { case 0:cout<<"黑桃";break; case 1:cout<<"红桃";break; case 2:cout<<"草花";break; case 3:cout<<"方片";break; case -1:cout<<"无色";break; default:printf("花色错误!\n");break; } switch(dianshu) { case 0:cout<<"A ";break; case 1:cout<<"2 ";break; case 2:cout<<"3 ";break; case 3:cout<<"4 ";break; case 4:cout<<"5 ";break; case 5:cout<<"6 ";break; case 6:cout<<"7 ";break; case 7:cout<<"8 ";break; case 8:cout<<"9 ";break; case 9:cout<<"10 ";break; case 10:cout<<"J ";break; case 11:cout<<"Q ";break; case 12:cout<<"K ";break; case -1:cout<<"无点数";break; default:printf("点数错误!\n");break; } switch(leixing) { case 101:cout<<"【杀】"<<endl;break; case 102:cout<<"【闪】"<<endl;break; case 103:cout<<"【桃】"<<endl;break; case 201:cout<<"【过河拆桥】"<<endl;break; case 202:cout<<"【顺手牵羊】"<<endl;break; case 203:cout<<"【无中生有】"<<endl;break; case 204:cout<<"【决斗】"<<endl;break; case 205:cout<<"【借刀杀人】"<<endl;break; case 206:cout<<"【桃园结义】"<<endl;break; case 207:cout<<"【五谷丰登】"<<endl;break; case 208:cout<<"【南蛮入侵】"<<endl;break; case 209:cout<<"【万箭齐发】"<<endl;break; case 210:cout<<"【无懈可击】"<<endl;break; case 251:cout<<"【乐不思蜀】"<<endl;break; case 252:cout<<"【闪电】"<<endl;break; case 301:cout<<"【诸葛连弩(1)】"<<endl;break; case 302:cout<<"【雌雄双股剑(2)】"<<endl;break; case 303:cout<<"【青釭剑(2)】"<<endl;break; case 304:cout<<"【青龙偃月刀(3)】"<<endl;break; case 305:cout<<"【丈八蛇矛(3)】"<<endl;break; case 306:cout<<"【贯石斧(3)】"<<endl;break; case 307:cout<<"【方天画戟(4)】"<<endl;break; case 308:cout<<"【麒麟弓(5)】"<<endl;break; case 331:cout<<"【八卦阵】"<<endl;break; case 361:cout<<"【赤兔(-1)】"<<endl;break; case 362:cout<<"【大宛(-1)】"<<endl;break; case 363:cout<<"【紫辛(-1)】"<<endl;break; case 381:cout<<"【爪黄飞电(+1)】"<<endl;break; case 382:cout<<"【的卢(+1)】"<<endl;break; case 383:cout<<"【绝影(+1)】"<<endl;break; default:printf("类型参数错误!");break; } } }; void Qishixipai(pai A[2][4][13],pai paidui[104]) { int i,m,x,y,z,a[104]={0}; srand((unsigned)time(NULL)); for(i=1;i<=104;i++) { while(a[m=rand()%104]); a[m]=i; } for(i=0;i<=103;i++) { x=(a[i]-1)/52; y=((a[i]-1)-52*x)/13; z=(a[i]-1)%13; paidui[i]=A[x][y][z]; } } void Xipai(pai paidui[104],int*paiduishu,pai qipaidui[104],int*qipaishu) { int i,m,a[104]={0}; srand((unsigned)time(NULL)); for(i=1;i<=(*qipaishu);i++) { while(a[m=rand()%(*qipaishu)]); a[m]=i; } for(i=0;i<=((*qipaishu)-1);i++) { paidui[i]=qipaidui[a[i]]; qipaidui[a[i]].leixing=-1; (*paiduishu)++; (*qipaishu)--; } for(i=(*paiduishu);i<=103;i++)paidui[i].leixing=-1; } pai Mo1pai(pai A[104],int *x,pai B[104],int*y,int *b) { pai p; if((*x)==0)Xipai(A,x,B,y); else if((*x)<0)printf("摸牌参数错误!"); else; p=A[104-(*x)]; (*x)--; (*b)++; return(p); } struct wujiang { char name; int tili; int tilishangxian; int shoupaishangxian; int huihekaishi; int panding; int mopai; int chupai; int qipai; int huihejieshu; int juese; pai shoupai[20]; int shoupaishu; pai zhuangbei[4]; int zhuangbeishu; pai pandingpai[3]; int pandingshu; int juli[1]; void Kanshoupai() { printf("玩家当前手牌:\n"); if(shoupaishu) { int m; for(m=0;m<=(shoupaishu-1);m++) { printf("%d ",m); (shoupai[m]).Kanpai(); } } else printf("空城!\n"); printf("\n"); } void Kanzhuangbei() { if(juese)printf("玩家"); else printf("电脑"); printf("当前装备:\n"); printf("0 武器: "); if((zhuangbei[0]).leixing==-1)printf("空\n"); else (zhuangbei[0]).Kanpai(); printf("1 防具: "); if((zhuangbei[1]).leixing==-1)printf("空\n"); else (zhuangbei[1]).Kanpai(); printf("2 进攻马: "); if((zhuangbei[2]).leixing==-1)printf("空\n"); else (zhuangbei[2]).Kanpai(); printf("3 防御马: "); if((zhuangbei[3]).leixing==-1)printf("空\n"); else (zhuangbei[3]).Kanpai(); printf("\n"); } void Kanpandingpai() { if(juese)printf("玩家"); else printf("电脑"); printf("当前判定区:\n"); if((pandingpai[0]).leixing==-1)printf("空\n"); else { printf("0 "); (pandingpai[0]).Kanpai(); if((pandingpai[1]).leixing==-1); else { printf("1 "); (pandingpai[1]).Kanpai(); if((pandingpai[2]).leixing==-1); else { printf("2 "); (pandingpai[2]).Kanpai(); } } } } }; void Mopai(int*shoupaishu,pai shoupai[20],pai A[104],int *x,pai B[104],int*y,int juese) { if(juese)printf("玩家从牌堆摸2张牌\n"); else printf("电脑从牌堆摸2张牌\n"); pai p; p=Mo1pai(A,x,B,y,shoupaishu); shoupai[*shoupaishu-1]=p; pai q; q=Mo1pai(A,x,B,y,shoupaishu); shoupai[*shoupaishu-1]=q; int m; if(juese) { printf("玩家当前手牌:\n"); for(m=0;m<=(*shoupaishu-1);m++) { printf("%d ",m); (shoupai[m]).Kanpai(); } } printf("牌堆还剩%d张牌!\n\n",*x); } void Qishishoupai(wujiang *w,pai A[104],int *x,pai B[104],int*y) { pai a; a=Mo1pai(A,x,B,y,&((*w).shoupaishu)); (*w).shoupai[(*w).shoupaishu-1]=a; pai b; b=Mo1pai(A,x,B,y,&((*w).shoupaishu)); (*w).shoupai[(*w).shoupaishu-1]=b; pai c; c=Mo1pai(A,x,B,y,&((*w).shoupaishu)); (*w).shoupai[(*w).shoupaishu-1]=c; pai d; d=Mo1pai(A,x,B,y,&((*w).shoupaishu)); (*w).shoupai[(*w).shoupaishu-1]=d; int m; if((*w).juese)printf("玩家从牌堆摸4张牌\n"); else printf("电脑从牌堆摸4张牌\n"); if((*w).juese) { printf("玩家当前手牌:\n"); for(m=0;m<=((*w).shoupaishu-1);m++) { printf("%d ",m); ((*w).shoupai[m]).Kanpai(); } } printf("牌堆还剩%d张牌!\n\n",*x); } void Panding(pai paidui[104],int*paiduishu,pai qipaidui[104],int*qipaishu) { paidui[*paiduishu].Kanpai(); qipaidui[*qipaishu]=paidui[*paiduishu]; (*paiduishu)--; (*qipaishu)++; } pai Zhangba(wujiang*w,pai qipaidui[104],int*qipaishu) { int x,y; pai p; for(;;) { int i,j; printf("请输入任意两张手牌之前的编号,以空格隔开,以回车结束!\n"); scanf("%d",&x); scanf("%d",&y); if((x>=0)&&(x<(*w).shoupaishu)&&(y>=0)&&(y<(*w).shoupaishu-1)) { switch((((*w).shoupai[x].huase)%2)+(((*w).shoupai[y].huase)%2)) { case 0:p.yanse=0;break; case 2:p.yanse=1;break; case 1:p.yanse=2;break; default:printf("【丈八蛇矛】函数参数错误!\n"); } qipaidui[*qipaishu]=(*w).shoupai[x]; (*w).shoupai[x].leixing=-1; ((*w).shoupaishu)--; (*qipaishu)++; qipaidui[*qipaishu]=(*w).shoupai[y]; (*w).shoupai[y].leixing=-1; ((*w).shoupaishu)--; (*qipaishu)++; printf("弃牌数:%d",*qipaishu); for(i=0;i<=(((*w).shoupaishu)+1);i++) { if((*w).shoupai[i].leixing==-1) { for(j=i+1;j<=(((*w).shoupaishu)+2);j++) (*w).shoupai[j-1]=(*w).shoupai[j]; i--; } } printf("玩家把:\n"); qipaidui[(*qipaishu)-2].Kanpai(); qipaidui[(*qipaishu)-1].Kanpai(); printf("当作一张"); switch(p.yanse) { case 0:printf("黑色");break; case 2:printf("红色");break; case 1:printf("无色");break; default:printf("绿色");break; } printf("无点数的【杀】"); p.dianshu=-1; p.leixing=101; return p; break; } printf("你将两张空气当作一张空气属性的【杀】使用或打出!\n"); } } int Xuanpai(wujiang*w,int t) { int x; if((*w).juese) { for(;;) { printf("出牌请输入手牌之前的编号,以回车结束!\n如果你想结束出牌阶段,请输入“-1”,以回车结束!\n"); scanf("%d",&x); if((x>=-1&&x<((*w).shoupaishu))||((x==100)&&((*w).zhuangbei[0].leixing==305))) { return x; break; } printf("你打出了一张空气!\n"); } } else return t; } pai Panpai(wujiang*w1,int*sha,int y,pai qipaidui[104],int*qipaishu) { pai p,q; p.leixing=0; q.leixing=-1; if(y==-1)return q; else { if(y==100) { if((*sha)>0) { q=Zhangba(w1,qipaidui,qipaishu); printf("使用!\n"); return q; } else { printf("当前回合使用【杀】的次数已用尽,你也不能使用【丈八蛇矛】效果!\n"); return p; } } switch((*w1).shoupai[y].leixing) { case 101: if(((*sha)>0)||((*w1).zhuangbei[0].leixing==301)) { if(((*w1).zhuangbei[0].leixing==301))printf("武器【诸葛连弩】效果被触发!\n"); return (*w1).shoupai[y]; break; } else { if((*w1).juese)printf("当前回合使用【杀】的次数已用尽,你不能使用【杀】!\n"); return p;break; } case 102: if((*w1).juese) printf("当前不需要响应任何操作,你不能主动打出【闪】!\n"); return p;break; case 103: if(((*w1).tili)<((*w1).tilishangxian)) { return (*w1).shoupai[y]; break; } else { if((*w1).juese) printf("你并未受伤,不能对自己使用【桃】!\n"); } return p;break; case 210: if((*w1).juese) printf("当前不需要响应任何锦囊,你不能主动打出【无懈可击】!\n"); return p;break; case 201: case 202: case 203: case 204: case 205: case 206: case 207: case 208: case 209: case 251: case 252: case 301: case 302: case 303: case 304: case 305: case 306: case 307: case 308: case 331: case 361: case 362: case 363: case 381: case 382: case 383:return (*w1).shoupai[y];break; default:printf("手牌类型参数错误!\n");return p;break; } } } int Mubiao(pai p,wujiang *w1,wujiang *w2,int*sha) { int x; switch(p.leixing) { case 101: if((*w1).juese) { printf("请选择【杀】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n"); scanf("%d",&x); if(x==0) { if((*w1).zhuangbei[0].changdu>=(*w1).juli[0]) { (*sha)--; return((*w2).juese); } else { printf("武器长度不够!\n"); return -2; } } else { printf("目标错误!\n"); return -2; } } else { if((*w1).zhuangbei[0].changdu>=(*w1).juli[0]) { (*sha)--; return((*w2).juese); } else return -2; } break; case 103:return((*w1).juese);break; case 201: if((*w1).juese) { printf("请选择【过河拆桥】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n"); scanf("%d",&x); if(x==0) { if((*w2).shoupaishu||(*w2).zhuangbeishu||(*w2).pandingshu)return((*w2).juese); else { printf("目标没有牌!\n"); return -2; } } else { printf("目标错误!\n"); return -2; } } else return((*w2).juese); break; case 202: if((*w1).juese) { printf("请选择【顺手牵羊】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n"); scanf("%d",&x); if(x==0) { if(((*w2).shoupaishu||(*w2).zhuangbeishu||(*w2).pandingshu)&&((*w1).juli[0]<=1))return((*w2).juese); else { printf("目标没有牌!\n"); return -2; } } else { printf("目标错误!\n"); return -2; } } else { if((*w1).juli[0]<=1)return((*w2).juese); else return -2; } break; case 203: return((*w1).juese);break; case 204: if((*w1).juese) { printf("请选择【决斗】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n"); scanf("%d",&x); if(x==0)return((*w2).juese); else { printf("目标错误!\n"); return -2; } } else return((*w2).juese); break; case 205: int y; if((*w1).juese) { printf("请选择【借刀杀人】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n"); scanf("%d",&x); if(x!=0) { printf("目标错误!\n"); return -2; } else { if(((*w2).zhuangbei[0]).leixing<=300||((*w2).zhuangbei[0]).leixing>=331) { printf("目标装备区里没有武器!\n"); return -2; } else { printf("请选择【杀】的目标!\n提示:【杀】的目标必须在【借刀杀人】的目标的攻击范围之内!\n输入目标前的编号,以回车结束!\n0 玩家\n"); scanf("%d",&y); if(y!=0) { printf("目标错误!\n"); return -2; } else { if(((*w2).zhuangbei[0].changdu)<(*w2).juli[0]) { printf("武器距离不够!\n"); return -2; } else return((*w2).juese); } } } } else { if(((*w2).zhuangbei[0]).leixing<=300||((*w2).zhuangbei[0]).leixing>=331)return -2; else { if(((*w2).zhuangbei[0].changdu)<(*w2).juli[0])return -2; else return((*w2).juese); } } break; case 206: case 207:return 99;break; case 208: case 209:return 100;break; case 251: if((*w1).juese) { printf("请选择【乐不思蜀】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n"); scanf("%d",&x); if(x==0) { int i; for(i=0;i<=2;i++) { if((*w2).pandingpai[i].leixing==251) i=-1; break; } if(i==-1) { printf("目标判定区里不能同时存在两张相同的延时类锦囊!\n"); return -2; } else return((*w2).juese); } else { printf("目标错误!\n"); return -2; } } else { int i; for(i=0;i<=2;i++) { if((*w2).pandingpai[i].leixing==251) i=-1; break; } if(i==-1)return -2; else return((*w2).juese); } break; case 252: int i; for(i=0;i<=2;i++) { if((*w1).pandingpai[i].leixing==252) i=-1; break; } if(i==-1) { if((*w1).juese)printf("目标判定区里不能同时存在两张相同的延时类锦囊!\n"); return -2; } else return ((*w1).juese); break; case 301: case 302: case 303: case 304: case 305: case 306: case 307: case 308: case 331: case 361: case 362: case 363: case 381: case 382: case 383:return((*w1).juese);break; default:return -2;break; } } void Da1pai(wujiang *w1,wujiang*w2,pai qipaidui[104],int *qipaishu,int x) { int i; if((x<0||x>=((*w1).shoupaishu))&&x!=100) printf("你的牌呢?!\n"); else { switch(((*w1).shoupai)[x].leixing) { case 101: case 102: case 103: case 201: case 202: case 203: case 204: case 205: case 206: case 207: case 208: case 209: case 210: qipaidui[*qipaishu]=((*w1).shoupai)[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; break; case 251: for(i=1;i>=0;i--)(*w2).pandingpai[i+1]=(*w2).pandingpai[i]; (*w2).pandingpai[0]=(*w1).shoupai[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; ((*w2).pandingshu)++; break; case 252: for(i=1;i>=0;i--)(*w1).pandingpai[i+1]=(*w1).pandingpai[i]; (*w1).pandingpai[0]=(*w1).shoupai[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; ((*w1).pandingshu)++; break; case 301: case 302: case 303: case 304: case 305: case 306: case 307: case 308: if((*w1).zhuangbei[0].leixing==-1)((*w1).zhuangbeishu)++; else { qipaidui[*qipaishu]=((*w1).zhuangbei)[0]; (*qipaishu)++; } (*w1).zhuangbei[0]=(*w1).shoupai[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; break; case 331: if((*w1).zhuangbei[1].leixing==-1)((*w1).zhuangbeishu)++; else { qipaidui[*qipaishu]=((*w1).zhuangbei)[1]; (*qipaishu)++; } (*w1).zhuangbei[1]=(*w1).shoupai[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; break; case 361: case 362: case 363: if((*w1).zhuangbei[2].leixing==-1)((*w1).zhuangbeishu)++; else { qipaidui[*qipaishu]=((*w1).zhuangbei)[2]; (*qipaishu)++; } (*w1).zhuangbei[2]=(*w1).shoupai[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; break; case 381: case 382: case 383: if((*w1).zhuangbei[3].leixing==-1)((*w1).zhuangbeishu)++; else { qipaidui[*qipaishu]=((*w1).zhuangbei)[3]; (*qipaishu)++; } (*w1).zhuangbei[3]=(*w1).shoupai[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; break; default:break; } } } void Miaoshu(pai p,int juese,int duixiang) { if(juese==0)printf("电脑"); else if(juese==1)printf("玩家"); else printf("角色参数错误!\n"); if(p.leixing<=300&&p.leixing>100) { switch(duixiang) { case -1:printf("打出");break; case 0:printf("对电脑使用");break; case 1:printf("对玩家使用");break; case 99:printf("使用");break; case 100:printf("对所有人使用");break; default:printf("对象参数错误\n");break; } } else if(p.leixing>=301&&p.leixing<=400) printf("装备"); else printf("你出的是什么东西?\n"); p.Kanpai(); if(!juese&&(p.leixing==101||p.leixing==204||p.leixing==205||p.leixing==207||p.leixing==208||p.leixing==209))printf("请响应!\n"); } int Wuxie(pai *p,wujiang*w1,wujiang*w2,pai qipaidui[104],int*qipaishu,int a) { int x; if((*w1).juese) { printf("是否使用【无懈可击】响应?\n\n"); for(;;) { (*w1).Kanshoupai(); printf("如果要使用【无懈可击】请输入手牌之前编号,不需要请输入“-1”,以回车结束!\n"); scanf("%d",&x); if(x==-1) { for(x=0;x<((*w2).shoupaishu);x++) { if((*w2).shoupai[x].leixing==210) { printf("电脑使用"); ((*w2).shoupai)[x].Kanpai(); printf("对象是"); (*p).Kanpai(); (*p)=((*w2).shoupai)[x]; qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(int i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; a++; break; } } break; } else if((*w1).shoupai[x].leixing==210) { printf("玩家使用"); ((*w1).shoupai)[x].Kanpai(); printf("对象是"); (*p).Kanpai(); (*p)=((*w1).shoupai)[x]; qipaidui[*qipaishu]=((*w1).shoupai)[x]; for(int i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; (*w1).Kanshoupai(); a++; break; } else printf("你确定你使用的是【无懈可击】?\n"); } } else { printf("是否使用【无懈可击】响应?\n"); for(;;) { (*w2).Kanshoupai(); printf("如果要使用【无懈可击】请输入手牌之前编号,不需要请输入“-1”,以回车结束!\n"); scanf("%d",&x); if(x==-1)break; else if((*w2).shoupai[x].leixing==210) { printf("玩家使用"); ((*w2).shoupai)[x].Kanpai(); printf("对象是"); (*p).Kanpai(); (*p)=((*w2).shoupai)[x]; qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(int i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; (*w2).Kanshoupai(); a++; break; } else printf("你确定你使用的是【无懈可击】?\n"); } } return a; } int Qiutao(wujiang*w,pai qipaidui[104],int*qipaishu) { int x; if((*w).juese) { for(;;) { printf("如果要使用【桃】请输入手牌之前的编号,不需要请输入“-1”,以回车结束!\n"); scanf("%d",&x); if(x==-1) { return -1; break; } else if((*w).shoupai[x].leixing==103) { qipaidui[*qipaishu]=((*w).shoupai)[x]; for(int i=x+1;i<=((*w).shoupaishu);i++)((*w).shoupai)[i-1]=((*w).shoupai)[i]; ((*w).shoupaishu)--; (*qipaishu)++; return 0; break; } else printf("你确定你使用的是【桃】?\n"); } } else { for(x=0;x<((*w).shoupaishu);x++) { if((*w).shoupai[x].leixing==103) { qipaidui[*qipaishu]=((*w).shoupai)[x]; for(int i=x+1;i<=((*w).shoupaishu);i++)((*w).shoupai)[i-1]=((*w).shoupai)[i]; ((*w).shoupaishu)--; (*qipaishu)++; return 0; break; } } return -1; } } int Binsi(wujiang*w1,wujiang*w2,pai qipaidui[104],int*qipaishu) { if(((*w2).tili)>0)return 0; else { int i; if((*w1).juese) { for(;;) { printf("电脑濒死,是否使用【桃】?\n"); i=Qiutao(w1,qipaidui,qipaishu); if(i==0)((*w2).tili)++; if((i==-1)||((*w2).tili>0))break; } if((*w2).tili>0)return 0; else { for(;;) { i=Qiutao(w2,qipaidui,qipaishu); if(i==0)((*w2).tili)++; if((i==-1)||((*w2).tili>0))break; } if((*w2).tili>0)return 0; else return -1; } } else { for(;;) { printf("玩家濒死,是否使用【桃】?\n"); i=Qiutao(w2,qipaidui,qipaishu); if(i==0)((*w2).tili)++; if((i==-1)||((*w2).tili>0))break; } if((*w2).tili>0)return 0; else return -1; } } } int Shan(wujiang*w1,wujiang*w2,pai paidui[104],int*paiduishu,pai qipaidui[104],int*qipaishu) { int x; if((*w2).juese) { if(((*w2).zhuangbei[1].leixing==331)&&((*w1).zhuangbei[0].leixing!=303)) { for(;;) { int m; printf("是否发动【八卦阵】防具效果?\n0 否\n1 是\n请输入选项之前的编号,以回车结束!\n"); scanf("%d",&m); if(m==1) { Panding(paidui,paiduishu,qipaidui,qipaishu); if(qipaidui[(*qipaishu)-1].huase%2) { printf("【八卦阵】判定成功!\n"); return 0; } } else if(m==0) { printf("【八卦阵】判定失败!\n"); break; } else printf("你确定你输入的是“0”或“1”?\n"); } } else if(((*w2).zhuangbei[1].leixing==331)&&((*w1).zhuangbei[0].leixing==303))printf("【青釭剑】锁定技被触发!\n"); for(;;) { printf("请输入手牌之前的编号,或者输入“-1”放弃打出【闪】,以回车结束!\n"); scanf("%d",&x); if(x==-1) { return -1; break; } else if((*w2).shoupai[x].leixing==102) { printf("玩家打出"); ((*w2).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(int i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; return 0; break; } else printf("你确定你打出的是【闪】?\n"); } } else { if(((*w2).zhuangbei[1].leixing==331)&&((*w1).zhuangbei[0].leixing!=303)) { Panding(paidui,paiduishu,qipaidui,qipaishu); if(qipaidui[(*qipaishu)-1].huase%2) { printf("【八卦阵】判定成功!\n"); return 0; } else printf("【八卦阵】判定失败!\n"); } else if(((*w2).zhuangbei[1].leixing==331)&&((*w1).zhuangbei[0].leixing==303))printf("【青釭剑】锁定技被触发!\n"); int i; for(x=0;x<((*w2).shoupaishu);x++) { if((*w2).shoupai[x].leixing==102) { printf("电脑打出"); ((*w2).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; return 0; break; } } return -1; } } int Sha(wujiang *w1,wujiang*w2,pai paidui[104],int*paiduishu,pai qipaidui[104],int*qipaishu) { int x; if((*w2).juese) { printf("请打出【闪】响应【杀】!否则你将受到1点伤害!\n"); x=Shan(w1,w2,paidui,paiduishu,qipaidui,qipaishu); if(x==-1) { int i; ((*w2).tili)--; printf("电脑对玩家造成1点伤害!\n"); i=Binsi(w1,w2,qipaidui,qipaishu); return i; } else if(x==0&&((*w1).zhuangbei[0].leixing==306)) { int i; if(((*w1).shoupaishu)>=2) { printf("电脑弃掉:\n"); ((*w1).shoupai)[0].Kanpai(); qipaidui[*qipaishu]=((*w1).shoupai)[0]; for(i=1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; ((*w1).shoupai)[0].Kanpai(); qipaidui[*qipaishu]=((*w1).shoupai)[0]; for(i=1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; printf("发动【贯石斧】武器效果使【杀】造成伤害!\n"); ((*w2).tili)--; i=Binsi(w1,w2,qipaidui,qipaishu); return i; } else return 0; } else if(x==0&&((*w1).zhuangbei[0].leixing==304)) { int i; for(x=0;x<((*w1).shoupaishu);x++) { if((*w1).shoupai[x].leixing==101) { printf("电脑发动【青龙偃月刀】效果对玩家使用"); ((*w1).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w1).shoupai)[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; i=Sha(w1,w2,paidui,paiduishu,qipaidui,qipaishu); return i; break; } } return 0; } } else { x=Shan(w1,w2,paidui,paiduishu,qipaidui,qipaishu); if(x==-1) { if((*w1).zhuangbei[0].leixing==308) { for(;;) { printf("是否发动【麒麟弓】武器效果?\n0 否\n1 是\n"); scanf("%d",&x); if(x==1) { if(((*w2).zhuangbei[2].leixing==-1)&&((*w2).zhuangbei[3].leixing==-1)) { printf("电脑根本没有马,射你妹的马啊!\n"); break; } else { for(;;) { printf("0 "); ((*w2).zhuangbei[2]).Kanpai(); printf("1 "); ((*w2).zhuangbei[3]).Kanpai(); printf("请选择要弃掉的马,输入之前的编号,以回车结束!\n"); scanf("%d",&x); if((x==0)&&((*w2).zhuangbei[2].leixing!=-1)) { printf("你弃掉了电脑的"); ((*w2).zhuangbei)[2].Kanpai(); qipaidui[*qipaishu]=((*w2).zhuangbei)[2]; ((*w2).zhuangbeishu)--; (*qipaishu)++; ((*w2).zhuangbei)[2].leixing=-1; ((*w2).juli[0])++; break; } else if((x==1)&&((*w2).zhuangbei[3].leixing!=-1)) { printf("你弃掉了电脑的"); ((*w2).zhuangbei)[3].Kanpai(); qipaidui[*qipaishu]=((*w2).zhuangbei)[3]; ((*w2).zhuangbeishu)--; (*qipaishu)++; ((*w2).zhuangbei)[3].leixing=-1; ((*w1).juli[0])--; break; } else printf("射你妹的马!"); } break; } } else if(x==0)break; else printf("键盘上的“0”和“1”被你吃了吗?\n"); } } int i; ((*w2).tili)--; printf("玩家对电脑造成1点伤害!\n"); i=Binsi(w1,w2,qipaidui,qipaishu); return i; } else if(x==0&&((*w1).zhuangbei[0].leixing==306)) { for(;;) { printf("是否发动【贯石斧】武器效果?\n0 否\n1 是\n"); scanf("%d",&x); if(x==1) { int i; if((*w1).shoupaishu+(*w1).zhuangbeishu<=2) { printf("你除了【贯石斧】以外连2张牌都没有,发动你妹的效果!\n"); break; } else { printf("请分别弃掉两张牌!\n"); for(i=0;i<=2;i++) { for(;;) { printf("请选择区域:\n0 手牌\n1 装备\n"); scanf("%d",&x); if(x==0&&((*w1).shoupaishu==0))printf("你根本没有手牌,弃你妹啊!\n"); else if(x==1&&((*w1).zhuangbeishu==1))printf("你根本没有别的装备,弃你妹啊!\n"); else if(x>=0&&x<=1)break; else printf("键盘上的“0”和“1”被你吃了吗?\n"); } if(x==0) { for(;;) { (*w1).Kanshoupai(); printf("弃牌请输入手牌之前的编号,以回车结束!\n"); scanf("%d",&x); if(x>=0&&x<((*w1).shoupaishu))break; else printf("弃你妹的手牌!\n"); } printf("你弃掉了"); ((*w1).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w1).shoupai)[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; } else { for(;;) { (*w1).Kanzhuangbei(); printf("请输入装备之前的编号,以回车键结束!\n"); scanf("%d",&x); if((((*w1).zhuangbei[x]).leixing!=-1)&&(x>=0)&&(x<=3)) { printf("你弃掉了"); ((*w1).zhuangbei)[x].Kanpai(); qipaidui[*qipaishu]=((*w1).zhuangbei)[x]; ((*w1).zhuangbeishu)--; (*qipaishu)++; ((*w1).zhuangbei)[x].leixing=-1; break; } else printf("弃你妹的装备!\n"); } } } } printf("玩家发动【贯石斧】武器效果使【杀】造成伤害!\n"); ((*w2).tili)--; i=Binsi(w1,w2,qipaidui,qipaishu); return i; break; } else if(x==0)break; else printf("键盘上的“0”和“1”被你吃了吗?\n"); } } else if(x==0&&((*w1).zhuangbei[0].leixing==304)) { for(;;) { printf("是否发动【青龙偃月刀】武器效果?\n0 否\n1 是\n"); scanf("%d",&x); if(x==1) { for(;;) { printf("请对电脑使用一张【杀】!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n"); (*w1).Kanshoupai(); scanf("%d",&x); if(x==-1) { return 0; break; } else if((*w1).shoupai[x].leixing==101) { int i; printf("玩家对电脑使用"); ((*w1).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w1).shoupai)[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; i=Sha(w1,w2,paidui,paiduishu,qipaidui,qipaishu); return i; break; } else printf("你确定你打出的是【杀】?\n"); } } else if(x==0) { return 0; break; } else printf("你确定你输入的是“0”或“1”?\n"); } } else return 0; } return 0; } void Tao(wujiang*w1) { ((*w1).tili)++; if((*w1).juese)printf("玩家"); else printf("电脑"); printf("恢复了1点体力!\n"); if(((*w1).tili)>((*w1).tilishangxian))printf("你被撑死了!\n"); } void Chai(wujiang*w1,wujiang*w2,pai qipaidui[104],int*qipaishu) { int i,x,y; if((*w1).juese) { for(;;) { if((*w2).shoupaishu+(*w2).zhuangbeishu+(*w2).pandingshu==0) { printf("对方空城,拆你妹啊!\n"); break; } else { printf("请选择想拆的区域,输入选项之前的编号,以回车结束!\n0 手牌\n1 装备区\n2 判定区\n"); scanf("%d",&x); if(x==0&&((*w2).shoupaishu==0))printf("你拆掉了一张空气!\n"); else if(x==1&&((*w2).zhuangbeishu==0))printf("你拆掉了一张空气!\n"); else if(x==2&&((*w2).pandingshu==0))printf("你拆掉了一张空气!\n"); else if(x>=0&&x<=2)break; else printf("你拆掉了太空区里的一张牌!\n"); } } switch(x) { case 0: srand((unsigned)time(NULL)); y=rand()%((*w2).shoupaishu); printf("你弃掉了电脑的"); ((*w2).shoupai)[y].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[y]; for(i=y+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; break; case 1: for(;;) { (*w2).Kanzhuangbei(); printf("请输入装备之前的编号,以回车键结束!\n"); scanf("%d",&y); if((((*w2).zhuangbei[y]).leixing!=-1)&&(y>=0)&&(y<=3)) { printf("你弃掉了电脑的"); ((*w2).zhuangbei)[y].Kanpai(); qipaidui[*qipaishu]=((*w2).zhuangbei)[y]; ((*w2).zhuangbeishu)--; (*qipaishu)++; ((*w2).zhuangbei)[y].leixing=-1; if(!y)((*w2).zhuangbei)[y].changdu=1; else if(y==2)((*w2).juli[0])++; else if(y==3)((*w1).juli[0])--; break; } else printf("你弃掉了一张空气!\n"); } break; case 2: for(;;) { (*w2).Kanpandingpai(); printf("请输入判定牌之前的编号,以回车键结束!\n"); scanf("%d",&y); if((*w2).pandingpai[y].leixing!=-1) { printf("你弃掉了电脑的"); ((*w2).pandingpai)[y].Kanpai(); qipaidui[*qipaishu]=((*w2).pandingpai)[y]; ((*w2).pandingshu)--; (*qipaishu)++; ((*w2).pandingpai)[y].leixing=-1; break; } else printf("你弃掉了一张空气!\n"); } break; default:break; } } else { if((*w2).zhuangbeishu) { if((*w2).zhuangbei[1].leixing!=-1) { printf("电脑弃掉了玩家的"); ((*w2).zhuangbei)[1].Kanpai(); qipaidui[*qipaishu]=((*w2).zhuangbei)[1]; ((*w2).zhuangbeishu)--; (*qipaishu)++; ((*w2).zhuangbei)[1].leixing=-1; } else if((*w2).zhuangbei[3].leixing!=-1) { printf("电脑弃掉了玩家的"); ((*w2).zhuangbei)[3].Kanpai(); qipaidui[*qipaishu]=((*w2).zhuangbei)[3]; ((*w2).zhuangbeishu)--; (*qipaishu)++; ((*w2).zhuangbei)[3].leixing=-1; ((*w1).juli[0])--; } else if((*w2).zhuangbei[0].leixing!=-1) { printf("电脑弃掉了玩家的"); ((*w2).zhuangbei)[0].Kanpai(); qipaidui[*qipaishu]=((*w2).zhuangbei)[0]; ((*w2).zhuangbeishu)--; (*qipaishu)++; ((*w2).zhuangbei)[0].leixing=-1; ((*w2).zhuangbei)[0].changdu=1; } else { printf("电脑弃掉了玩家的"); ((*w2).zhuangbei)[2].Kanpai(); qipaidui[*qipaishu]=((*w2).zhuangbei)[2]; ((*w2).zhuangbeishu)--; (*qipaishu)++; ((*w2).zhuangbei)[2].leixing=-1; ((*w2).juli[0])++; } } else { srand((unsigned)time(NULL)); y=rand()%((*w2).shoupaishu); printf("电脑弃掉了玩家的手牌"); ((*w2).shoupai)[y].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[y]; for(i=y+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; } } } void Qian(wujiang *w1,wujiang *w2) { int i,x,y; if((*w1).juese) { for(;;) { if((*w2).shoupaishu+(*w2).zhuangbeishu+(*w2).pandingshu==0) { printf("对方空城啦!你牵走了一张寂寞!\n"); break; } else { printf("请选择想牵的区域,输入选项之前的编号,以回车结束!\n0 手牌\n1 装备区\n2 判定区\n"); scanf("%d",&x); if(x==0&&((*w2).shoupaishu==0))printf("你牵走了一张空气!\n"); else if(x==1&&((*w2).zhuangbeishu==0))printf("你牵走了一张空气!\n"); else if(x==2&&((*w2).pandingshu==0))printf("你牵走了一张空气!\n"); else if(x>=0&&x<=2)break; else printf("你牵走了太空区里的一张牌!\n"); } } switch(x) { case 0: srand((unsigned)time(NULL)); y=rand()%((*w2).shoupaishu); printf("你牵走了电脑的"); ((*w2).shoupai)[y].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).shoupai)[y]; for(i=y+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; ((*w1).shoupaishu)++; break; case 1: for(;;) { (*w2).Kanzhuangbei(); printf("请输入装备之前的编号,以回车键结束!\n"); scanf("%d",&y); if((((*w2).zhuangbei[y]).leixing!=-1)&&(y>=0)&&(y<=3)) { printf("你牵走了电脑的"); ((*w2).zhuangbei)[y].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).zhuangbei)[y]; ((*w2).zhuangbeishu)--; ((*w1).shoupaishu)++; ((*w2).zhuangbei)[y].leixing=-1; if(!y)((*w2).zhuangbei[y]).changdu=1; else if(y==2)((*w2).juli[0])++; else if(y==3)((*w1).juli[0])--; break; } else printf("你弃掉了一张空气!\n"); } break; case 2: for(;;) { (*w2).Kanpandingpai(); printf("请输入判定牌之前的编号,以回车键结束!\n"); scanf("%d",&y); if((*w2).pandingpai[y].leixing!=-1) { printf("你牵走了电脑的"); ((*w2).pandingpai)[y].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).pandingpai)[y]; ((*w2).pandingshu)--; ((*w1).shoupaishu)++; ((*w2).pandingpai)[y].leixing=-1; break; } else printf("你牵走了一张空气!\n"); } break; default:break; } } else { if((*w2).zhuangbeishu) { if((*w2).zhuangbei[1].leixing!=-1) { printf("电脑牵走了玩家的"); ((*w2).zhuangbei)[1].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).zhuangbei)[1]; ((*w2).zhuangbeishu)--; ((*w1).shoupaishu)++; ((*w2).zhuangbei)[1].leixing=-1; } else if((*w2).zhuangbei[3].leixing!=-1) { printf("电脑牵走了玩家的"); ((*w2).zhuangbei)[3].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).zhuangbei)[3]; ((*w2).zhuangbeishu)--; ((*w1).shoupaishu)++; ((*w2).zhuangbei)[3].leixing=-1; ((*w1).juli[0])--; } else if((*w2).zhuangbei[0].leixing!=-1) { printf("电脑牵走了玩家的"); ((*w2).zhuangbei)[0].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).zhuangbei)[0]; ((*w2).zhuangbeishu)--; ((*w1).shoupaishu)++; ((*w2).zhuangbei)[0].leixing=-1; ((*w2).zhuangbei)[0].changdu=1; } else { printf("电脑牵走了玩家的"); ((*w2).zhuangbei)[2].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).zhuangbei)[2]; ((*w2).zhuangbeishu)--; ((*w1).shoupaishu)++; ((*w2).zhuangbei)[2].leixing=-1; ((*w2).juli[0])--; } } else { srand((unsigned)time(NULL)); y=rand()%((*w2).shoupaishu); printf("电脑牵走了玩家的手牌"); ((*w2).shoupai)[y].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).shoupai)[y]; for(i=y+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; ((*w1).shoupaishu)++; } } } void Wuzhong(wujiang*w1,pai A[104],int *x,pai B[104],int*y) { Mopai(&((*w1).shoupaishu),(*w1).shoupai,A,x,B,y,(*w1).juese); } int Juedou(wujiang*w1,wujiang*w2,pai qipaidui[104],int*qipaishu) { int i,j,x; if((*w1).juese) { for(;;) { j=0; for(x=0;x<((*w2).shoupaishu);x++) { if((*w2).shoupai[x].leixing==101) { printf("电脑打出"); ((*w2).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(int i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; j=1; break; } } if(!j) { printf("玩家对电脑造成1点伤害!\n"); ((*w2).tili)--; i=Binsi(w1,w2,qipaidui,qipaishu); return i; break; } j=0; for(;;) { printf("请打出一张【杀】响应【决斗】,否则你将受到1点伤害!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n"); if(((*w1).zhuangbei[0].leixing==305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n"); (*w1).Kanshoupai(); scanf("%d",&x); if(x==-1) { int i; ((*w1).tili)--; printf("电脑对玩家造成1点伤害!\n"); i=Binsi(w2,w1,qipaidui,qipaishu); return i; break; } else if(((*w1).zhuangbei[0].leixing==305)&&x==100) { pai p=Zhangba(w1,qipaidui,qipaishu); p.paifu=-1; printf("打出!\n"); j=1; break; } else if((*w1).shoupai[x].leixing==101) { printf("玩家打出"); ((*w1).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w1).shoupai)[x]; for(i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; j=1; break; } else printf("你确定你打出的是【杀】?\n"); } } } else { for(;;) { j=0; for(;;) { printf("请打出一张【杀】响应【决斗】,否则你将受到1点伤害!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n"); if(((*w1).zhuangbei[0].leixing==305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n"); (*w2).Kanshoupai(); scanf("%d",&x); if(x==-1) { int i; ((*w2).tili)--; printf("电脑对玩家造成1点伤害!\n"); i=Binsi(w1,w2,qipaidui,qipaishu); return i; break; } else if(((*w2).zhuangbei[0].leixing==305)&&x==100) { pai p=Zhangba(w2,qipaidui,qipaishu); p.paifu=-1; printf("打出!\n"); j=1; break; } else if((*w2).shoupai[x].leixing==101) { printf("玩家打出"); ((*w2).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; j=1; break; } else printf("你确定你打出的是【杀】?\n"); } j=0; for(x=0;x<((*w1).shoupaishu);x++) { if((*w1).shoupai[x].leixing==101) { printf("电脑打出"); ((*w1).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w1).shoupai)[x]; for(int i=x+1;i<=((*w1).shoupaishu);i++)((*w1).shoupai)[i-1]=((*w1).shoupai)[i]; ((*w1).shoupaishu)--; (*qipaishu)++; j=1; break; } } if(!j) { printf("玩家对电脑造成1点伤害!\n"); ((*w2).tili)--; i=Binsi(w2,w1,qipaidui,qipaishu); return i; break; } } } } int Jiedao(wujiang*w1,wujiang*w2,pai paidui[104],int*paiduishu,pai qipaidui[104],int*qipaishu) { int i,j=0,x; if((*w1).juese) { for(x=0;x<((*w2).shoupaishu);x++) { if((*w2).shoupai[x].leixing==101) { printf("电脑对玩家使用"); ((*w2).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(int i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; j=1; break; } } if(j) { i=Sha(w2,w1,paidui,paiduishu,qipaidui,qipaishu); return i; printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w1).tili,(*w1).tilishangxian,(*w2).tili,(*w2).tilishangxian); } else { printf("电脑放弃使用【杀】,玩家获得电脑的武器"); (*w2).zhuangbei[0].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).zhuangbei)[0]; ((*w2).zhuangbeishu)--; ((*w1).shoupaishu)++; ((*w2).zhuangbei)[0].leixing=-1; ((*w2).zhuangbei)[0].changdu=1; (*w1).Kanshoupai(); return 0; } } else { for(;;) { printf("请对电脑使用一张【杀】,否则电脑将获得你的武器!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n"); if(((*w2).zhuangbei[0].leixing==305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n"); (*w2).Kanshoupai(); scanf("%d",&x); if(x==-1)break; else if(((*w2).zhuangbei[0].leixing==305)&&x==100) { pai p=Zhangba(w2,qipaidui,qipaishu); p.paifu=-1; printf("使用!\n"); j=1; break; } else if((*w2).shoupai[x].leixing==101) { printf("玩家对电脑使用"); ((*w2).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; j=1; break; } else printf("你确定你使用的是【杀】?\n"); } if(j) { i=Sha(w2,w1,paidui,paiduishu,qipaidui,qipaishu); return i; printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w2).tili,(*w2).tilishangxian,(*w1).tili,(*w1).tilishangxian); } else { printf("玩家放弃使用【杀】,电脑获得玩家的武器"); ((*w2).zhuangbei)[0].Kanpai(); (*w1).shoupai[(*w1).shoupaishu]=((*w2).zhuangbei)[0]; ((*w2).zhuangbeishu)--; ((*w1).shoupaishu)++; ((*w2).zhuangbei)[0].leixing=-1; ((*w2).zhuangbei)[0].changdu=1; return 0; } } } void Taoyuan(wujiang*w) { if((*w).tili<(*w).tilishangxian) { ((*w).tili)++; if((*w).juese)printf("玩家"); else printf("电脑"); printf("恢复1点体力!\n"); } } void Kaipai(pai paidui[104],int* paiduishu,int renshu,pai wugu[10]) { int i; printf("五谷丰登开牌:\n"); for(i=1;i<=renshu;i++) { wugu[i-1]=paidui[104-(*paiduishu)]; (*paiduishu)--; printf("%d ",i-1); wugu[i-1].Kanpai(); } } void Qupai(pai wugu[10],wujiang*w) { int i,x; printf("五谷丰登开牌:\n"); for(i=0;(wugu[i].leixing)!=-1;i++) { printf("%d ",i); wugu[i].Kanpai(); } if((*w).juese) { for(;;) { printf("请选择你想要的卡牌,输入卡牌之前的编号,以回车结束!\n"); scanf("%d",&x); if(wugu[x].leixing!=-1) { printf("玩家选择"); wugu[x].Kanpai(); (*w).shoupai[(*w).shoupaishu]=wugu[x]; ((*w).shoupaishu)++; for(i=x+1;i<=9;i++)wugu[i-1]=wugu[i]; wugu[9].leixing=-1; break; } printf("你选择了一张空气加入手牌!"); } } else { printf("电脑选择"); wugu[0].Kanpai(); (*w).shoupai[(*w).shoupaishu]=wugu[0]; ((*w).shoupaishu)++; for(i=1;i<=9;i++)wugu[i-1]=wugu[i]; wugu[9].leixing=-1; } } void Rengpai(pai wugu[10],pai qipaidui[104],int*qipaishu) { int i; for(i=0;wugu[i].leixing!=-1;i++) { qipaidui[*qipaishu]=wugu[i]; (*qipaishu)++; wugu[i].leixing=-1; } } int Nanman(wujiang*w1,wujiang*w2,pai qipaidui[104],int*qipaishu) { int i,x; if((*w1).juese) { for(x=0;x<((*w2).shoupaishu);x++) { if((*w2).shoupai[x].leixing==101) { printf("电脑打出"); ((*w2).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(int i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; return 0; break; } } printf("玩家对电脑造成1点伤害!\n"); ((*w2).tili)--; i=Binsi(w1,w2,qipaidui,qipaishu); return i; } else { for(;;) { printf("请打出一张【杀】响应【南蛮入侵】,否则你将受到1点伤害!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n"); if(((*w2).zhuangbei[0].leixing==305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n"); (*w2).Kanshoupai(); scanf("%d",&x); if(x==-1) { int i; ((*w2).tili)--; printf("电脑对玩家造成1点伤害!\n"); i=Binsi(w1,w2,qipaidui,qipaishu); return i; break; } else if(((*w2).zhuangbei[0].leixing==305)&&x==100) { pai p=Zhangba(w2,qipaidui,qipaishu); p.paifu=-1; printf("使用!\n"); return 0; break; } else if((*w2).shoupai[x].leixing==101) { printf("玩家打出"); ((*w2).shoupai)[x].Kanpai(); qipaidui[*qipaishu]=((*w2).shoupai)[x]; for(i=x+1;i<=((*w2).shoupaishu);i++)((*w2).shoupai)[i-1]=((*w2).shoupai)[i]; ((*w2).shoupaishu)--; (*qipaishu)++; return 0; break; } else printf("你确定你打出的是【杀】?\n"); } } } int Wanjian(wujiang*w1,wujiang*w2,pai paidui[104],int*paiduishu,pai qipaidui[104],int*qipaishu) { int i; i=Shan(w1,w2,paidui,paiduishu,qipaidui,qipaishu); if(i==-1) { i=Binsi(w1,w2,qipaidui,qipaishu); return i; } else return 0; } int Chupai(pai paidui[104],pai qipaidui[104],int *paiduishu,int*qipaishu,wujiang*w1,wujiang*w2,pai yuanshipaidui[2][4][13]) { pai p1; int sha=1;int y=-1,i,t=((*w1).shoupaishu)-1; for(;;t--) { if((*w1).juese) { printf("\n电脑当前手牌数:%d\n",((*w2).shoupaishu)); (*w2).Kanzhuangbei(); (*w1).Kanshoupai(); (*w1).Kanzhuangbei(); } int j=0; if((*w1).juese&&((*w1).zhuangbei[0].leixing==305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n"); y=Xuanpai(w1,t); p1=Panpai(w1,&sha,y,qipaidui,qipaishu); if((p1).leixing==-1)break; else if((p1).leixing==0)continue; else { int duixiang; duixiang=Mubiao(p1,w1,w2,&sha); if(duixiang==-2)continue; else { Da1pai(w1,w2,qipaidui,qipaishu,y); Miaoshu(p1,((*w1).juese),duixiang); if(!((*w1).juese)) { printf("\n电脑当前手牌数:%d\n",((*w1).shoupaishu)); (*w1).Kanzhuangbei(); (*w2).Kanshoupai(); (*w2).Kanzhuangbei(); } switch(p1.leixing) { case 101: i=Sha(w1,w2,paidui,paiduishu,qipaidui,qipaishu); if(i==-1){return -1;break;} if((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w1).tili,(*w1).tilishangxian,(*w2).tili,(*w2).tilishangxian); else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w2).tili,(*w2).tilishangxian,(*w1).tili,(*w1).tilishangxian); break; case 103: Tao(w1); break; case 201: for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2))Chai(w1,w2,qipaidui,qipaishu); else; if((*w1).juese)(*w1).Kanshoupai(); break; case 202: for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2))Qian(w1,w2); else; if((*w1).juese)(*w1).Kanshoupai(); break; case 203: for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2))Wuzhong(w1,paidui,paiduishu,qipaidui,qipaishu); else; break; case 204: for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2)) { i=Juedou(w1,w2,qipaidui,qipaishu); if(i==-1)return -1; if((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w1).tili,(*w1).tilishangxian,(*w2).tili,(*w2).tilishangxian); else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w2).tili,(*w2).tilishangxian,(*w1).tili,(*w1).tilishangxian); } break; case 205: for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2)) { i=Jiedao(w1,w2,paidui,paiduishu,qipaidui,qipaishu); if(i==-1)return -1; if((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w1).tili,(*w1).tilishangxian,(*w2).tili,(*w2).tilishangxian); else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w2).tili,(*w2).tilishangxian,(*w1).tili,(*w1).tilishangxian); } break; case 206: for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2))Taoyuan(w1); j=0; for(;;) { i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2))Taoyuan(w2); break; case 207: pai wugu[10]; for(i=1;i<=10;i++)wugu[i-1].leixing=-1; Kaipai(paidui,paiduishu,2,wugu); for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2))Qupai(wugu,w1); for(;;) { i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2))Qupai(wugu,w2); Rengpai(wugu,qipaidui,qipaishu); printf("弃牌数:%d\n",*qipaishu); break; case 208: for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2)) { i=Nanman(w1,w2,qipaidui,qipaishu); if(i==-1)return -1; if((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w1).tili,(*w1).tilishangxian,(*w2).tili,(*w2).tilishangxian); else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w2).tili,(*w2).tilishangxian,(*w1).tili,(*w1).tilishangxian); } break; case 209: for(;;) { i=Wuxie(&p1,w1,w2,qipaidui,qipaishu,0); if(!i)break; j++; i=Wuxie(&p1,w2,w1,qipaidui,qipaishu,0); if(!i)break; j++; } if(!(j%2)) { i=Wanjian(w1,w2,paidui,paiduishu,qipaidui,qipaishu); if(i==-1)return -1; if((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w1).tili,(*w1).tilishangxian,(*w2).tili,(*w2).tilishangxian); else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n",(*w2).tili,(*w2).tilishangxian,(*w1).tili,(*w1).tilishangxian); } break; case 361: case 362: case 363: ((*w1).juli[0])--;break; case 381: case 382: case 383: ((*w2).juli[0])++;break; default:break; } printf("\n"); } } } return 0; } void Qipai(pai shoupai[20],int *shoupaishu,pai qipaidui[104],int *qipaishu,int juese,int *shoupaishangxian) { int x; if((*shoupaishu)>(*shoupaishangxian)) { if(juese!=1&&juese!=0)printf("身份参数错误!"); int q=(*shoupaishu)-(*shoupaishangxian); int i,j; for(j=1;j<=q;j++) { for(;;) { if(juese) { printf("弃牌请输入手牌之前的编号,以回车结束!\n注:一次只能弃一张牌\n"); printf("手牌数:%d\n",*shoupaishu); scanf("%d",&x); if(x>=0&&x<(*shoupaishu))break; else printf("你弃掉了一张空气!\n"); } else { srand((unsigned)time(NULL)); x=rand()%(*shoupaishu); break; } } qipaidui[*qipaishu]=shoupai[x]; for(i=x+1;i<=(*shoupaishu);i++)shoupai[i-1]=shoupai[i]; (*shoupaishu)--; if(juese)printf("弃牌阶段玩家弃置"); else printf("弃牌阶段电脑弃置"); qipaidui[*qipaishu].Kanpai(); (*qipaishu)++; int m; if(juese) { printf("玩家当前手牌:\n"); for(m=0;m<=(*shoupaishu-1);m++) { printf("%d ",m); (shoupai[m]).Kanpai(); } } printf("弃牌堆:%d\n",*qipaishu); } } } int Huihe(pai A[104],pai B[104],int *x,int *y,pai yuanshipaidui[2][4][13],wujiang *w1,wujiang *w2) { printf("\n回合开始阶段……\n"); switch((*w1).huihekaishi) { case 0:break; default:printf("回合开始阶段参数错误!\n");break; } printf("判定阶段……\n"); int K=0; if((*w1).pandingshu>0) { int i,j; for(;(*w1).pandingshu;) { switch((*w1).pandingpai[0].leixing) { case 251:printf("【乐不思蜀】开始判定……\n"); break; case 252:printf("【闪电】开始判定……\n");break; default:printf("【??】开始判定……\n");break; } j=0; pai p=((*w1).pandingpai[0]); for(;;)//在判定之前询问【无懈】 { i=Wuxie(&p,w2,w1,B,y,0); if(!i)break; j++; i=Wuxie(&p,w1,w2,B,y,0); if(!i)break; j++; } switch((*w1).pandingpai[0].leixing) { case 251: if(!(j%2)) { printf("【乐不思蜀】的判定牌是:"); Panding(A,x,B,y); if((B[(*y)-1].huase)!=1) { printf("【乐不思蜀】判定成功!\n"); if((*w1).juese)printf("玩家"); else printf("电脑"); printf("跳过出牌阶段!\n"); K=-1; } else printf("【乐不思蜀】判定失败!\n"); } B[*y]=(*w1).pandingpai[0]; ((*w1).pandingshu)--; (*w1).pandingpai[0]=(*w1).pandingpai[1]; (*w1).pandingpai[1]=(*w1).pandingpai[2]; (*w1).pandingpai[2].leixing=-1; (*y)++; break; case 252: if(!(j%2)) { printf("【闪电】的判定牌是:"); Panding(A,x,B,y); if((B[(*y)-1].huase==0)&&(B[(*y)-1].dianshu>=1)&&(B[(*y)-1].dianshu<=8)) { printf("【闪电】判定成功!\n"); if((*w1).juese)printf("玩家"); else printf("电脑"); printf("受到3点雷电伤害!"); ((*w1).tili)=((*w1).tili)-3; i=Binsi(w2,w1,B,y); B[*y]=(*w1).pandingpai[0]; ((*w1).pandingshu)--; (*w1).pandingpai[0]=(*w1).pandingpai[1]; (*w1).pandingpai[1]=(*w1).pandingpai[2]; (*w1).pandingpai[2].leixing=-1; (*y)++; if(i==-1)return -1; } else { printf("【闪电】判定失败!\n"); (*w2).pandingpai[2]=(*w2).pandingpai[1]; (*w2).pandingpai[1]=(*w2).pandingpai[0]; (*w2).pandingpai[0]=(*w1).pandingpai[0]; (*w1).pandingpai[0]=(*w1).pandingpai[1]; (*w1).pandingpai[1]=(*w1).pandingpai[2]; (*w1).pandingpai[2].leixing=-1; ((*w1).pandingshu)--; ((*w2).pandingshu)++; } break; } default:printf("判定牌错误!"); } printf("弃牌数:%d\n",*y); } } else if(!((*w1).pandingshu)); else printf("判定阶段参数错误!\n"); printf("摸牌阶段……\n"); switch((*w1).mopai) { case 0:Mopai(&((*w1).shoupaishu),(*w1).shoupai,A,x,B,y,(*w1).juese);break; case -1:break; default:printf("摸牌阶段参数错误!\n");break; } if(K==-1)goto M; printf("出牌阶段……\n"); switch((*w1).chupai) { case 0: { int i; i=Chupai(A,B,x,y,w1,w2,yuanshipaidui); if(i==-1) { return -1; break; } else break; } case -1:break; default:printf("出牌阶段参数错误!\n");break; } M: printf("弃牌阶段……\n"); switch((*w1).qipai) { case 0: Qipai((*w1).shoupai,&((*w1).shoupaishu),B,y,(*w1).juese,&((*w1).tili));break; default:printf("弃牌阶段参数错误!\n");break; } printf("回合结束阶段……\n"); switch((*w1).huihejieshu) { case 0:break; default:printf("回合结束阶段参数错误!\n");break; } return 0; } int main() { void Kanshoupai(pai p); pai yuanshipaidui[2][4][13],qipaidui[104],paidui[104]; wujiang wanjia,com; com.tili=wanjia.tili=5; com.tilishangxian=wanjia.tilishangxian=5; com.huihekaishi=wanjia.huihekaishi=0; com.panding=wanjia.panding=0; com.mopai=wanjia.mopai=0; com.chupai=wanjia.chupai=0; com.qipai=wanjia.qipai=0; com.huihejieshu=wanjia.huihejieshu=0; com.shoupaishu=wanjia.shoupaishu=0; com.pandingshu=wanjia.pandingshu=0; com.zhuangbeishu=wanjia.zhuangbeishu=0; com.juese=0;wanjia.juese=1; pai p; p.leixing=-1; com.zhuangbei[0]=com.zhuangbei[1]=com.zhuangbei[2]=com.zhuangbei[3]=wanjia.zhuangbei[0]=wanjia.zhuangbei[1]=wanjia.zhuangbei[2]=wanjia.zhuangbei[3]=p; com.zhuangbei[0].changdu=wanjia.zhuangbei[0].changdu=1; com.pandingpai[0]=com.pandingpai[1]=com.pandingpai[2]=wanjia.pandingpai[0]=wanjia.pandingpai[1]=wanjia.pandingpai[2]=p; com.juli[0]=wanjia.juli[0]=1; int a,b,c; for(a=0;a<=1;a++) { for(b=0;b<=3;b++) { for(c=0;c<=12;c++) { yuanshipaidui[a][b][c].paifu=a; yuanshipaidui[a][b][c].huase=b; yuanshipaidui[a][b][c].dianshu=c; } } } yuanshipaidui[0][0][0].leixing=204; yuanshipaidui[0][0][1].leixing=331; yuanshipaidui[0][0][2].leixing=201; yuanshipaidui[0][0][3].leixing=201; yuanshipaidui[0][0][4].leixing=304;yuanshipaidui[0][0][4].changdu=3; yuanshipaidui[0][0][5].leixing=251; yuanshipaidui[0][0][6].leixing=101; yuanshipaidui[0][0][7].leixing=101; yuanshipaidui[0][0][8].leixing=101; yuanshipaidui[0][0][9].leixing=101; yuanshipaidui[0][0][10].leixing=202; yuanshipaidui[0][0][11].leixing=201; yuanshipaidui[0][0][12].leixing=208; yuanshipaidui[0][1][0].leixing=209; yuanshipaidui[0][1][1].leixing=102; yuanshipaidui[0][1][2].leixing=103; yuanshipaidui[0][1][3].leixing=103; yuanshipaidui[0][1][4].leixing=308;yuanshipaidui[0][1][4].changdu=5; yuanshipaidui[0][1][5].leixing=103; yuanshipaidui[0][1][6].leixing=103; yuanshipaidui[0][1][7].leixing=103; yuanshipaidui[0][1][8].leixing=103; yuanshipaidui[0][1][9].leixing=101; yuanshipaidui[0][1][10].leixing=101; yuanshipaidui[0][1][11].leixing=103; yuanshipaidui[0][1][12].leixing=102; yuanshipaidui[0][2][0].leixing=204; yuanshipaidui[0][2][1].leixing=101; yuanshipaidui[0][2][2].leixing=101; yuanshipaidui[0][2][3].leixing=101; yuanshipaidui[0][2][4].leixing=101; yuanshipaidui[0][2][5].leixing=101; yuanshipaidui[0][2][6].leixing=101; yuanshipaidui[0][2][7].leixing=101; yuanshipaidui[0][2][8].leixing=101; yuanshipaidui[0][2][9].leixing=101; yuanshipaidui[0][2][10].leixing=101; yuanshipaidui[0][2][11].leixing=205; yuanshipaidui[0][2][12].leixing=205; yuanshipaidui[0][3][0].leixing=204; yuanshipaidui[0][3][1].leixing=102; yuanshipaidui[0][3][2].leixing=102; yuanshipaidui[0][3][3].leixing=102; yuanshipaidui[0][3][4].leixing=102; yuanshipaidui[0][3][5].leixing=101; yuanshipaidui[0][3][6].leixing=101; yuanshipaidui[0][3][7].leixing=101; yuanshipaidui[0][3][8].leixing=101; yuanshipaidui[0][3][9].leixing=101; yuanshipaidui[0][3][10].leixing=102; yuanshipaidui[0][3][11].leixing=103; yuanshipaidui[0][3][12].leixing=101; yuanshipaidui[1][0][0].leixing=252; yuanshipaidui[1][0][1].leixing=302;yuanshipaidui[1][0][1].changdu=2; yuanshipaidui[1][0][2].leixing=202; yuanshipaidui[1][0][3].leixing=202; yuanshipaidui[1][0][4].leixing=383; yuanshipaidui[1][0][5].leixing=303;yuanshipaidui[1][0][5].changdu=2; yuanshipaidui[1][0][6].leixing=208; yuanshipaidui[1][0][7].leixing=101; yuanshipaidui[1][0][8].leixing=101; yuanshipaidui[1][0][9].leixing=101; yuanshipaidui[1][0][10].leixing=210; yuanshipaidui[1][0][11].leixing=305;yuanshipaidui[1][0][11].changdu=3; yuanshipaidui[1][0][12].leixing=362; yuanshipaidui[1][1][0].leixing=206; yuanshipaidui[1][1][1].leixing=102; yuanshipaidui[1][1][2].leixing=207; yuanshipaidui[1][1][3].leixing=207; yuanshipaidui[1][1][4].leixing=361; yuanshipaidui[1][1][5].leixing=251; yuanshipaidui[1][1][6].leixing=203; yuanshipaidui[1][1][7].leixing=203; yuanshipaidui[1][1][8].leixing=203; yuanshipaidui[1][1][9].leixing=101; yuanshipaidui[1][1][10].leixing=203; yuanshipaidui[1][1][11].leixing=201; yuanshipaidui[1][1][12].leixing=381; yuanshipaidui[1][2][0].leixing=301;yuanshipaidui[1][2][0].changdu=1; yuanshipaidui[1][2][1].leixing=331; yuanshipaidui[1][2][2].leixing=201; yuanshipaidui[1][2][3].leixing=201; yuanshipaidui[1][2][4].leixing=382; yuanshipaidui[1][2][5].leixing=251; yuanshipaidui[1][2][6].leixing=208; yuanshipaidui[1][2][7].leixing=101; yuanshipaidui[1][2][8].leixing=101; yuanshipaidui[1][2][9].leixing=101; yuanshipaidui[1][2][10].leixing=101; yuanshipaidui[1][2][11].leixing=210; yuanshipaidui[1][2][12].leixing=210; yuanshipaidui[1][3][0].leixing=301;yuanshipaidui[1][3][0].changdu=1; yuanshipaidui[1][3][1].leixing=102; yuanshipaidui[1][3][2].leixing=202; yuanshipaidui[1][3][3].leixing=202; yuanshipaidui[1][3][4].leixing=306;yuanshipaidui[1][3][4].changdu=3; yuanshipaidui[1][3][5].leixing=102; yuanshipaidui[1][3][6].leixing=102; yuanshipaidui[1][3][7].leixing=102; yuanshipaidui[1][3][8].leixing=102; yuanshipaidui[1][3][9].leixing=102; yuanshipaidui[1][3][10].leixing=102; yuanshipaidui[1][3][11].leixing=307;yuanshipaidui[1][3][11].changdu=4; yuanshipaidui[1][3][12].leixing=363; int paiduishu=104; int qipaishu=0; printf("游戏开始!\n"); Qishixipai(yuanshipaidui,paidui); Qishishoupai(&wanjia,paidui,&(paiduishu),qipaidui,&(qipaishu)); Qishishoupai(&com,paidui,&(paiduishu),qipaidui,&(qipaishu)); int i; for(;;) { i=Huihe(paidui,qipaidui,&paiduishu,&qipaishu,yuanshipaidui,&wanjia,&com); if(i==-1)break; i=Huihe(paidui,qipaidui,&paiduishu,&qipaishu,yuanshipaidui,&com,&wanjia); if(i==-1)break; return 0; } }
个人博客地址: www.moyujiang.com 或 moyujiang.top