2、C语言21点游戏项目文档说明

合集下载

C++算法之21点游戏

C++算法之21点游戏

课程设计说明书题 目: C ++开发的21点纸牌游戏 学生姓名: 学 院:理学院 班 级:信计08-1 指导教师:侯睿二〇一二年一月 三 日内蒙古工业大学课程设计(论文)任务书课程名称:面向对象的程序设计学院:理学院班级:信计08-1 学生姓名: ___ 学号:指导教师:侯睿摘要本次课程设计利用计算机高级语言C++进行简单编程,实现简易的C++程序计算器的编程和运行。

通过Microsoft Visual C++ 6.0软件可以进行C++程序编译,通过模块之间关系的确定及各模块功能,最后设计一个简单的操作界面实现游戏。

本系统通过C++高级语言进行编程,并设计了简单明了的操作界面。

简单的界面能给用户更好的操作体验,更直接而充分的掌握本程序的一些应用和功能。

通过直观的方式,最终实现C++设计的应用程序——“21点”纸牌游戏。

本次课设所做程序虽然只是一个简单的C++计算器程序,但是基本的应用功能都已具备,可以更好的用在实际应用中。

关键词:C++;计算机高级语言;Microsoft Visual C++ 6.0;“21点“纸牌游戏目录引言....................... ..... . (1)第一章系统开发环境的简介及特点....... ..... ........................ . .21.1开发环境的简介 (2)1.2 开发环境的特点 (2)第二章系统分析....................... ..... ........................ . .32.1 系统定位 (3)2.1.1 系统介绍 (3)2.1.2 系统面向的用户群体 (3)2.2系统需求 (3)2.2.1 系统的功能性需求 (3)2.2.2 系统的非功能性需求 (3)2.3 技术可能性分析................................................ ..4第三章总体结构设计....................... ..... (5)3.1 “21点”纸牌游戏的简介...........................................53.2 “21点”纸牌游戏的总体功能框图..................................53.3 主程序系统流程图 (5)第四章详细设计及界面展示 (6)4.1 详细设计 (6)4.2人机交互界面展示及测试. (15)小结............................................................... (19)参考文献................................................................20引言C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。

C语言21点游戏

C语言21点游戏

C语言21点游戏#include#include#include#include#includeint Bookies_score=1000,/*庄家金币*/Rlayer_score=1000;//玩家金币int Bookiesscore=0,/*庄家当前点数*/Rlayerscore=0;//玩家当前点数int Random,/*玩家随机数*/Randoms;//庄家随机数int Bets_P;//玩家下注int Card;//是否发牌int i=1;int s=1;int main(void){Star_interface();//开始界面getch();system("CLS");//---------------------------------以下为产生玩家随机数发牌代码Judge_WorL();//输或者赢函数}//------------以下开始界面int Star_interface(){int i;system("color 9B");printf("\t\t\t C语言游戏:二十一点\n");printf("\n\n\n\n\n\n\n");printf(" 〓〓〓〓〓〓〓〓");printf("\n 〓\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n 〓\n 〓\n");printf(" 〓〓〓〓〓〓〓〓\n");printf("\n\n");printf("\t\t\t ①:查看规则②:开始游戏\n\n");printf("\t\t\t 制作人:小二\n\n");printf("\t\t\t 版本号:1.0\n\t\t\t");scanf("%d",&i);switch(i){case 1:system("CLS");printf("\t\t\t 二十一点游戏规则\n\n\n\t 介绍:手中所有的牌点数之和不超过21点,谁更接近21点,就赢得游戏。

C语言课程设计实现21点游戏

C语言课程设计实现21点游戏

《C语言课程设计》题目:程序设计基础课程设计班级:姓名:指导教师:所属系部:电子科学与技术系2009年 6 月24 日21点游戏设计1 游戏规则此游戏,原则上是可以由不限定的人数来玩,但是随着参与人数的增加,在最后成绩的比较方面会比较的繁琐,不像两个人之间的比赛结果那么明显,所以也应该将参与人数控制在一定的范围之内。

