- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C停车位游戏剖析
1. 实训目的 通过开发一款停车场游戏程序,熟练掌握C#编程语言、面向对象程序设计方法和可视化编程技术。2. 实训题目使用C#编程语言,开发一款停车场游戏。3. 功能描述游戏基本功能描述如下: 1) 停车场有 5 种颜色的汽车和 6 个车位。 2) 每一辆汽车对应颜色的车位。 3) 车位之间有的有通道,有的没有。 4) 最初 5 种颜色的汽车未停在对应颜色的车位。 5) 玩家点击汽车,实现将该汽车沿通道移动到空闲的车位上;当该汽车与空间的车位之间没有通道时,则不移动汽车。 6) 玩家可以点击按钮“自来一次”,重新开始游戏。 7) 当所有的汽车都听到对应颜色的车位上时,游戏成功。8) 游戏有计分功能,分数点击一次减一。9) 游戏有下一关,地图难度增加。10)游戏有当前时间显示。4. 需求分析根据功能描述可知,停车场游戏的系统结构图如下所示。 5. 设计说明根据需求分析可知,车位具有位置、大小和颜色等属性,定义Space类用于描述车位的信息。通道具有起点和终点两个属性,定义Road类用于描述通道的信息以及通道与车位之间的关系。车具有位置和颜色等属性,定义Car类用于描述车的信息以及车停留在哪个车位,并实现车的移动功能。 为了使游戏的运行更易于控制,定义Game类用于启动游戏、控制游戏和结束游戏。 综上所述,在停车场游戏中,有Space(车位)、Road(通道)、Car(车)、Game(游戏)和Form1(用户接口)五个类。停车场游戏的逻辑模型如下图所示。6. 源代码 Form1.cs源码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication2{ public partial class Form1 : Form { private Game game; public Form1() { InitializeComponent(); score.Text = Convert.ToString(Convert.ToInt32(score.Text)); game = new Game(); for (int i = 0; i 5; i++) { string name = pictureBox + i.ToString(); PictureBox pBox = (PictureBox)this.Controls.Find(name,false)[0]; pBox.Location = new Point(game.cars[i].center.X - pictureBox0.Width / 2, game.cars[i].center.Y - pictureBox0.Height / 2); pBox.Visible = true; } } private void pictureBox0_Click(object sender, EventArgs e) { PictureBox pBox = (PictureBox)sender; if (game.df 0) { game.df--; score.Text = game.df.ToString(); } else pictureBox0.Enabled = false; if (game.MoveCar(0, game.cars[0].spaceNum, game.freeSpaceNum)) { pBox.Location = new Point(game.cars[0].center.X - pBox.Width / 2, game.cars[0].center.Y - pBox.Height / 2)
文档评论(0)