十点半游戏
篇一:纸牌游戏:十点半
计算机技术基础课程设计
C语言
设计报告
题目:纸牌游戏:十点半
学院:化学工程学院
专业:制药工程
班级:050607班
姓名:李艳明
指导教师:
设计日期: 2007年1月10日
一.选题背景
扑克牌是一种大众化的游戏牌,日常生活中我们为了娱乐消遣经常用之来进行一些
小游戏,如红心大战,斗地主,活龙等,多种多样。
十点半是这些游戏中一种比较简单的玩法。这个程序模仿了十点半的各个过程,将
游戏在程序运行中表示其玩法过程。 二.设计思想
(一)游戏规则:游戏可为两人或多人,但不超过八人。本游戏中选了人与电脑及四人间的玩法为例。第一轮玩家依次取一张牌,之后玩家根据自己牌的总点数,选择继续要牌或不要牌,但一旦选择不要牌以后就不能再要牌。玩家牌的总点数一旦超过10.5,不能再要牌,J,Q,K算为半点。如果玩家牌的总点数都大于或小于10.5,点大者胜;如果有大于也有小于10.5,则点数最小者赢。
(二)任何一张纸牌都有其本身的属性:花色,数值及起其所代表的点数。为将这些特征表示出来,特定义一个结构体数组来表示一副扑克牌,由于十点半游戏中不需要大小王,故可以定义如下: Struct book{
int color; char number; float num; }Card[52];
(三)不论何种扑克游戏都有其必经的三个步骤:一是有一副牌(即牌的初始化)二是洗牌,三是发牌。这三个步骤在程序中通过三个函数来实现: void Build_Show(int HuaSe[],float DianShu[],char ShuZi[]); void Wash_Card(void); void Get_Card(int n);
三.流程图
Main()函数流程图
Build_Show()的流程图
Wash_Card()的流程图
DuoRen()的流程图
四。程序清单 #define N 5
#include
} Card[52]; /*To store the color,number and the points*/
void Build_Show(int HuaSe[], float DianShu[], char ShuZi[]); /*Establish a pair of cards and show it to the player*/ void Wash_Card(void); /*Wash the cards*/
void Get_Card(int n) ; /*Give the player cards and the result*/ void DuoRen();
int main(void) {
int flag, n;
int HuaSe[4]={3,4,5,6}; /*Store the color*/
char ShuZi[13]={'A','K','Q','J','0','9','8','7','6','5','4','3','2'}; /*Store the number*/
float DianShu[13]={1,0.5,0.5,0.5,10,9,8,7,6,5,4,3,2};/*Store the points*/ Build_Show(HuaSe, DianShu,ShuZi); /*Establish the card and show it*/ do{
Wash_Card(); /*Wash cards*/
a: puts("\nPlease input the number of the player:"); scanf("%d", &n); switch(n) {
case 1:puts("You play with the computer!"); break;
case 2:puts("You two play!"); break;
case 3:puts("You three play!"); break;
case 4:puts("You four play!"); break;
case 5:puts("You five play!"); break;
case 6:puts("You six play!"); break;
case 7:puts("You seven play!"); break;
篇二:课程设计报告——十点半游戏
数 据 结 构
课程设计报告
设计题目: 十点半游戏
院 系: 经济管理学院 专业班级: 电子商务2009-2班 学生姓名: 陈志勇、李琳、周敏 指导教师: 周长红
2011年7月8日
目 录
1.设计内容 .......................................... 1
1.1问题描述 .................................................................................................... 1
1.2设计要求 .................................................................................................... 1
1.3开发环境 .................................................................................................... 1
1.4研究思路 .................................................................................................... 1
2.设计步骤 .......................................... 2
2.1需求分析 .................................................................................................... 2
2.2概要设计 .................................................................................................... 2
2.3详细设计 .................................................................................................... 5
2.4调试分析 .................................................................................................. 28
2.5测试结果 .................................................................................................. 36
3.设计成果展示 ..................................... 54
3.1用户手册 .................................................................................................. 54
3.2程序运行部分截图 .................................................................................. 55
4.总结与心得体会 ................................... 58
1.设计内容
1.1问题描述
一副扑克(除去王)第一轮玩者依次取一张牌。之后玩者根据自己的牌的总的点数选择继续要牌或比较大小。(玩家可以选择不要牌,但一旦选择不要牌,以后就不能要牌)玩家的点数一旦超过10.5,不能再要牌。其中扑克牌中的j、q、k都算0.5点。如果牌的总点数都大于10.5或都小于10.5,大者赢;如果一个大于10.5而另一个小于10.5,小于10.5者胜。
1.2设计要求
(1)由电脑随机洗牌,并可以输入游戏玩家个数;
(2)根据游戏玩家由电脑发牌,并由玩家输入是否要牌;
(3)根据规则自动判断胜负。
1.3开发环境
Microsoft visual c++6.0
1.4研究思路
十点半游戏这个题目主要包括以下几个要点:电脑如何随机洗牌,玩家如何要牌,所有玩家要牌结束后如何进行胜负判断并输出结果。
在电脑随机洗牌的问题上,使用c语言中的随机函数rand()来实现,j=rand()%(52-i);获得随机数,使电脑随机换牌,达到洗牌的目的。在玩家要牌时,首先要根据玩家已有的点数判断是不是能继续要牌,在确保可以继续要牌的条件下,询问玩家是否要牌。当所有玩家都停止要牌时,计算出每个玩家的最终点数,然后进行比较,输出结果。
整个程序代码由C语言编写,在Microsoft visual c++6.0的环境下运行调试。
2.设计步骤
2.1需求分析
游戏要求两种模式:人机对战和多人对战,并
玩家根据提示,输入1或者0和正确的玩家个数来进行游戏,若输入的不符合要求,则会提示“输入错误!请重新输入:”。在每一轮游戏开始时,电脑自动获得一副新牌,并完成随机洗牌。根据玩家的输入,选择对应的模式进行游戏。人机对战时,电脑可以知道自己要拿到的下一张牌是什么,然后判断是否要牌,以保证游戏中电脑的绝对优势。游戏中,玩家或电脑每次拿牌后都进行累加,以便判断是否可以再要牌或让玩家选择是否要牌。在所有玩家都不要牌了之后,程序开始比较各个玩家的点数,得出获胜者,最终输出一轮游戏的获胜者。
2.2概要设计
程序中定义的所有变量:
全局变量 int t;
结构体变量 struct book Card[52];
结构体中int color; char number; float num;
Build Show子函数中 int HuaSe[]; float DianShu[]; char ShuZi[]; int i, j;
Get Card子函数中 int n, i, j, k, flag, flag2; float sum_m, sum_c; struct book Man[52], Computer[52];
DuoRen子函数中 struct book Man[8][52]; int n, i, m, a[8], k, flag[8], flag2, s,x;
篇三:游戏e家十点半规则简介
游戏e家十点半规则简介
十点半简介 十点半游戏流行于浙江一带,基本玩法由2到4个人玩,含大小王的54张牌
十点半游戏,游戏者的目标是使手中的牌的点数之和在不超过十点半的情况下尽量大。据普通10点半游戏,增加特殊牌型(人五小、五小),并添加了加倍功能,使游戏更有乐趣,更刺激,每局输赢上限为2000万游戏币,每日的输赢上限为8000万游戏币,超过该限额的玩家将不能继续游戏,请隔日再进来游戏
一、基本规则
发牌:由庄家开始发牌,轮流发给闲张第一张,庄家停牌后,系统再给闲家发牌。 要牌:玩家可以根据自己底牌的点数选择是否要牌,最多可以要4张。
点牌:A、2、3、4、5、6、7、9、10,其中A为1点其他牌为本身的点数。
人牌:大小王、J、Q、K被称为“人牌”,都算做半点。
二、牌型说明
人五小:5张人牌。
五小:5张牌不都是人牌,且总点数小于十点半。
十点半:5张牌以下,牌的总点数等于十点半。
牌型大小:人五小>五小>十点半>十点半以下
十点半以下以点数比较大小,庄家分别和每个闲家比较大小,失败者则输掉底注。(10点>9点半>9点>....>1点>0点半)
提示:当点数相同时,牌张数多者胜。同点同张的话,庄家胜。
每局的底注由银子最少的玩家、本局庄家的银子数这两个数据决定,封顶为80万。 根据玩家数量的不同底注计算方法也不同:
· 两个玩家时,银子最少的玩家的1/15。
· 两个以上玩家时,底注为当前庄家的银子不小于银子最少的玩家的3倍,则底注为银子最少的玩家的1/5;当前庄家的银子小于银子最少的玩家的3倍,则底注为银子最少的玩家的1/15。
篇四:C# 10点半游戏
软 件 学 院
课程设计报告书
课程名称 计算机网络编程
设计题目 10点半游戏
专业班级
学 号
姓 名
指导教师
2014年 1 月
篇五:十点半单人分析仪
介绍:单人分析仪上海至尊科技★本公司是亚州娱乐产品界一家大型娱乐软硬件开发公司,集科研,教学,生产销售一体化企业。上海至尊科技最新开发普通牌分析软件,此软件根据图像自动识别,集成数字化原理,不用提前安装,仪器随身携带,不受场地限制!更多高科技咨询【一八六二一五四五五五九】在线扣扣【七零九一二八四五六】
字数作文