--------------------------校验:_____________-----------------------日期:_____________纸牌游戏:十点半计算机技术基础课程设计C语言设计报告题目:纸牌游戏:十点半学院:化学工程学院专业:制药工程班级:050607班姓名:李艳明指导教师:设计日期:,日常生活中我们为了娱乐消遣经常用之来进行一些小游戏,如红心大战,斗地主,活龙等,多种多样。十点半是这些游戏中一种比较简单的玩法。这个程序模仿了十点半的各个过程,将游戏在程序运行中表示其玩法过程。(一)游戏规则:游戏可为两人或多人,但不超过八人。本游戏中选了人与电脑及四人间的玩法为例。第一轮玩家依次取一张牌,之后玩家根据自己牌的总点数,选择继续要牌或不要牌,但一旦选择不要牌以后就不能再要牌。,不能再要牌,J,Q,K算为半点。,点大者胜;,则点数最小者赢。(二)任何一张纸牌都有其本身的属性:花色,数值及起其所代表的点数。为将这些特征表示出来,特定义一个结构体数组来表示一副扑克牌,由于十点半游戏中不需要大小王,故可以定义如下:Structbook{intcolor;charnumber;floatnum;}Card[52];(三)不论何种扑克游戏都有其必经的三个步骤:一是有一副牌(即牌的初始化)二是洗牌,三是发牌。这三个步骤在程序中通过三个函数来实现:voidBuild_Show(intHuaSe[],floatDianShu[],charShuZi[]);voidWash_Card(void);voidGet_Card(intn); 终止 Main()函数流程图 Build_Show()的流程图 Wash_Card()的流程图forforRand1!=rand2产生rand1,rand2i<1000i=0j++j<13j=0fori<4i=0i++交换牌Card[j+13*i].color=HuaSe[i]Card[j+13*i].number=ShuZi[i]Card[j+13*i].num=DianShu[i] 结束puts() i++for i=0,j=0j<52j%13==0\nprintf()结束 Get_Card()的流程图 DuoRen()的流程图调用函数调用函数 if每个人都拿第一张牌n==4n==1当所有人都不能拿牌时结束循环人与电脑游戏并输出游戏结果调用函数Duo_Ren()公布结果,由各人的点数可知调用结束调用结束四。程序清单#defineN5#include<>#include<>structbook{intcolor;charnumber;floatnum;}Card[52];/*Tostorethecolor,numberandthepoints*/voidBuild_Show(intHuaSe[],floatDianShu[],charShuZi[]); /*Establishapairofcardsandshowittotheplayer*/voidWash_Card(void);/*Washthecards*/voidGet_Card(intn);/*Givetheplayercardsandtheresult*/voidDuoRen();intmain(void){intflag,n;intHuaSe[4]={3,4,5,6};/*Storethecolor*/charShuZi[13]={'A','K','Q','J','0','9','8','7','6','5','4','3','2'}; /*Storethenumber*/floatDianShu[13]={1,,,,10,9,8,7,6,5,4,3,2};/*Storethepoints*/Build_Show(HuaSe,DianShu,ShuZi);/*Establishthecardandshowit*/do{Wash_Card();/*Washcards*/a:puts("\nPleaseinputthenumberoftheplayer:"); scanf("%d",&n); switch(n) { case1:puts("puter!"); break;case2:puts("Youtwoplay!");break; case3:puts("Youthreeplay!"); break; case4:puts("Youfourplay!"); break; ca
纸牌游戏:十点半 来自淘豆网m.daumloan.com转载请标明出处.