资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验报告课程名称: C语言课程设计 实验项目: 21点扑克牌游戏 专业班级: 电子信息工程1001班 姓 名: 学 号: 实验室号: 实验组号: 4 实验时间: 2012/6/26 批阅时间: 指导教师: 成 绩: 沈阳工业大学实验报告(适用计算机程序设计类)实验名称:21点扑克牌游戏1. 实验目的:(1) 练习编写大程序,实现眼球的功能(2) 熟悉函数的调用(3) 编写函数实现程序功能2.实验内容:(1)学习编写实现想要功能的函数。(2)学习如何在主函数与其它函数中调用函数。(3)学习用输入输出函数设定输出界面。(4)学习选择与循环等在函数中的应用。3. 实验方案(程序设计说明)(1)建立一个主函数,在其中实现对部分功能的函数调用。(2)编写可以满足功能的函数。(3)用输入输出函数来控制输出的界面。4. 实验步骤或程序(经调试后正确的源程序)主要步骤与程序代码等。见附件A5程序运行结果见附录B6出现的问题及解决方法问题1:玩家要牌后程序会自动提示程序有误,然后停止运行解决办法:重新编写程序代码,利用选择、循环等结构来实现玩家要牌与不要牌的处理问题2:程序在没有提示玩家想往下进行游戏的操作解决办法:利用输出函数输出相关选择信息,来提示往下的操作附件A 沈阳工业大学实验报告(适用计算机程序设计类)专业班级: 学号: 姓名: 实验步骤或程序:#include#include#include#include#include#include#includeint Tag_f();/*是否开始游戏*/int Random_f(long ,long );/*返回两个参数之间的随机数*/void Hit_f(int *);/*发一张牌*/int Deal_f(int *,int *,int *,int *);/*双方各发两张牌*/void Bet_f(int *,int *);/*接受下注的数目*/void Print_f(int ,int ,int ,int);/*打印结果*/void Rules_f();/*显示游戏规则*/void Results_f(int ,int,int ,int *,int *,int *,int *);/*统计结果(输赢平)*/void Pause_f();int main()int nPlayer=0,nCpu=0,nWin=0,nLose=0,nDraw=0,nPlayerTurns=0,nCpuTurns=0,nMoney=0,tag=1,nBet,nCpuCard1;/*nPlayer-玩家手中全部拍的点数之和,nPlayerTurns-玩家手中牌的数量*/char chAnswer; char Answer20;system(cls);/*执行系统命令“清屏”*/Rules_f();/*显示游戏规则*/system(cls);printf(ttt你想要开始玩吗?(开始:y/Y 结束:n/N) );tag=Tag_f();if(tag=1)printf(nn);printf(ttt你的开始金额为$100n);nMoney=100;printf(ttt);Pause_f();else return 0;dosystem(cls);if(nMoney=0)printf(nnnnnn);printf(tttt你不够钱了!n);printf(tttt游戏结束!n);getchar();return 0;Bet_f(&nBet,&nMoney);/*接受下注的数目*/nCpuCard1=Deal_f(&nPlayer,&nCpu,&nPlayerTurns,&nCpuTurns);/*双方各发两张牌*/printf(ttt你想继续要牌吗?(要牌:y/Y 不要牌:n/N):t);while(1)gets(Answer);if(strlen(Answer)4)/*看是否允许再要牌*/printf(ttt你的牌不能超过5张);break;if(nPlayerTurns21)printf(ttt你的牌爆了n);tag=0;break;printf(ttt你想继续要牌吗?(要牌:y/Y 不要牌:n/N):t);elseif(Answer0=n)|(Answer0=N)break;elseprintf(nn);printf(ttt输入有误,请从新输入:);elseprintf(nn);printf(ttt输入有误,请从新输入:); if(tag=0) printf(ttt你输了n); nLose +; else for(;(nCpu=18)&(nCpuTurns5);nCpuTurns+)/*庄家要牌的条件*/ printf(n);printf(*);printf(ttt为庄家发一张牌n);Hit_f(&nCpu);/*为庄家发一张牌*/printf(nnn);printf(*nn);printf(nn);printf(庄家的底牌为:);printf(【%d】n,nCpuCard1);printf(ttt庄家的总点数:%dn,nCpu);/*显示总点数*/printf(ttt你的的总点数:%dn,nPlayer);printf(n);Results_f(nPlayer,nCpu,nBet,&nMoney,&nDraw,&nWin,&nLose);/*计算最后的结果(统计输赢平的局数)*/printf(nttt是否想要重来一局?(y/Y or n/N) );tag=Tag_f();/*是否再来一局*/while(tag);Print_f(nWin,nLose,nDraw,nMoney);/*打印最后的结果*/printf(nn);printf(tttt按任意键退出);getchar();void Rules_f() /* 这个函数显示游戏规则 */ printf(ttt欢迎来玩21点 扑克牌游戏n); printf(ttt下面是一些游戏规则n);printf(ttt1你手中最多允许有5张牌n);printf(ttt2超过21点玩家就输n);printf(ttt3庄家在16点以后一般不再要牌n);printf(ttt4如果你赢了,你赢得赌注以及与赌注相等的钱n);printf(ttt5如果是平局,你可以拿回你的赌注n);printf(ttt6如果你输了,你就会输掉你的赌注n);printf(tttt);printf(按任意键继续);getchar();void Bet_f(int * npBet,int * npMoney) /* 该函数接受玩家下注,并计算赌资的总数 */ system(cls);printf(ttt你有:$%dn,*npMoney);printf(ttt你想赌多少:);doscanf(%d,npBet);if( * npBet* npMoney)printf(ttt赌注大于拥有金额,请重新下注:);else break;while(1); * npMoney= * npMoney-(* npB
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号