C++21点游戏课程设计报告
- 格式:docx
- 大小:65.33 KB
- 文档页数:13
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请重新输入"< }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请重新输入"< }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;//控制赌注