C#课程设计游戏21点

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

目录

一、课程设计的目的与要求 (2)

1.1 目的: (2)

1.2 要求: (2)

二、题目说明 (2)

2.1程序开发背景 (2)

2.2开发工具介绍 (2)

三、总体设计 (3)

四、详细说明 (3)

4.1 系统实施 (3)

五、遇到的问题和解决方法 (9)

六、课程设计总结 (9)

七、参考文献 (10)

一、课程设计的目的与要求

1.1 目的:

(1)能够利用所学的基本知识和技能,解释和应用程序开发所涉及的相关知识。

(2)基本掌握面向对象程序开发的基本思路和方法;

(3)要求学生达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;

(4)通过学习积累掌握简单的记事本,通讯录以及多媒体播放的开发技术。

1.2 要求:

(1)掌握常用控件以及控件的常用属性的使用方法。

(2)掌握C#语言的异常处理技术,能够使用.NET各种调试方法调试代码,掌握帮助的使用方法。(3)熟悉.NET开发环境,能够使用C#语言在.NET平台上独立设计、开发WINDOWS应用程序。

(4)程序中应有不少于100~300行的自行编写的代码,代码需书写详细注释。

(5)程序中应有不少于100~300行的自行编写的代码,代码需书写详细注释。

二、题目说明

2.1程序开发背景

黑杰克又名BlackJack(简称21点),起源于法国,现已流传到世界各地。该游戏由2 到 6 个人玩,使用除大小王之外的52 张牌,游戏者的目标是使手中的牌的点数之和不超过21 点且尽量大。有着悠久的历史。黑杰克简称为21点,1700年左右法国赌场就有这种21点的纸牌游戏。1931年,当美国内华达州宣布赌博为合法活动时,21点游戏第一次公开出现在内华达州的赌场俱乐部,15年内,它取代掷骰子游戏,而一举成为非常流行的赌场庄家参与的赌博游戏。

21点本为赌博游戏,并不值得推荐,但其游戏性和娱乐性却很强,而且作为一款数字牌类游

能一定程度上锻炼逻辑思维和运算能力,本着这种想法,开发者想把这款传统的赌博游戏制作成适合各类人群休闲娱乐的小游戏,同时通过实践更加掌握c#平台的开发过程

2.2开发工具介绍

本程序是在Microsoft Visual studio C# 2005 Express的开发环境下完成的。

三、总体设计

本程序为21点小游戏,运用c#的windows应用程序开发,首先制作主窗体,并在其上添加menustrip,picturebox,button,等一系列控件,并设置窗体和控件的相关属性,最终制作出美观大方的游戏主窗体。然后开始游戏的后台程序编写,把54扑克牌的图片分别重命名为0.jpg~53.jpg,并用random类的.Next方法产生0~53的伪随机数,用(随机数%3+1)的算法算出牌面点数,以“tupian//”+随机数.Tostring+”.jpg”作为相应picturebox的图片地址进行显示。当玩家要牌结束后,开始用相同的方法给庄家发牌,在庄家没有爆点的情况下将玩家跟庄家的点数进行比较,最后用lable 的Text属性显示最终结果。

四、详细说明

4.1 系统实施

总体概述“21点小游戏

1.功能简介:本软件为21点小游戏,主要实现玩家跟电脑且以电脑为庄家的游戏实现,玩家可以

通过新游戏和退出菜单开始和关闭游戏,通过“发牌”“要牌”“开牌”“洗牌”“结束”等按钮操作游戏

2.游戏界面截图

图1. 游戏主界面

3.21点小游戏关键代码和描述:

(1)menuStrip菜单中的“新游戏”和“退出”选项:

图2. 游戏菜单

private void 新游戏ToolStripMenuItem_Click(object sender, EventArgs e) //新游戏,将游戏中所有的数据清空或归位;

{

index = 0; count = 0;

a = 0;

b = 0;

c = 0;

d = 0; f = 0; g = 0; h = 0; o = 0; ii = 1; ss = 0; aa =

0; diannao = 0; q1 = 0; qq = 0; duoyu = 0; xiazhu = 0; zongshu = 0;

pictureBox1.Hide(); pictureBox2.Hide(); pictureBox3.Hide();

pictureBox4.Hide();

pictureBox5.Hide(); pictureBox6.Hide(); pictureBox7.Hide();

pictureBox8.Hide();

pictureBox9.Hide(); pictureBox10.Hide(); pictureBox11.Hide();

pictureBox12.Hide();

pictureBox13.Hide(); pictureBox14.Hide(); button4.Enabled = false;

button8.Enabled = false; button7.Enabled = false; button6.Enabled = true;

button9.Enabled = true;

button9.Enabled = true;

label13.Text = "";

label11.Text = "";

private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}

(2)“发牌”和“加牌”按钮的实现,也是主要功能之一:

v

图3. 发牌加牌按钮

用0~53分别代表扑克牌的54张牌面,通过使用Random类的.Next方法随机生成0~53的伪随机数,每个数字分别代表相应的一张扑克牌,使用(随机数 % 3 +1)的方法算出牌面对应点数,大于10点的转为10点;另外定义一个变量ii,作为当前生成的牌是第几张的标识,配合switch选择语句识别当前所发的牌,并做出相关的新牌生成,重复牌判断和点数累计,21点黑杰克判断以及是否爆点判断

switch (ii) //ii是作为进入玩家加牌的

数值定义,因为玩家是一张

一张牌来增加的。

{

case 1: //ii的默认值为1;

{

相关文档
最新文档