确定参与人数后,系统会随机为每个人发三张牌,然后计算这三张牌的和进行比较。

如果这三张牌的和大于21,则此人将会输掉比赛,除非其他人的和也大于21(即假若每个人的三张牌的和都大于21时,该局为平局,打成平手)。

如果有的和大于21,有的和小于21,则大于21的人输掉比赛,再比较小于21的部分,谁的三张牌的和最接近21,则谁是该局的赢家。

一局玩完后,玩者可以根据自己情况进行选择是否要再玩一局。

若选择再玩时,系统会再进行下一次的循环。

2 程序算法○1由系统随机产生几组随机数,每组3个随机数。

○2计算每一组的三个随机数的和。

○3比较每组和的大小。

○4得出比赛结果3 关键算法流程图总体框架4 程序代码/* Note:Your choice is C IDE */#include <stdlib.h>#include <stdio.h>#include <time.h>#define N 5main( ){int i,t,flag, j,m;int b[8],a[3*N];char c;b[1]=0;flag=1;while (flag) //控制循环{srand(time(NULL)); /scanf("%d",&j); //用j控制组数for(t=0;t<3*j;t++) //产生几组随机数{if (t%3==0)printf("\n");a[t]=rand()%13+1;printf("%5d",a[t]);}printf("\n");for(i=1;i<=j;i++) //求每组随机数的和{for(t=3*(i-1);t<3*i;t++)b[i]=b[i]+a[t];printf("b[%d]=%d\n",i,b[i]);b[i+1]=0;}printf("\n");{for(t=1;t<j;t++) //对和的大小进行排序for(i=1;i<=j-t;i++)if(b[i]>b[i+1]){m=b[i+1];b[i+1]=b[i];b[i]=m;}for (i=1;i<=j;i++)printf("%5d",b[i]);}printf("\n");for (i=1;i<=j;i++) //得出结论if(b[i]>21){printf("这一局为第%d个人赢\n是否再玩一局,若输入'Y'则继续游戏,输入'N'结束游戏\n",i-1);getchar(); //与while语句是一个系统c=getchar();if(c=='Y')flag=1;elseflag=0;}}}5在程序设计中,出现的问题和解决方案:由于是多组数据之间的比较,首先在同时产生几组随机数时遇到障碍,产生随机数的代码是从网上搜索得到的,再加上一些修改,达到所需的要求,同时有一些小的细节是在老师帮助下完成的。

21点游戏策划书3篇

21点游戏策划书3篇

21点游戏策划书3篇篇一《21 点游戏策划书》一、游戏概述1. 游戏名称:21 点2. 游戏类型:桌面纸牌游戏3. 游戏目标:通过玩家与庄家的牌面点数比较,争取使手中牌的点数最接近 21 点且不超过 21 点,超过 21 点则为失败。

二、游戏规则1. 参与人数游戏可由 2 到多名玩家进行。

2. 发牌玩家开始时各获得一定数量的牌,庄家也会获得相应牌。

3. 牌面点数计算A 牌既可算 1 点也可算 11 点,其他牌面按其面值计算点数。

4. 比较点数玩家与庄家分别比较手中牌的点数大小,点数接近 21 点且不超过者胜,超过 21 点则失败。

5. 胜负判定若玩家点数超过 21 点则为爆牌,直接输掉游戏;若庄家爆牌则玩家获胜;若双方点数均未超过 21 点,则点数高者胜,若点数相同则为平局。

6. 特殊情况若玩家的前两张牌刚好为 21 点(即 blackjack),则直接获胜,称为“天然 21 点”。

三、游戏流程1. 玩家选择是否参与游戏并进行投注。

2. 庄家发牌给玩家和自己。

