- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
delphi实例3--字母拼图游戏
实例三 数字拼图游戏
【程序说明】
曾经有个非常流行的游戏——拼图游戏,现在在网络上、手机上和游戏汇萃集中仍然流行着。本例从另外一个思路实现了数字拼图游戏。从菜单中选择“新游戏”后,19个数字就会随机显示到19个SpeedButton上。我们要做的就是将这19个数字排列好,就算游戏成功。程序运行结果如图3-1所示。
图3-1 数字拼图游戏
【编程思路】
这个游戏的思路很简单:将随机产生的数字有序化。 这个游戏的特点如下:
1、数字随机显示。
2、背景可以自行更换。
3、数字颜色可以更换。
本例游戏的实现思路是:游戏开始,数字随机生成后,先判断空位的位置,再判断空位附近的按钮,并检测这些按钮的可移动方向,然后将这些数字按钮排列成有序即可,
【编程步骤】.
1.选择File|New|Application,新建一个应用程序。
2.添加控件和界面布局。向Form上添加19个SpeedButton,1个MainMenu、ColorDialog、StatusBar、Panel、 OepnPictureDialog和Image。这些控件的布局如图3-2所示。
图3-2 控件和窗口布局
3.控件主要属性设置。参照表3-1设置各控件的主要属性。
表3-1 控件的主要属性设置
控 件 名(Name) 属 性 属性值 MainMenu1 Items Timer1 Enabled False Panel1 Color clBlack 4.编写代码。
(1)首先,要定义本例用到的几个全局变量。
var
Form1: TForm1;
x,y:integer; //数字按钮移动的点坐标
vright,vleft,vdown,vup:boolean; //数字移动方向的判断
vright2left,vleft2right,vdown2up,vup2down:boolean; //数字移动方向的判断
a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12, a13,a14,a15,a16,a17,a18,a19:integer; //19个数字
RanNums:integer; //随机数字
(2)单击Newgame1(“新游戏”),添加下列代码以响应OnClick事件,开启Timr1,随机生成19个数字,并将这些数字显示到19个SpeedButton中。
procedure TForm1.Newgame1Click(Sender: TObject);
begin
RanNums:=random(20); //显示speedbutton1上的数字
if RanNums=0 then
RanNums:=RanNums+1;
a1:=RanNums;
speedbutton1.caption:=IntToStr(RanNums);
repeat //显示speedbutton2上的数字
RanNums:=random(20);
if RanNums=0 then RanNums:=RanNums+1;
a2:=RanNums;
speedbutton2.caption:=inttostr(RanNums);
until(a2a1);
repeat //显示speedbutton3的数字
RanNums:=random(20);
if RanNums=0 then RanNums:=RanNums+1;
a3:=RanNums;
speedbutton3.caption:=inttostr(RanNums);
until(a3a1)and(a3a2);
repeat //显示speedbutton4上的数字
RanNums:=random(20);
if RanNums=0 then RanNums:=RanNums+1;
a4:=RanNums;
speedbutton4.caption:=inttostr(RanNums);
until(a4a1)and(a4a2)and(a4a3);
repeat //显示speedbutton5上的数字
RanNums:=random(20);
if RanNums=0 then RanN
您可能关注的文档
- 3新建火电机组并网安全性评价标准5.doc
- 4S店24小时外出救援管理.doc
- 4S店提车注意事项B(分项核对,更加可靠).doc
- 4个月—2岁宝宝辅食.doc
- 4个月以上宝宝辅食制作百例.doc
- 4月25日红领巾广播稿.doc
- 4D动感座椅.doc
- 4数组单元练习.doc
- 4煤煤仓修复措施.doc
- 4+1档手动变速箱设计.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)