C++21点游戏课程设计报告

  • 格式:docx
  • 大小:65.33 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 题目内容及设计要求

1.1 问题描述

本次C++课程设计题目是“21点纸牌游戏”,系统的主要功能是娱乐游戏,有电脑和玩家一起玩这个游戏,玩家设法使自己的牌达到总分21并要比电脑开的点数大而且不超过这个数值。扑克牌的分值取它们的面值。J,Q,K分别是5,6和6分。

1.2 要求分析

编写程序实现游戏,该程序是模拟古老的21点扑克牌游戏,实现1对1的人机大战。要求游戏过程中任意一方牌的点数之和超过21点,则自动出局;在不超过21点的情况下,玩家下注由电脑随机发牌与庄家比累积牌的点数的大小,大者为赢家。

2 总体设计

2.1 总体功能框图

2.2 主要算法流程图

3. 详细设计

程序流程图游戏界面

输入下注金额选择是否要牌开始游戏退出主函数流程图

。。。。。。

图2-1 算法流程图

3程序清单及注释

// 21点游戏.cpp : 定义控制台应用程序的入口点。//

#include "stdafx.h"

#include

#include

#include

using namespace std;

int x=1;

int mima;

int rand(int n ); //声明

bool win();

bool win1();

bool win2();//定义变量win为逻辑型变量

void money(); //运行赌注

int main()

{

cout<<"\t※※※※※※※※※※欢迎进入21点※※※※※※※※※※\n\n";

cout<<"\t\t 游戏规则:\n";

cout<

cout<<"\t\t 1.玩家最多可下赌注1~100;\n";

cout<

cout<<"\t\t 2.如果牌点数的总数超过21点则暴点,自动判数;\n";

cout<

cout<<"\t\t 3.计算机方在大于等于16点时不再要牌。\n";

cout<

cout<<"\t\t 4.如果你是普通用户,请按 1 \n";

cout<

cout<<"\t\t 5.如果你是会员用户,请按 2 \n";

cout<<"\t\t 会员用户可以知道下一张牌是什么\n";

cout<

cout<<"\t\t 6.如果你是超级会员,请按 3 \n";

cout<<"\t\t 超级会员可以任意指定下一张牌是什么\n";

cout<

cout<<" 作者:季麟\n"; cout<<"\t※※※※※※※※※※祝您好运※※※※※※※※※※※※※\n";

money();

return 0; //死循环

}

int rand(int n ) //调用函数

{

return rand()%n; //产生随机数,对生成的随机数取余

}

void money()

{

int a=400,b=400,c,z;//定义玩家和庄家的赌注各400

yz:cout<<"请输入你的选择"<

cin>>z;

switch(z)

{

case 1:

for(;;) //控制游戏循环

{

cout<<"请输入您要押的钱数(现在您还有"<>c; //玩家所压赌注

if(c>100||c<1){cout<<"请最多输入1-100请重新输入"<>c;

}else if(win())

{

a+=c;b-=c;//控制赌注

cout<<"您现在的钱数为"<

cout<<"\n对手还有"<

if(a==800||b<=0)

{

cout<<"对手已经没钱了。您赢了游戏结束了"<

exit(0);

}

else

cout<<"\n请继续下注"<

}

else

{

a-=c;b+=c;//控制赌注

cout<<"您现在的钱数为"<

cout<<"\n对手还有"<

if(a<=0||b>=800)

{

cout<<"您已经没钱在玩了。游戏结束了"<

exit(0);

}

else

cout<<"\n请继续下注"<

}

}

case 2:

xy:cout<<"请输入密码"<

cin>>mima;

if(mima==5201314)

{for(;;) //控制游戏循环

{

cout<<"请输入您要押的钱数(现在您还有"<>c; //玩家所压赌注

if(c>100||c<1){cout<<"请最多输入1-100请重新输入"<>c;

}else if(win1())

{

a+=c;b-=c;//控制赌注

cout<<"您现在的钱数为"<

cout<<"\n对手还有"<

if(a==800||b<=0)

{

cout<<"对手已经没钱了。您赢了游戏结束了"<

exit(0);

}

else

cout<<"\n请继续下注"<

}

else

{

a-=c;b+=c;//控制赌注

cout<<"您现在的钱数为"<

cout<<"\n对手还有"<

if(a<=0||b>=800)

{

cout<<"您已经没钱在玩了。游戏结束了"<

exit(0);

}

else

cout<<"\n请继续下注"<

}

}}

else

cout<<"密码错误,请按1 重新输入或者按2 重新选择"<

int f;

cin>>f;

switch(f)

{

case 1:

goto xy;

case 2:

goto yz;}

case 3:

cc:cout<<"请输入密码"<

cin>>mima;

if(mima==5201314)

{for(;;) //控制游戏循环

{