3. 玩家根据牌面情况可以选择继续要牌(hit)、停止要牌(stand)或进行其他操作(如加倍等,视具体规则设定)。

4. 庄家根据规则决定是否继续要牌,直到庄家或玩家满足特定条件(如达到一定点数等)停止发牌。

5. 比较双方点数,判定胜负并进行相应的筹码结算。

四、游戏策略1. 玩家要根据手中牌的情况合理决定是否要牌,尽量追求接近 21 点但不超过。

2. 可以根据庄家露出的牌面等情况进行一些策略性的判断和决策。

五、游戏道具1. 一副标准的扑克牌,去掉大小王。

2. 用于放置筹码的筹码盘等。

六、游戏环境与氛围营造1. 提供舒适的游戏桌面和合适的灯光环境。

2. 营造轻松、刺激的游戏氛围,让玩家能够全身心投入游戏。

七、游戏扩展与变化1. 可以增加一些特殊规则,如允许玩家进行保险投注等。

2. 设计不同的游戏难度级别,满足不同玩家的需求。

篇二《21 点游戏策划书》一、游戏简介21 点是一种广受欢迎的扑克牌游戏,玩家通过与庄家竞争点数大小来获取胜利。

《C#面向对象程序设计》课程设计说明

《C#面向对象程序设计》课程设计说明

21点游戏程序设计说明一、功能:一个21点小游戏,游戏开始时,如下第一张截图显示,然后按下开始,再按下发牌,就会庄贤两家各发两张牌,庄家有一张牌是盖着的,接下来贤家根据自己的点数决定要不要据需要牌。

如果点数大于21点则这一句就输了,扣25块的金额,如果按不要,且没大于21点,则庄家盖着的牌翻过了,然后庄贤两家的点数进行比较,谁的点数最接近21点则谁赢这一局。

二、主要实现方法:定义发牌函数:fapai()来产生一张牌,通过然后将牌所对应的图片通过pictureBox.ImageLocation =..............放入pictureBox中。

添加两个timer空间,timer1来控制发牌时庄贤两家各发的两种牌。

Timer2 控制当贤家点击不要之后庄家是否继续要牌,所以根据人的思维,在timer2中,只有当庄家的点数小于16点时才继续要牌,否则则不要了,与贤家进行比较,定义了两个函数showwin()和showloss()分别来显示输了个赢了一局。

然后还有check()和comper()两个函数,check()来检查发牌和要牌过程中庄家和贤家的点数是否大于了21点。

Comper()函数则用来最后庄贤两家的分数进行比较时看谁的分数更接近21点。

还添加了一个规则窗体来显示游戏规则。

