您好,欢迎访问三七文档
郑州轻工业学院实训报告实训名称:停车位游戏指导教师:姓名:学号:班级:提交日期:11.实训目的通过开发一款停车场游戏程序,熟练掌握C#编程语言、面向对象程序设计方法和可视化编程技术。2.实训题目使用C#编程语言,开发一款停车场游戏。3.功能描述游戏基本功能描述如下:1)停车场有5种颜色的汽车和6个车位。2)每一辆汽车对应颜色的车位。3)车位之间有的有通道,有的没有。4)最初5种颜色的汽车未停在对应颜色的车位。5)玩家点击汽车,实现将该汽车沿通道移动到空闲的车位上;当该汽车与空间的车位之间没有通道时,则不移动汽车。6)玩家可以点击按钮“自来一次”,重新开始游戏。27)当所有的汽车都听到对应颜色的车位上时,游戏成功。8)游戏有计分功能,分数点击一次减一。9)游戏有下一关,地图难度增加。10)游戏有当前时间显示。4.需求分析根据功能描述可知,停车场游戏的系统结构图如下所示。5.设计说明根据需求分析可知,车位具有位置、大小和颜色等属性,定义Space类用于描述车位的信息。通道具有起点和终点两个属性,定义Road类用于描述通道的信息以及通道与车位之间的关系。车具有位置和颜色等属性,定义Car类用于描述车的信息以及车停留在哪个车位,并实现车的移动功能。为了使游戏的运行更易于控制,定义Game类用于启动游戏、控制游戏和结束游戏。综上所述,在停车场游戏中,有Space(车位)、Road(通道)、Car(车)、Game(游戏)和Form1(用户接口)五个类。停车场游戏的逻辑模型如下图所示。玩家车车位路径下一关用户接口36.源代码Form1.cs源码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassForm1:Form{privateGamegame;publicForm1(){InitializeComponent();score.Text=Convert.ToString(Convert.ToInt32(score.Text));game=newGame();4for(inti=0;i5;i++){stringname=pictureBox+i.ToString();PictureBoxpBox=(PictureBox)this.Controls.Find(name,false)[0];pBox.Location=newPoint(game.cars[i].center.X-pictureBox0.Width/2,game.cars[i].center.Y-pictureBox0.Height/2);pBox.Visible=true;}}privatevoidpictureBox0_Click(objectsender,EventArgse){PictureBoxpBox=(PictureBox)sender;if(game.df0){game.df--;score.Text=game.df.ToString();}elsepictureBox0.Enabled=false;if(game.MoveCar(0,game.cars[0].spaceNum,game.freeSpaceNum)){pBox.Location=newPoint(game.cars[0].center.X-pBox.Width/2,game.cars[0].center.Y-pBox.Height/2);if(game.Success()){MessageBox.Show(您的得分为:+game.df.ToString(),恭喜!成功了,MessageBoxButtons.OK,MessageBoxIcon.Information);}}else{MessageBox.Show(不能移动);}if(game.df1){MessageBox.Show(剩余步数为0,你没法再走了);}}privatevoidpictureBox1_Click(objectsender,EventArgse){PictureBoxpBox=(PictureBox)sender;if(game.df0)5{game.df--;score.Text=game.df.ToString();}elsepictureBox1.Enabled=false;if(game.MoveCar(1,game.cars[1].spaceNum,game.freeSpaceNum)){pBox.Location=newPoint(game.cars[1].center.X-pBox.Width/2,game.cars[1].center.Y-pBox.Height/2);if(game.Success()){MessageBox.Show(您的得分为:+game.df.ToString(),恭喜!成功了,MessageBoxButtons.OK,MessageBoxIcon.Information);}}else{MessageBox.Show(不能移动);}if(game.df=0){MessageBox.Show(剩余步数为0,你没法再走了);}}privatevoidpictureBox2_Click(objectsender,EventArgse){PictureBoxpBox=(PictureBox)sender;if(game.df0){game.df--;score.Text=game.df.ToString();}elsepictureBox2.Enabled=false;if(game.MoveCar(2,game.cars[2].spaceNum,game.freeSpaceNum)){pBox.Location=newPoint(game.cars[2].center.X-pBox.Width/2,game.cars[2].center.Y-pBox.Height/2);if(game.Success()){MessageBox.Show(您的得分为:+game.df.ToString(),恭喜!6成功了,MessageBoxButtons.OK,MessageBoxIcon.Information);}}else{MessageBox.Show(不能移动);}if(game.df=0){MessageBox.Show(剩余步数为0,你没法再走了);}}privatevoidpictureBox3_Click(objectsender,EventArgse){PictureBoxpBox=(PictureBox)sender;if(game.df0){game.df--;score.Text=game.df.ToString();}elsepictureBox3.Enabled=false;if(game.MoveCar(3,game.cars[3].spaceNum,game.freeSpaceNum)){pBox.Location=newPoint(game.cars[3].center.X-pBox.Width/2,game.cars[3].center.Y-pBox.Height/2);if(game.Success()){MessageBox.Show(您的得分为:+game.df.ToString(),恭喜!成功了,MessageBoxButtons.OK,MessageBoxIcon.Information);}}else{MessageBox.Show(不能移动);}if(game.df=0){MessageBox.Show(剩余步数为0,你没法再走了);pictureBox3.Enabled=false;7}}privatevoidpictureBox4_Click(objectsender,EventArgse){PictureBoxpBox=(PictureBox)sender;if(game.df0){game.df--;score.Text=game.df.ToString();}elsepictureBox4.Enabled=false;if(game.MoveCar(4,game.cars[4].spaceNum,game.freeSpaceNum)){pBox.Location=newPoint(game.cars[4].center.X-pBox.Width/2,game.cars[4].center.Y-pBox.Height/2);if(game.Success()){MessageBox.Show(您的得分为:+game.df.ToString(),恭喜!成功了,MessageBoxButtons.OK,MessageBoxIcon.Information);}}else{MessageBox.Show(不能移动);}if(game.df=0){MessageBox.Show(剩余步数为0,你没法再走了);pictureBox4.Enabled=false;}}privatevoidbuttonStart_Click(objectsender,EventArgse){game.PaintClear(this.CreateGraphics());score.Text=Convert.ToString(Convert.ToInt32(100));game=newGame();for(inti=0;i5;i++){stringname=pictureBox+i.ToString();8PictureBoxpBox=(PictureBox)this.Controls.Find(name,false)[0];pBox.Location=newPoint(game.cars[i].center.X-pictureBox0.Width/2,game.cars[i].center.Y-pictureBox0.Height/2);pBox.Visible=true;pBox.Enabled=true;}}privatevoidbuttonStart_Paint(objectsender,PaintEventArgse){game.PaintParkingLot(this.CreateGraphics());}privatevoidscore_Click(objectsender,EventArgse){}privatevoidlabel1_Click(objectsender,EventArgse){}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show(1.单击小车可以移动到其所在圆圈连线对应的圆圈内\n2.将小车移动到对应颜色圆圈内即为获胜\n3.得分高玩得好,帮助,MessageBoxButtons.OK,MessageBoxIcon.Information);}privatevoidbuttonNext_Click(objectsender,EventArgse){game.PaintClear(this.CreateGraphics());game.Next();for(inti=0;i5;i++){stringname=pictureBox+i.ToString();PictureBoxpBox=(PictureBox)this.Controls.Find(name,false)[0];pBox.Location=newPoint(game.cars[
本文标题:C#停车位游戏
链接地址:https://www.777doc.com/doc-3382403 .html