C++课程设计:一个21点的扑克牌游戏由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c课程设计游戏21点”。
第1题 一个21点的扑克牌
1.1.1 课程设计的程序功能简介:
一个21点牌的扑克游戏,玩家一共可以要5张牌,但如果牌的点数超过21,则暴了,自动出局,在不超过21点的情况下,玩家与庄家比牌的大小,大者为赢。
1.1.2 课程设计的任务要求:
(1)将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化;
(2)程序中一共有十三张扑克牌可以随机抽取,大于10的点数为10,现要求大于10的点数全部为半点;
(3)要求庄家永远不会暴庄,即庄家可以查看下一张牌,若大于21点,则拒绝,当然,在游戏规则上不能泄露这点秘密;
(4)高级玩家可以查看下一张牌,即按H键,然后按要求输入密码,密码正确可以看牌,并决定是否要牌;
(5)每次要牌后可以设定赔率,即如果开始下的是10元钱的注,如果牌好,你可以要求再下注,当然不能超过你所有的总钱数;
(6)将界面的提示说明改成中文界面,界面的解释详细友好,可以吸引更多的玩家。
1.1.3 课程设计的说明:
(1)题目要求把原程序封装在类中,需要编写一个类来封状所有相关函数和变量.因此编写了名为XXX类,同时对mian主函数进行了改写,以完成题目的要求;
(2)题目要求把抽到大于10点的牌的点数设为一半,只需设计随机取下一张牌的成员函数使用if语句判定牌的点数是否大于10,大于10的牌对其重新赋值为0.5即可;
(3)题目要求庄家永远不会暴庄,庄家取下一张牌之前先判定取牌后总点数是否会大于21点,大于的话就拒绝取下一张,小于就继续取牌,在函数中首先随机产生下一张牌,接着用条件语句判定原有点数与新牌的点数之和是否大于21点,然后决定是否取牌;
(4)题目要求超级玩家在输入密码后可以查看下一张牌,只需设计一成员函数,判定玩家是否继续要牌之前加入对玩家是否输入H键的判定,如果有输入则调用为处理玩家输入密码而单独编写的成员函数,在该函数中,首先判定玩家的密码输入是否正确,不正确则返回0,正确则返回1。
(5)题目要求玩家可以根据手上的牌决定是否下注,只需设计一成员函数,检查玩家的赌注累计不超过他所拥有的总资本。
(6)评定难易级别:B级 1.1.4 课程设计的原代码注解:
//wait.h begin #include #include void wait(int milli){ clock_t start;start=clock();while((clock()-start)
#include #include #include #include
//=========== void pause()//displays a meage and waits for the user to hit a key {
cout
getch();}
//=========== int GetInt(int L=0,int H=100){
int ent;
cout
cin>>ent;
while((entH))
{
cout
cout
cin>>ent;
}
return(ent);} //============ void sign()//Displays ISAAC SHAFFER {
cout
int ran;
srand((unsigned)time(NULL));
ran=rand()%(hi-(lo-1))+lo;
return(ran);} //utility.h end //ISAAC SHAFFER //3-2-2000 //BLACKJACK GAME WITH FUNCTIONS //THIS PROGRAM IS MENT TO BE A SIMPLE BLACK JACK GAME //since i can't use gotoxy i used the slash t to space my program //notes //cpu is used to refer to the coumputer //librays
#include #include #include “utility.h” #include “wait.h” //fuctions void replay(char &ans);
//allows replay of game void hit(int &total);
//take another card
void deal(int &player,int &cpu,int &playerturns,int &cputurns);//deals hand void BET(int &bet,int &money);//takes bet void print(int wins,int lose,int draw,int money);//prints final score void rules();//shows rules void results(int player,int cpu,int bet,int &money,int &draw,int &win,int &lose);//finds winner
int main(){
int player=0,cpu=0,win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=0,bet;char ans;system(“cls”);//执行系统命令 cls rules();cout>ans;if((ans == 'y')||(ans=='Y'))//checks to see they want to play {
cout
money=100;
cout
pause();} else {
return(0);} do{
system(“cls”);
if(money
{
cout
return(0);
}
BET(bet,money);//calls bet fuction
deal(player,cpu,playerturns,cputurns);//Deals teh cards
do{
cout
cin>>ans;
if((ans=='h')||(ans=='H'))
{
playerturns++;//adds one to players total cards
if(playerturns>5)//sees if player can take a card
{
cout
}
}
if((playerturns
{
cout
}
}while((ans=='h')||(ans=='H'));//Takes value for hit or stay for(;(cpu
//Tells the cpu wither to take a card or not {
cout
cout
hit(cpu);//calls hit function }
} //-------------------------void rules()//This Function Displays the rules for Black Jack { cout
cout>bet;
if(bet
{
bet=bet*-1;
} money=money-bet;} //--------------------------void deal(int &player,int &cpu,int &playerturns,int &cputurns)//This Function Deals The hands { int playercard1,playercard2,cpucard1,cpucard2;playerturns=2;cputurns=2;playercard1=random(13,1);cout
wait(350);cpucard2=random(13,1);if(playercard1>=10){
playercard1=10;} if(playercard2>=10){
playercard2=10;} if(cpucard1>=10){
cpucard1=10;} if(cpucard2>=10)cout
{ cpucard2=10;} player=playercard1+playercard2;cpu=cpucard1+cpucard2;cout
//--------------------------void hit(int &total)//This fuction is to deal a card and add it to the total { int card;card=random(13,1);if(card>=10){
card=10;} total=total+card;cout
cout
draw++;
} if(player>21){ cout
lose++;} else {
if(cpu
{
cout
money=money+(bet*2);
win++;
} } if(cpu>21){
cout
if(player
{
cout
win++;
money=money+(bet*2);
} } else {
if(cpu>player)
{
cout
lose++;
} } } //---void replay(char &ans){ cout>ans;} //---void print(int wins,int lose,int draw,int money){ cout
1.1.5 课程设计的实现要求:
1.该程序可运行于DOS环境中;
2. 在C++中创建一个工程并且将程序加入工程中;
3.将该程序输入计算机并且应该能够执行
4.设计编写所要求完成的补充部分 5.对程序进行补充与完整,并进行调试