运行截图:程序源代码:using System;using System.Collections.Generic; using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace _1点游戏vs2005版{public partial class Form1 : Form{public Form1(){InitializeComponent();label4.Text = moneyNew.ToString();}private void Form1_Load(object sender, EventArgs e){button1.Hide();button2.Hide();button3.Hide();button4.Show();}Random ra = new Random();string str;int count1 = 0;int timer1count = 0;int timer2count = 0;int num;int score_Zhuang = 0;int score_Xian = 0;string jpg = ".jpg";string dizhi = "image\\";int money = 100;int moneyNew = 100; //通过改money和moneyNew可改初始的钱数;string pcdi;规则f1 = new规则();public void fapai(){pai = ra.Next(1, 5);if (pai == 1){num = ra.Next(1, 14);str = "m" + num.ToString();if (num == 1)num = 11;if (num == 11){str = "mj";num = 10;}if (num == 12){str = "mq";num = 10;}if (num == 13){str = "mk";num = 10;}}if (pai == 2){num = ra.Next(1, 14);str = "f" + num.ToString();if (num == 1)num = 11;if (num == 11){str = "fj";num = 10;}if (num == 12){str = "fq";num = 10;}if (num == 13){str = "fk";num = 10;}if (pai == 3){num = ra.Next(1, 14);str = "h" + num.ToString();if (num == 1)num = 11;if (num == 11){str = "hj";num = 10;}if (num == 12){str = "hq";num = 10;}if (num == 13){str = "hk";num = 10;}}if (pai == 4){num = ra.Next(1, 14);str = "r" + num.ToString();if (num == 1)num = 11;if (num == 11){str = "rj";num = 10;}if (num == 12){str = "rq";num = 10;}if (num == 13){str = "rk";num = 10;}}}public void restart() //重新开始{score_Zhuang = 0;score_Xian = 0;label1.Text = "0";count1 = 0;timer2count = 0;button1.Hide();button2.Hide();button3.Hide();label4.Text = money.ToString();if (money <= 0){MessageBox.Show("Game Over! You Loss!");newGamer();button3.Hide();money = moneyNew;label4.Text = money.ToString();}if (money >= 2 * moneyNew){MessageBox.Show("Congratulations! You Win!");newGamer();button3.Hide();money = moneyNew;label4.Text = money.ToString();}label6.Text = "0";button4.Show();}void showwin(){MessageBox.Show("你赢了25元!\n继续吗?", "你赢了这盘!", MessageBoxButtons.YesNo);money += 25;restart();}void showloss(){MessageBox.Show("你输了25元!\n继续吗?", "你输了这盘!", MessageBoxButtons.YesNo);money -= 25;restart();}void check(int i, int j){if (i > 21){showwin();}if (j > 21){showloss();}}void comper(int i, int j){if (i > j){showloss();}else if (i < j){showwin();}else{MessageBox.Show("平局");restart();}}private void timer1_Tick_1(object sender, EventArgs e) //控制刚开始发牌时发的四张牌。

c++21点游戏的代码和报告

c++21点游戏的代码和报告

数学与计算机学院课程设计说明书课程名称: 面向对象程序设计-课程设计课程代码: 8404101题目: 21点的扑克牌游戏年级/专业/班: 09/软件工程/1班学生姓名:学号: 312009*********开始时间:2011 年06 月13日完成时间:2011 年06月21 日课程设计成绩:指导教师签名:年月日目录1 引言 (1)1.1问题的提出 (1)1.2任务与分析 (1)2 程序的主要功能 (2)2.1新建用户功能 (2)2.2判断密码功能 (2)2.3判断进程功能 (2)2.4显示功能 (2)2.5获得牌的功能 (2)2.6初始化功能 (2)3 程序运行平台 (3)4 总体设计 (4)5 程序类的说明 (5)6 模块分析 (6)6.1新建用户模块 (6)6.2显示模块 (6)6.3判断密码模块 (8)6.4判断游戏进程模块 (10)6.5获得一张牌模块 (11)6.6初始化模块 (12)7 系统测试 (13)8 结论 (16)参考文献 (17)摘要随着计算机的普及,计算机游戏逐渐进入了这个时代,本次利用学到的c++编写了一个21点的扑克牌游戏,该游戏具有新建用户,判断牌等功能关键词:21点的扑克牌游戏;计算机;1 引言1.1 问题的提出设计一个21点的扑克牌游戏,玩家一共可以要5张牌,但如果牌的点数超过21,则暴了,自动出局;在不超过21点的情况下,玩家与庄家比牌的点数大小,大者为赢。

1.2任务与分析(1) 将所有的函数与相应的数据封装到类中。

(2) 程序中一共有13张扑克牌可以随机抽取,大于10的点数全部为半点:只需设计随机取下一张牌的成员函数时使用if语句判定牌的点数是否大于10,大于10的牌对其重新赋值为0.5即可。

(3) 要求庄家永远不会暴庄,即庄家可以查看下一张牌,若大于21点,则拒绝,当然,在游戏规则上不能泄露这点秘密:在函数中首先随机产生下一张牌,接着用条件语句判定原有点数与新牌的点数之和是否大于21点,然后决定是否取牌。

C语言21点纸牌游戏系统详细设计

C语言21点纸牌游戏系统详细设计主函数开键盘输产生随机键盘输输入H 输出统计选择是否循结图2.1 进入游戏后的游戏说明及规则2.2开始游戏图2.2 选择下注数目,然后随机发牌,只能见庄家一张牌,可以选择查看庄家隐藏的牌,此为游戏高级模式,开启后可选择想要的牌2.3作弊模式图2.4在作弊模式下取胜,可以接着要牌,但玩家的牌最多不能超过5张,取胜后会统计结果,询问是否继续游戏2.5非作弊模式图2.5 此情况为非作弊模式,不能见庄家的牌,只能知道结果,输掉游戏后统计结果,询问是否继续2.6退出游戏图2.6此为退出游戏,输入后自动关闭窗口3.源程序:#include<time.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>void Wait_f(int);void Pause_f();/*暂停,按任意键继续*/int Random_f(long ,long );/*返回两个参数之间的随机数*/ void Replay_f(char *);/*询问是否重开一局*/void Hit_f(int *);/*发一张牌*/void Deal_f(int *,int *,int *,int *);/*双方各发两张牌*/nCpuTurns=0,nMoney=0,nBet;/* nPlayer--玩家手中全部牌的点数和,nPlayerTurns--玩家手中牌的数量 char chAnswer;char mmm;int a;system("cls");/* 执行系统命令"清屏" */Rules_f();printf("确认是否开始游戏:");scanf("%c",&chAnswer);if((chAnswer=='y')||(chAnswer=='Y')){nMoney=100;printf("\t\t\t");Pause_f();}else{return(0);return(0);}Bet_f(&nBet,&nMoney);/*接受下注的数目*/Deal_f(&nPlayer,&nCpu,&nPlayerTurns,&nCpuTurns);/*双方各发两张牌*/printf("想看庄家牌吗?");scanf("%c",&mmm);if((mmm=='y')||(mmm=='Y')){printf("%d\n",nnn);printf("您想要哪一张牌?");scanf("%d",&a);}system("cls");do{if((nPlayerTurns<6)&&(chAnswer=='h')) {printf("\n");if((mmm=='y')||(mmm=='Y'))Hit_f2(&nPlayer,a);else Hit_f(&nPlayer);/*为玩家发一张牌*/}}while((chAnswer=='h')||(chAnswer=='H'));for(;(nCpu<16)&&(nCpuTurns<6);nCpuTurns++)/*计算机要牌的条件*/ {printf("\n");printf("\n");printf("\t\t\t\t");return(0);}void Rules_f() /*这个函数显示游戏规则*/{printf("欢迎来到21点纸牌游戏\n");printf("这里有一些简单的规则:\n");printf("1:你的几张牌中只能有一个最大的牌。

C语言课程设计指导书21点双人对战与人机对战

《C/C++语言课程设计》指导书一、课程设计概要课题名称:21点双人对战和人机对战二、课题背景概述21点扑克是牌类游戏中的比较基础游戏,其基本打法为双人共玩一副洗好的52张牌(大小王拿走),采用回合制比每回合输赢,直至打完一副牌算总积分决出胜负。

每回合双方轮流拿牌,每人牌数2-5张,每回合拿牌结束时统计两人手上牌的总点数,并裁决本回合输赢。

如果轮到一方拿牌而放弃,则本回合此人不能再拿牌;如果手上牌的点数超过21点,则算爆。

如果双方都没爆,则点数较高者获胜;如果一方爆另一方没爆,则没爆者获胜;如果双方都爆,则爆的少的人(点数超过21点较少者)获胜。

牌点计算方式:牌面10、J、Q、K均算10点;牌面2-9的点数同数字;花牌A既可以当1点用,也可以当11点用,具体当什么用,由持有花牌者按有利于自己的策略决定,但是计算机裁决程序总是会按最有利于持花牌者的算法自动进行点数计算。

三、课程设计目标1、课题实现的功能目标渐进开发实现21点双人对战和人机对战,并最终实现其类封装和面向对象程序设计。

2、知识应用能力的培养目标通过项目开发、调试、完善的过程,渐进地理解、正误、巩固和掌握基本数据类型的使用和转换、顺序-分支-循环的组合应用、变量声明和引用、函数的定义/声明/调用、数组和指针使用、结构体和类的使用等语法知识,熟练掌握常用测试和调试技术手段,达到理论联系实践、融会贯通的目的。

3、数学建模能力的培养目标随机数产生无重复无遗漏牌张、随机插牌、A牌的用法、计算胜率(在最后的人机对战要用)都涉及一定数学建模和算法设计应用能力,因此在无形中也锻炼了这种能力。

4、软件工程方法论培养目标从项目开发过程体会、理解和自觉应用程序设计和测试的思路及方法。

理解和应用ADT概念和面向对象程序设计思想的由顶向下设计方法,从顶层抽象设计开始,通过过程抽象和数据抽象,逐层分解、渐进推进程序设计实现和测试改进,理顺程序设计和测试完善的思路。

21点游戏策划书3篇

21点游戏策划书3篇篇一21 点游戏策划书一、游戏名称21 点二、游戏类型休闲类扑克牌游戏三、游戏目标玩家需要通过手中的牌和庄家的牌比较大小,尽可能接近 21 点但不超过 21 点,以获得胜利。

四、游戏规则1. 牌面大小:2 至 10 的牌面数字与牌面数值相同,J、Q、K 牌面数值为 10,A 牌面可以是 1 或者 11。

2. 发牌:游戏开始前,玩家和庄家都会收到 2 张牌,玩家的第一张牌会被面朝下放置。

3. 比牌:玩家可以选择查看自己的第二张牌,也可以选择停牌。

如果停牌,玩家的手牌大小将由前两张牌决定。

如果查看第二张牌,玩家需要比较自己的手牌和庄家的手牌大小,决定是否继续要牌或者停牌。

4. 要牌:如果玩家认为自己的手牌不够大,可以选择继续要牌,直到达到停牌或者超过 21 点。

5. 获胜:如果玩家的手牌大小不超过 21 点,并且比庄家的手牌大,那么玩家获胜。

如果玩家的手牌大小超过 21 点,那么玩家输牌。

如果玩家和庄家的手牌大小相同,那么玩家平局。

6. 加倍:玩家可以在游戏开始前选择是否进行加倍。

如果进行加倍,玩家需要支付初始赌注的两倍,并且只有在玩家的手牌不超过 21 点时才能继续要牌。

如果玩家的手牌超过 21 点,那么玩家输牌。

五、游戏流程1. 发牌:游戏开始前,玩家和庄家都会收到 2 张牌,玩家的第一张牌会被面朝下放置。

3. 比牌:玩家可以选择查看自己的第二张牌,也可以选择停牌。

如果停牌,玩家的手牌大小将由前两张牌决定。

如果查看第二张牌,玩家需要比较自己的手牌和庄家的手牌大小,决定是否继续要牌或者停牌。

4. 要牌:如果玩家认为自己的手牌不够大,可以选择继续要牌,直到达到停牌或者超过 21 点。

5. 获胜:如果玩家的手牌大小不超过 21 点,并且比庄家的手牌大,那么玩家获胜。

如果玩家的手牌大小超过 21 点,那么玩家输牌。

如果玩家和庄家的手牌大小相同,那么玩家平局。

6. 结算:如果玩家获胜,将会获得下注金额的相应倍数的奖励。

21点游戏设计范文

21点游戏设计范文21点是一种非常受欢迎的扑克牌游戏,通常由两个或更多个玩家参与。

每个玩家的目标是使手中的牌的点数总和尽可能接近21点,但不能超过21点。

以下是一个关于如何设计一个21点游戏的详细说明。

游戏规则:1.游戏使用一副标准扑克牌,不含大小王。

每张牌的点数为A到K,其中A值1点,J、Q、K值10点。

2.每局游戏开始时,玩家会收到两张面朝上的牌,庄家(计算机或其他玩家)也收到两张牌,其中一张面朝下。

3.玩家可以选择“要牌”或“停牌”。

如果玩家选择“要牌”,则会从牌堆中抽取一张牌并加入手牌,如果点数超过了21点,则玩家输掉这局游戏。

如果玩家选择“停牌”,则庄家会继续向自己的手牌中加牌,直到点数达到17点或超过21点为止。

4.如果玩家的点数超过21点,庄家自动获胜。

如果庄家点数超过21点,玩家获胜。

如果两者都没有超过21点,则点数较靠近21点的一方获胜。

游戏设计:1.游戏界面:设计一个简洁美观的游戏界面,包括牌桌、发牌区和得分区。

牌桌上有两个区域,分别是玩家区和庄家区,用来放置玩家和庄家的手牌。

发牌区用来显示发牌动画和发牌结果。

得分区用来显示当前的得分情况。

2.发牌逻辑:设计一个发牌逻辑,当游戏开始或每局结束后,从牌堆中随机抽取四张扑克牌,两张分别发给玩家和庄家,其中一张庄家的牌面朝下。

同时,在得分区显示当前的得分情况。

3.玩家操作:提供“要牌”和“停牌”两个操作按钮,当玩家点击“要牌”时,从牌堆中抽一张牌并加入玩家手牌,更新得分区的得分情况。

当玩家点击“停牌”时,庄家开始抽牌直到达到17点或超过21点。

4.判断胜负:设计一个胜负判断逻辑,在玩家和庄家都停牌后,比较两者的点数,判断胜负并显示结果。

如果玩家点数超过21点,则庄家获胜;如果庄家点数超过21点,则玩家获胜;如果两者都没有超过21点,则点数较靠近21点的一方获胜。

5.游戏结束后,提供重新开始游戏的选项,可以重新发牌开始新的一局游戏。

这是一个基本的21点游戏设计,你可以根据需要进行进一步的扩展和改进。

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

C语言21点游戏项目说明文档
一、21点的基本知识
21点是世界上比较流行的扑克游戏项目
除掉大小王的一副扑克牌,共计52张牌
21点不区分花色,其中2----10均代表扑克牌本身的点数
J Q K代表10点A可以代表1点又可以代表11点
区分庄家和闲家,其中闲家可以优先要牌而庄家在与闲家点数一样大的情况下,庄家赢,当有一方点数超过21点则另一方自动获胜,庄家的点数如果正好是21点,那么庄家直接获胜,其他情况以点数大的获胜
二、涉及知识点:
数组
提示:用数组保存所有的牌的种类
随机抽取数组下标表示出牌的种类
总共有13张牌:所以随即抽取0-12的随即数
随即函数写法:rand()%13
导入:<stdlib.h的头文件>
三、流程设计:
人机对战模式!
1由用户输入选择作庄还是作闲,电脑自动成为另一方
2随机为双方发两张牌
3询问闲家是否要牌,一直到闲家不再要或者发生暴点为止
4 询问庄家要牌,一直到庄家不再要或者暴点或者正好21点为止
5比较游戏输赢
6询问是否继续
7统计战果
四、技术问题:
1.发牌的时候随机发取所以要结合二维数组以及随机函数进行
2.发牌出来还要判断是否本张牌已经发过了!如果已经发过了,那么就要重新随机发另外一张牌,要保证牌的唯一性
3.当给电脑派牌的时候要考虑AI的问题!让电脑的逻辑稍微模拟人的思维
五、目的
希望大家通过这个小项目对C语言中的条件结构、循环、数组以及函数的学习得到有效的巩固。

相关文档
最新文档