搜档网
当前位置:搜档网 › Javascript实现打地鼠小游戏

Javascript实现打地鼠小游戏

Javascript实现打地鼠小游戏
Javascript实现打地鼠小游戏

JavaScript实现打地鼠小游戏

一、项目简介

本项目名为打地鼠,是大家耳熟能详的一款经典的小游戏。游戏最终将会以html 文件形式完成,需要使用Firefox等浏览器打开才能看到游戏的最终效果。此外,游戏将会采用JavaScript实现整个逻辑流程,所以建议没有JavaScript基础的同学首先学习javaScript教程。

游戏最终效果截图如下:

二、核心方法介绍

在打地鼠小游戏中将会多次用到JavaScript中的计时函数:

?setTimeout()

?setInterval()

这两个函数的作用很大,不仅仅在本次的小游戏中,在很多的JavaScript程序中都会有“他们”的身影。接下来将会详细的剖析这两个函数。

1. setTimeout()

用于在指定的毫秒数后调用函数或计算表达式(只执行一次,可通过创建一个函数循环重复调用setTimeout,来实现重复操作)

用法示例

?setTimeout("functionName()",1000);

?setTimeout(functionName,1000);

调用一个无参的方法很简单,但当我们需要调用一个带有参数的函数时,问题就来了。

解决的方法就是再写一个函数,该函数返回一个不带参数的函数。示例如下:

function show(name){

alert(name + " ,你好!");

}

function returnFun(name){

return function(){

show(name);

};

}

setTimeout(returnFun("小明"),1000);

clearTimeout()

立即终止setTimeout()方法。示例:

var timeId = set Timeout(...);

clearTimeout(timeId);

2. setInterval()

可按照指定的周期(毫秒)来调用函数或计算表达式。

与setTimeout()不同,不论调用的函数或计算表达式需要多长时间才能执行完,它都只是简单的每隔一定时间就重复执行一次那个函数或计算表达式。

用法示例

?setInterval("functionName()",1000);

?setInterval(functionName,1000);

clearInterval()

立即终止setInterval()方法。示例:

var interId = set Interval(...);

clearInterval(interId);

三、游戏制作

1. 功能逻辑设计

功能包括:

?得分统计

?计算成功率

?老鼠图片的隐藏、显示

?判断是否点中老鼠

?最终结果显示

?错误提示

流程设计:

?点击“开始游戏”按钮游戏开始,否则将提示“请点击开始游戏”字样

?分数、命中率显示重置为“0”,倒计时开始(默认为30秒)

?老鼠图片不断显示、隐藏,玩家可点击鼠标左键进行游戏

?当30秒倒计时结束或者玩家主动点击“结束按钮”时,游戏结束并显示游戏结果

游戏设计简单,并未添加其他丰富的游戏设计,也没有添加动画、声音等特殊效果,其目的是想带领大家从简洁的游戏逻辑设计中清楚地体会到从设计到开发、完善的乐趣,能通过简单的几行代码也能轻松实现一个属于自己制作的小游戏。

2. 框架设计

游戏通过html文件实现,自然离不开html标签,常见的打地鼠游戏都是规则的几个固定位置随机出现老鼠,因此本次游戏设计将会采用

标签来布局,得分、命中率等结果显示将使用标签。html代码(包括css)如下:

打地鼠

这样打地鼠小游戏的结构设计就完成了,可以保存后通过Firefox浏览器查看当前效果。

3. 功能逻辑实现

代码配上详细注解:

var td = new Array(), //保存每个格子的地鼠

playing = false, //游戏是否开始

score = 0, //分数

beat = 0, //鼠标点击次数

success = 0, //命中率

knock = 0, //鼠标点中老鼠图片次数

countDown = 30, //倒计时

interId = null, //指定setInterval()的变量

timeId = null; //指定setTimeout()的变量

//游戏结束function GameOver(){

timeStop();

playing = false;

clearMouse();

alert("游戏结束!\n你获得的分数为:"+score+"\n命中率为:"+success); success = 0;

score = 0;

knock = 0;

beat = 0;

countDown = 30;

}

//显示当前倒计时所剩时间function timeShow(){

document.form1.remtime.value = countDown;

if(countDown == 0){

GameOver();

return;

}else{

countDown = countDown-1;

timeId = setTimeout("timeShow()",1000);

}

}

//主动停止所有计时function timeStop(){

clearInterval(interId);//clearInterval()方法返回setInterval()方法的id

clearTimeout(timeId);//clearTime()方法返回setTimeout()的id

}

//随机循环显示老鼠图片function show(){

if(playing)

{

var current = Math.floor(Math.random()*25);

//这里的路径也需要根据自己的实际文件路径来修改

document.getElementById("td["+current+"]").innerHTML = '';

//使用setTimeout()实现3秒后隐藏老鼠图片

setTimeout("document.getElementById('td["+current+"]').innerHTML=''", 3000);

}

}

//清除所有老鼠图片function clearMouse(){

for(var i=0;i<=24;i++)

{

document.getElementById("td["+i+"]").innerHTML="";

}

}

//点击事件函数,判断是否点中老鼠function hit(id){

if(playing==false)

{

alert("请点击开始游戏");

return;

}

else

{

beat +=1;

if(document.getElementById("td["+id+"]").innerHTML!="")

{

score += 1;

knock +=1;

success = knock/beat;

document.form1.success.value = success;

document.form1.score.value = score;

document.getElementById("td["+id+"]").innerHTML="";

}

else

{

score += -1;

success = knock/beat;

document.form1.success.value = success;

document.form1.score.value = score;

}

}

}

//游戏开始function GameStart(){

playing = true;

interId = setInterval("show()",1000);

document.form1.score.value = score;

document.form1.success.value = success;

timeShow();

}

现在就可以让老鼠动起来了。

4. 总结

到此,整个游戏从设计到制作就完全介绍完了。运行一下自己制作的小游戏,虽然简单,但是其中的乐趣是不言而喻的。

再看看代码,也没有很多晦涩难懂的复杂算法或逻辑,这也是JavaScript容易入门的原因。但是JavaScript是一门弱类型语言,语法很灵活,所有要真真掌握JavaScript还是需要花一点功夫。

最后,游戏虽然完成了,但是代码的优化也是每一个项目所必须的。例如:在html代码中每个标签都绑定了onclick事件对象,这样繁琐的代码显然不是我们想要的,但当我们使用js库,比如最受人欢迎的jQuery,我们的代码会更加简洁。像这样需要优化的代码还有很多,希望同学们能有自己的创新,不断的完善、优化这个小游戏!

感谢你的学习。

看了来自Leetao同学的细心测评,在最后留给大家几个思考题:

思考题1:界面的美观优化,大开你的脑洞,把打地鼠的游戏界面能设计得更美观得体。

思考题2:在命中率结果显示处,未做精确控制,显得数据不好看,希望大家能思考一下,能把结果控制在两位小数。

思考题3:修改最后的结果提示,去掉alert( ),自己尝试写一个结果提示的弹出特效吧。

思考题4:游戏不过瘾,试试添加更多的关卡限制,丰富你的打地鼠小游戏吧,做完这题,相信你能收获很多。

再次感谢Leetao同学的细心评测,正是你们细心的评测付出,才能让我们的文档越来越丰富、实用,让大家学到想学的东西。因为不浪费大家的学习时间是我们的的宗旨,所以我们每一次都在努力进步,你们的声音就是支持我们进步的动力,由衷感谢各位。

更多基础课、项目课欢迎登陆实验楼官方网站!

数字电路课程设计打地鼠资料整理

xx科技大学 数电课程设计报告 仿真设计课程名称:数字电子实验仿真仿真设计项目名称:打地鼠游戏 院系:计算机与通信工程 专业班级: 组长: 组员:

打地鼠游戏 一、实验仿真目的: 1、掌握时序逻辑电路的一般设计办法。 2、掌握计数器的设计原理和应用。 3、掌握组合逻辑电路的一般设计办法。 4、掌握定时电路的设计和使用。 5、掌握译码显示电路的原理和应用。 6、通过打地鼠游戏的设计,锻炼对数字单元电路的灵活应用和综合设计能力,提高学生综合应用知识的能力和创新能力。 二、实验所用的主要元器件: 双D触发器74LS74脉冲源计数器2to4译码器

以及若干基础数电元器件 4to16译码器 三、实验仿真电路原理 总实现图: 各模块实现的原理及步骤: A.产生四个指示灯的随机点亮: 1.使用四个计数器并行运行

10进制计数器偶数循环0-2-4-6-8 奇数循环1-3-5-7-9七进制循环 2.通过一个四进制循环来选择这四个计数器的当时时刻的数字, ,如图,四进制循环接上74HC139N。 3.选择数字 使用D触发器做了一个并入并处的移位寄存器,将四个计数器产生的数字的二进制送入寄存器中,

上图即使实现选择四个计数器数字 4.实现灯的随机点亮 将上图选择的二进制数字接入74HC154W4to10的译码器中,将使输出端1到10管脚有效,使(210)、(39)、(48)、(57)分别使能一个灯。 B.打地鼠开关的设计 使用的是可复位的开关,把开关和灯同接一个与门,同时有效则输出高电平。 C.实现打地鼠记分功能

把开关的有效电位产生的脉冲接入计数器的CLK端,则实现每次开关和灯同时有效产生的脉冲能被记录。 D.实现每10次暂停电路 将四盏灯或接入10进制计数器的CLK端,十次满之后RCO输出高电平,使用其使能四进制计数器的CLR端,实现功能。 E.时钟模块电路的设计 电路接通电源的瞬间,由于电容C1来不及充电,Vc=0v,所以555定时器状态为1,输出Vo为高电平。同时,集电极输出端(DIS)对地断开,电源Vcc对电容C1充电,电路进入暂稳 态I,此后,电路周而复始地产生周期性的输出脉冲。多谐振荡器两个暂稳态的维持时间取决于RC充、放电回路的参数。震荡频率公式

嵌入式--打地鼠游戏编程

void ReadScoreFile();//读取历史分数记录void WriteScoreFile();//将玩家的游戏分数写到文件中void SortList();//对玩家分数排序void InitData();//初始化数据void EndGame();//游戏结束void clearPicture(); //还原背景图void drawPicture(int bmpNum);//画图void chilkTrue(int x,int y);//判定是否击中BOOL CDadishuDlg::OnInitDialog() 游戏初始化函数。void CMengSnakeDlg::OnTimer(UINT nIDEvent) 计时器函数,自动根据时间变量来执行程序,随机为地鼠生成一个坐标,并绘制到地图上。void CDadishuDlg::OnLButtonDown(UINT nFlags, CPoint point) 消息处理函数,鼠标左键点击触发,主要用来打击地鼠。void CDadishuDlg::OnPaint() 重绘函数,实现地图区域的绘制游戏界面部分相关代码:OOL CDadishuDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon CenterWindow(GetDesktopWindow()); // center to the hpc screen // TODO: Add extra initialization here HWND hwndCB; hwndCB = CommandBar_Create(AfxGetInstanceHandle(), GetSafeHwnd(),0); CommandBar_InsertMenubar(hwndCB, AfxGetInstanceHandle(), IDR_MENU1, 0); return TRUE; // return TRUE unless you set the focus to a control } //还原背景图void CDadishuDlg::clearPicture() { PDC = GetDC(); CDC bmpDC; bmpDC.CreateCompatibleDC(PDC); CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP3); BITMAP bm; bmp.GetBitmap(&bm); bmpDC.SelectObject(bmp); int px=40+randx*80+1; int py=40+randy*80+1; PDC->StretchBlt (px,py,78,78,&bmpDC,0,0,bm.bmWidth, bm.bmHeight,SRCCOPY); } //画图void CDadishuDlg::drawPicture(int bmpNum) { PDC = GetDC(); CDC bmpDC; bmpDC.CreateCompatibleDC(PDC); CBitmap bmp; if(bmpNum==1) bmp.LoadBitmap(IDB_BITMAP1); else bmp.LoadBitmap(IDB_BITMAP2); BITMAP bm; bmp.GetBitmap(&bm); bmpDC.SelectObject(bmp); int px=40+randx*80+1; int py=40+randy*80+1; PDC->StretchBlt (px,py,78,78,&bmpDC,0,0,bm.bmWidth, bm.bmHeight,SRCCOPY); } //判定是否击中void CDadishuDlg::chilkTrue(int x,int y) { int px_min=40+randx*80; int px_max=40+(randx+1)*80; int py_min=40+randy*80; int py_max=40+(randy+1)*80; if(x>=px_min&&x<=px_max&&y>=py_min&&y<=py_max){ scorce+=10; drawPicture(2); } else{ Total--; scorce-=10; clearPicture(); } if(Total==0) { EndGame(); TS *ts=new TS; ts->m_Value=scorce; ts->DoModal(); } } // void CDadishuDlg::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here CDC *pDC=new CClientDC(this); CPen pen;//画笔pen.CreatePen(PS_SOLID,1,RGB(0,0,0)); CPen *poldpen=pDC->SelectObject(&pen); pDC->Rectangle(40,40,280,280); pDC->SelectObject(poldpen); //new出来的一般都需要delete来回收内存。delete pDC; // Do not call CDialog::OnPaint() for painting messages } //鼠标点击事件void CDadishuDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if(!start) return; chilkTrue(point.x,point.y); CDialog::OnLButtonDown(nFlags, point); } // void CDadishuDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default switch(nIDEvent) { case 1: clearPicture(); randx=rand()%3; randy=rand()%3; drawPicture(1); break; case 2: m_score=scorce; UpdateData(FALSE); break; case 3:

VB课程设计 打地鼠论文

武汉工业学院 VB程序设计 课程设计报告 打地鼠—VB课程设计 学号 姓名: 学院: 专业班级: 指导教师: 日期:

目录 第一章课程设计概述 (3) 第一节课程设计名称 (3) 第二节任务要求 (3) 第三节开发环境 (3) 第二章总体设计 ................. 错误!未定义书签。 第一节系统功能需求分析 (4) 第二节系统总体设计框架....... 错误!未定义书签。第三章界面设计 . (5) 第四章源程序代码及解释 (6) 第五章程序运行效果及出错处理 (13) 第六章课程设计体会 (17) 参考文献 (18)

第1章课程设计概述 第一节课程设计名称 课程设计目的:本课程的课程设计实际是学生学习完《可视化编程技术》课程后,进行的一次全面的综合训练,其目的在于加深对可视化编程技术基本知识的理解,掌握运用VB开发应用程序的基本方法及基本技巧。 程序名称:打地鼠游戏 游戏简介:打地鼠是一种非常有趣的益智游戏,老少皆宜。游戏进行时,地鼠不断从洞中探出头再缩回去,当地鼠头在洞外时,可以通过按键的方式打击地鼠,时间到时游戏结束,打中地鼠次数越多得分越高,击错、逃跑数越多得分越低。人们在游戏的同时还能锻炼自己的反映能力,不同的难度选项适用于不同的打地鼠选手。在英雄榜中保留前五名最高得分信息。 第二节任务要求 1.课程设计的预备知识:熟悉Visual Basic 6.0程序设计的基本语法知识及常用技巧。 2.按照课程设计指导书提供的课题,每人设计一个完整的应用程序,要求根据根据规定设计程序的具体要求,按照应用程序的设计步骤,和VB的基本能知识完成应用程序的分析和实现。 第三节开发环境 硬件要求能运行Windows 9.X操作系统的微机系统。 软件:Microsoft Visual Basic 6.0 VB是由美国微软公司于1991年开发出来的一种可视化的,面向不同对象和驱动环境的各类应用程序。它简单易学,效率高,功能大。在VB环境下,利用事件驱动的编程程序机制,可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL),对象的链接与嵌入(OLE),开发式数据连接(ODBC)等技术,可以高效,快速的开发Windows 环境下功能强大的,图形界面丰富的应用软件。

中一班户外游戏打地鼠

中一班户外游戏打地鼠 Document number:WTWYT-WYWY-BTGTT-YTTYU-2018GT

中一班户外游戏《打地鼠》 设计意图: 《纲要》中指出,在健康领域幼儿园应该“开展以多种有趣的体育活动,特别是户外的、大自然的活动,培养幼儿积极参加体育锻炼的积极性,并提高其对环境的适应能力”,因此,本活动主要采用户外活动的形式来加强幼儿的体育锻炼,以期达到锻炼幼儿身体,增强其对体育活动兴趣的目的。《3—6岁儿童学习与发展指南》指出中班幼儿动作发展的目标“具有一定的力量和耐力”,因此,本次活动采用《打地鼠》的游戏,通过下蹲动作等来训练幼儿的下肢耐力和力量。整个活动在游戏的氛围中开展,能够培养幼儿对体育活动的兴趣。 目标: 1、积极主动地参与游戏,体验体育游戏的乐趣。 2、初步树立自我保护意识。 3、通过爬、跳和打地鼠游戏中连续的下蹲运动,锻炼孩子的腿部肌肉,增加幼儿的下肢力量,发展幼儿动作的协调性和灵敏性。 准备:报纸棒四根,扫帚两把,空气锤子两把。 过程: 1、热身带领幼儿慢跑两圈, 2、引导幼儿站军姿,站得好的教师给予鼓励,训练幼儿的反应能力。教师:请宝贝站线面对面站好(教师示范站姿)。

3、游戏(一)出示魔法棒(报纸棒)引发幼儿游戏的兴趣。 教师:现在夏老师要给宝贝们带来一样东西,你们看看是什么 教师:这个纸棒现在变成一根魔法棒!(教师示范打自己手一下,做出疼的动作。) 教师:现在老师要用魔法棒碰你的小手,谁想试一试 教师:这是快的还是慢的,接下来老师要加快速度啦! 教师:看谁能战胜老师的魔法棒。 教师:现在请宝贝们坐着,把脚放在线上做好。(教师反复用纸棒碰宝贝脚三次,鼓励勇敢的幼儿) 4、游戏(二)出示扫帚,激发幼儿游戏的兴趣。 教师:现在我要请出第二件法宝,我们围成一个圈,你们数一下老师走几步拿到法宝。 教师:看,老师带来了什么 教师:请宝贝们退后一步,看谁能接住神树。(反复退后三次,接神树三次) 教师:现在请宝贝们围成一个小一点的圆圈。 教师:接下来神树要扫你的脚,先试一下。(用神树扫幼儿的脚,反复三次,由慢到快) 教师:掌声鼓励一下自己。 5、游戏(三)出示空气锤,引导幼儿玩游戏《打地鼠》 教师:现在老师要请出第三件法宝,谁能帮老师拿。它是一个空气锤,谁能假装拿这个锤子很重的样子。

北邮打地鼠的游戏设计与实现

数电实验报告 题目:打地鼠的游戏设计与实现 姓名: 学号: 班级: 学院: 电子工程学院 2015年 11 月 8日

一、 任务要求 基本要求 1、设计一个挑战反应速度的“打地鼠”游戏,采用用 8×8双色点阵显示游戏界面,其中游戏边界采用绿色 LED 显示,随机出现的地鼠采用红色 LED 显示,游戏有 16个洞穴,如图 1所示。 2、游戏洞穴 每次随机出现一个地鼠, 每个地鼠的最长保持时间为 2 秒,2 秒后随机出现下一个地鼠。以 4×4键盘的按键代表锤子,16个洞穴与 16个按键一一对应,一旦锤子在 2秒内击中地鼠,地鼠消失,数码管计分器分数加 1分;若锤子一直没有击中地鼠,2秒后该地鼠消失。用两个数码管显示游戏成绩,当游戏成绩达到 10分时游戏结束,点阵显示字符“V”。 3、用两个数码管对整个游戏进行倒计时,当游戏时间超过 59秒而成绩未达到 10分时,游戏失败,点阵显示字符“X”。 4、按复位键重新开始游戏,并开始倒计时。 提高要求: 1、增加游戏难关,在边界内每次随机出现两个地鼠,两个地鼠的最长保持时间均为2秒,2 秒后随机出现下两个地鼠,锤子击中一个地

鼠加1分,当游戏成绩达到20分而且游戏时间未超过59秒时,游戏结束,显示字符“V”,否则显示字符“X”。 2、自拟其他功能。 二、系统设计 设计思路: 1、将该程序进行分模块设计。可以将程序分为:分频模块、随机数产生模块、比较模块、键盘电路、显示模块、计时模块、游戏结束模块。 2、分模块进行相应模块的编写。 3、对编好的模块进行测试。 4、编写主程序并进行调试。 总体框图: 分块设计:

基于51单片机的模拟打地鼠游戏设计

. 《现代通信技术》课程设计基于51单片机的模拟打地鼠游戏设计 院系:工学院 专业班级:通信工程10秋2班 姓名:钟丽薇 学号:10032202 小组成员:陆韵 指导教师:徐振、赵兰 完成日期2013年10月

目录 1 设计任务 (1) 1.1设计题目及材料 (1) 1.2设计要求 (1) 1.3设计进度安排 (2) 2 总体方案 (3) 2.1硬件设计 (3) 2.1.1 主控芯片 (3) 2.1.2 数码管模块 (4) 2.1.3 LED模块 (5) 2.1.4 独立按键模块 (5) 2.2软件设计 (6) 3 功能调试 (7) 3.1调试过程 (7) 3.2调试中遇到的问题 (7) 4 设计总结 (8) 5 致谢 (9)

1 设计任务 通过本次课程设计,运用已学的课程知识,自主设定题目及要求,进行软硬件系统的设计和调试,对《现代通信技术》课程中涉及的芯片结构、控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使应用知识能力、设计能力、调试能力以及报告撰写能力等方面有显著提高。 1.1 设计题目及材料 我们的课程设计选题定为《基于51单片机的模拟打地鼠游戏设计》。 将所掌握的的元器件组合在一起,设计出具有可玩性的实用小制作,不仅巩固了已学习的知识,更能拓展自己的思维能力。 所用到的材料: 表1.1 材料列表 STC89C52单片机开发板1块 4位8段数码管(共阳)1个 LED灯5个 轻触按键5个 100Ω电阻5个 0.5kΩ电阻4个 9013三极管4个 杜邦线若干 1.2 设计要求 要求作品完成后,可以实现简易打地鼠游戏的功能。 具体如下:接通电源后,游戏开始,数码管显示“0”,同时随意点亮一个LED,在2秒时间内按下对应的按键,则数码管示数加一,游戏继续;

本科毕业设计论文--虚拟仪器课程设计基于labview的打地鼠小游戏

虚拟仪器 成绩评定表 设计课题:基于labview的打地鼠小游戏 学院名称:电气工程学院 专业班级:测控技术与仪器1403 学生姓名: 学号: 指导教师:

虚拟仪器课程设计任务书

摘要: 主要介绍了通过LabView研发打地鼠小游戏的过程。 关键词:Labview 打地鼠 一、设计任务 1设计目标: 设计一个打地鼠(僵尸)的小游戏。 2设计基本要求及发挥: (1)初步实现打地鼠功能。 (2)增加积分和等级统计功能。 (3)美化程序界面,添加音效。 二、方案论证 1.地鼠部分 方案一:运用事件,实现点击的确认,并利用随机来判定哪个口有地鼠。 方案二:调用ActiveX控件,采用更简单的语句编写,例如Flash。 鉴于此次想要练习Labview的应用,选用了方案一。 https://www.sodocs.net/doc/ba3559175.html,BVIEW程序设计 初步的设计并不理想,不能实现地鼠自动消失以及乱点鼠标的惩罚。 经过多次调整方案,最后采用了对于事件进行详尽分类,将地鼠的出现与消失编入事件,后来加入开始结束按键以后,问题变得更加复杂,于是在调用子VI的基础上,又增加了“等待开始”与“失败”两个事件,在此基础上重新调整了每一个参数在不同事件中的传递以及累计运算,最后实现了数据的统计。 在等待地鼠出现的事件中加入了难度的递增判断。对于同类数据隐藏,并把相同分类的编入簇处理,以简化框图。 3.界面美化 初步美化界面,个性化了按键,对于某些按键加入特效。最终加入音效。

三、总体方案 1.工作原理: 简单来说,通过事件的触发和认证,实现了打地鼠功能。实际却比想象中的复杂很多。关键在于数据传递和算法的巧妙使用。 2.程序设计 对于框图已经做了整理,不方便再拆开了,整体来说,先从地鼠的触发开始,采用了自定义控件,地鼠按钮拥有三个态。地鼠采用随机触发,地鼠触发后判定是否点击相应地鼠,不点击延时后重新准备出地鼠,点击错误减时间,都是通过事件来完成的。比较复杂的是不同事件中的数据交换,除了统计数据的交换,还有事件真假的交换,这些都互相制约,而且根据嵌套决定了各自的优先级,这里不详细解释。最后就是在之前的基础上做了些小调整以消除bug。例如数据的初始化,还有数据的验证。在最后就是美化工作了,起初想应用同步时序实现更加复杂的音效效果,但是对于同步的几个控件理解不够深刻,经过多次尝试后还是采用了简单的方案。想应用ActiveX控件调用Flash实现动态地鼠,后查网说如果机器不安装Adobe Flash则控件不能正常显示,鉴于方便大家测试,作罢。美化工作其实不必程序设计简单,图片都要自己处理,声音也要自己剪裁和处理。经过这么多的努力才制作出一个这么简陋的小游戏,见笑。而且制作过程中为了美化删减掉许多功能,大家看到的最终版本并不代表所有汗水。 四设计步骤 1.1 前面板设计 根据在实际机器中的实物以及设计思路过程,大致需要地鼠、成绩显示屏、玩的过程中地鼠个数显示、时间的设置输入以及一些控制游戏始末的开关等。 在时间有限的情况下,没有能够自行设计一个控件,因此用布尔开关来模拟,当开关开时记作地鼠出现,关时记作地鼠消失,为进一步的区分这两种状态,可以让开与关时的布尔控件显示不同的颜色,如下图2-1-a。还是可以用布尔控件来控制类似的电源开与关、游戏的开始与结束。屏幕的显示用字符串显示控件可以满足。地鼠出现的总个数、打中的以及为打中的是数字的显示,用数字显示控件可以,如图2-1-a。当然时间的设置用数字输入控件好一些,为使时间的精度高一些,特以没0.1s来增加或减少。整体前面板控件如图2-1-a.

基于PLC的打地鼠游戏设计

一、绪论 1.1课程设计的意义 电气控制技术是电气工程及其自动化专业的一门重要的专业课,该课程 不但有较高的理论基础要求,而且工程实践性很强,因此除安排上完理论课时外,还安排了三周的课程设计 1.2课程设计的目的 (1)综合运用PLC课程和其它选修课程的理论和知识,掌握PLC设计的一 般方法,树立正确的设计思想,培养分析问题和解决实际问题的能力; (2)学会从控制系统功能的要求出发,合理的选择外围设备,制定设计方 案,编写控制程序。 (3)学习使用技术手册,掌握查阅专业资料的相关方法。 1.3PLC可编程逻辑控制器的定义 PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。 它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。PLC及其有关的外围设备都应该按易 于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。 1.4PLC的基本结构 PLC种类繁多,但其组成结构和工作原理基本相同。用可编程序控制器 实施控制,其实质是按一定算法进行输入输出变换,并将这个变换予以物理实现,应用于工业现场。PLC专为工业现场应用而设计,采用了典型的计算 机结构,它主要是由CPU、电源、存储器和专门设计的输入输出接口电路等 组成。PLC的结构框图如图 1.1所示。

图1.1PLC的基本结构 如图1.1,PLC的基本结构有电源、中央处理单元、存储器、输入输出接口电路,此外还有功能模块、通信模块。 a、电源 PLC的电源在整个系统中起着十分重要的作用。如果没有一个良好的、可靠的电源系统是无法正常工作的,因此PLC的制造商对电源的设计和制 造也十分重视。一般交流电压波动在+10%(+15%)范围内。 b、中央处理单元(CPU) 中央处理单元(CPU)是PLC的控制中枢。它按照PLC系统程序赋予的功能接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/O 以及警戒定时器的状态,并能诊断用户程序中的语法错误。 c、存储器 PLC的存储器包括系统存储器和用户存储器两部分。系统存储器用来存放由PLC生产厂家编写的系统程序,系统程序固化在ROM内,用户不能直接更改,它使PLC具有基本的功能,能够完成PLC设计者规定的各项工作。系统程序质量的好坏,很大程度上决定了PLC的性能,其内容主要包括三部分。第一部分为系统管理程序,它主要控制PLC的运行,使整个PLC按部就班地工作。第二部分为用户指令解释程序,通过用户指令解释程序,将PLC的编程语言变为机器语言指令,再由CPU执行这些指令。第三部分为标准程序模块与系统调用。PLC的具体工作都是由这部分程序来完成

河北科技大学EDA课程设计

科技大学 课程设计报告 学生:高志明 专业班级:电子信息工程L121班课程名称: EDA课程设计 学年学期:2014—2015学年第二学期指导教师:安国晨 负责部分: hit部分模块 2 01 5 年 7月

课程设计成绩评定表

目录 一、设计题目及要求 (3) 二、系统结构框图 (3) 三、状态流程图 (4) 四、程序清单 (6) 五、调试及仿真波形 (8) 六、设计分工 (10) 七、心得与体会 (10) 八、参考文献 (12)

一、设计题目及要求 1、功能:由8只LED代表虫洞,8个按键代表打虫棒,虫子随机在8虫洞随机出现(LED亮)1s,1s按相应的虫棒即算打中地虫,得一分,按错或1S按过其他键或未按键即丢1分。间隔2S出现下一只虫子。10只虫算一关,打对十只算本关通过,重新从0积分,否则游戏结束。 2、要求:上电时数码管显示“STAr--00”并闪烁,按“开始”键,进入第一局;打关时数码管显示关数和分数;过关时数码管显示“STAr--XX”并闪烁(XX为下一关数),按“开始”键,进入下一关;每过一关,虫子出现的时间为上一关的3/4,共设计8关。 8关全过时显示“--end --” 3、发挥:声效、过关音乐等。 二、系统结构框图 1.总系统框图 2. 各个模块的功能描述 1)分数判断模块

判断选手得分或失分主要是由一个比较器完成的,将系统传给LED灯的信号与选手输入的信号作比较,相同则加分,否则扣分,这两个信号分别传给计分模块,从而完成系统判定得分的工作。 2)系统时钟模块 将部2MHz的时钟分频为1Hz、及游戏时钟,供以后程序适使用。 3)键盘电路 主要通过产生行扫描,来识别用户的按键,其提供给控制器按键的编码。 4)等级判断模块 判断等级,若游戏未开始时,将等级设为初始值,游戏开始后则判断每一等级是否按对次数是否大于按错次数,是责加分,否则相应减分。并通过分数的正负进行等级的判断及变化。 5)随机数产生模块 为使得测试结果的公平性,需要L9-L16等灯亮灭具有随机性,因而需要随机数产生过程,在本课设中,采用伪随机数产生方法,即在ROM中存入随机表中的数据,游戏开始后采用一个计数器不断计数,并通过计数寻址,读出存储的随机数据,传送至灯进行显示。 6)显示模块 用来显示地虫的出现位置及各关、分数等 三、状态流程图

中班体育游戏《打地鼠》

中班体育游戏《打地鼠》 设计意图:幼儿园教育指导纲要(试行)指出,在健康领域幼儿园应该“开展以多种有趣的体育活动,特别是户外的、大自然的活动,培养幼儿积极参加体育锻炼的积极性,并提高其对环境的适应能力”因此,本活动主要采用户外活动的形式来加强幼儿的体育锻炼,以期达到锻炼幼儿身体,增强其对体育活动兴趣的目的。《3—6岁儿童学习与发展指南》指出中班幼儿动作发展的目标“具有一定的力量和耐力”,因此,本次活动采用《打地鼠》的游戏,通过幼儿模仿地鼠走路、摘玉米以及躲避农民击打时的下蹲动作等来训练幼儿的下肢耐力和力量。整个活动在游戏的氛围中开展,能够培养幼儿对体育活动的兴趣。活动目标:1.通过《打地鼠》的游戏,能坚持蹲走一段距离,增强下肢力量。 2.初步树立自我保护意识。 3.积极主动地参与游戏,验体育游戏的乐趣。 活动准备:1.经验准备(1)了解过小地鼠的特征及生活习性。 (2)玩过或了解《打地鼠》的游戏。 (3)学会律动《小跳蛙》《喜欢》。 2.物质准备(1)场地上简单的布置一个玉米地的场景。 (2)空气棒2根,音乐《小跳蛙》、《喜欢》。 活动过程: 一、开始部分(此部分约5分钟) (一)集合整队,师生问好。

1.集合整队 师:准备好了吗? 2.师幼问好 师:小朋友们早上好!(春天哥哥早上好!) 3.放松 师:我们一起跑跑步,热热身,听口令“跑步走,一二一、一二一……”,(跑回原地)找到自己的位置站好。 (二)跳热身律动《小跳蛙》 1.教师带领幼儿回顾律动小跳蛙 师:在玩游戏之前,春天哥哥要带小朋友做律动《小跳蛙》。 2.教师带全部幼儿跳《小跳蛙》与幼儿互动 (1)放音乐跳《小跳蛙》 (配班老师根据现场的运动量大小给一些需要脱掉外套的幼儿脱掉外套) 二、基本部分 (此部分约15分钟) (一)赋予角色,进行下肢力量的初步练习 1.教师引导幼儿初步了解小地鼠的特征和生活习性 (1)师:我们今天要玩小地鼠的游戏,在玩游戏的时候小朋友一定要听春天哥哥的指挥,不然这个游戏就不好玩了。 (2)师:你们知道小地鼠吗?(知道)小地鼠是怎么走路的,谁来学一学,他学的怎么样啊!我再请一位小朋友来学一学,小地鼠到底

打地鼠游戏代码

package org.hzy.app.timeMod; import java.awt.Color; public class TimeChallenge extends JFrame{ private BgPanel pnlMain; //画板,用来装载所有控件 private SoundPlayer bgSound; //音乐对象1 private SoundPlayer hitSound; //音乐对象2,用来在程序中替换音乐对象1 private AnimalLabel[] lblRats; //自定义标签,用来显示地鼠或者兔子 private JLabel lblScore; //显示分数的标签 private int score; //统计玩家得分 private int re_time; //剩余时间 private JLabel lblRemainT; //显示剩余时间 //计时模式下的游戏总时间 private long totalTime; //计时模式下的游戏开始时间 private long beginTime; //显示的剩余时间 private int showTime=60; //倒计时显示 private JLabel lblTime; private Player[] topTen; //玩家数组 private JFrame parentFrame; public Object time_bar; public TimeChallenge (JFrame parentFrame) { this.parentFrame = parentFrame; initSound(); //初始化音乐 initControls(); //初始化控件,即窗口上的所有东西 initTop10(); //初始化分数文件,采用对象流读写} private void closeMainFrame(){ //关闭当前窗口的方法 int rst = JOptionPane.showConfirmDialog(TimeChallenge.this, "你确定要返回吗?\n关卡进度将不会被保存!", "确认", JOptionPane.OK_CANCEL_OPTION); if(rst == JOptionPane.OK_OPTION){ //如果确定关闭当前窗口 TimeChallenge.this.dispose(); bgSound.stop(); //播放音乐停止 } }

单片机课程设计 打地鼠

摘要 随着社会的发展进步,各式有趣的小电动玩具已经遍布我们得生活。大街上随处可见拿着只有几个按键的打地鼠游戏机。简单的几个按键,就可以给人们带来娱乐。 打地鼠游戏是电子技术发展的产物。打地鼠有软件版也有硬件版得。而软硬件打地鼠的游戏规则类似。现在我们来讨论用单片机制作打地鼠游戏机。根据打地鼠的游戏规则,先制定特定位置,在确认按下了该位置的按钮。这种这种规则很容易用单片机实现。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C52单片机为核心控制元件,设计一个打地鼠游戏机。以单片机作为主控核心,与键盘、蜂鸣器、数码管等模块组成核心主控制模块,在主控模块上设有4×4的矩阵键盘、数码管和蜂鸣器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。 关键词:STC89C52单片机打地鼠游戏机数码管蜂鸣器

目录 摘要 (1) 目录 (2) 1.引言 (3) 2. 总体设计 (4) 2.1基本原理 (4) 2.2系统总体框图及设计思路 (4) 3.详细设计 (5) 3.1 硬件设计 (5) 3.2 软件设计. (6) 3.2.1程序设计思路 (6) 3.2.2 程序流程图 (7) 3.2.3 程序代码 (7) 4. 系统调试及分析 (22) 5.心得体会 (23) 参考文献 (23)

1.引言 单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 打地鼠游戏机是现代电子技术发展的产物。是一种按键式的游戏机。是人们的休闲娱乐的好选择。单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C52单片机为核心控制元件,设计一个打地鼠游戏机。以单片机作为主控核心,4×4矩阵键盘、蜂鸣器等模块组成核心主控制模块。 本文主要对使用单片机设计打打地鼠游戏机进行了分析,并介绍了基于单片机打地鼠游戏机硬件组成。利用单片机产生随机数来点亮指定的位置的led发光管。在判断是否按下了对应位置的按键。根据游戏规则判断是该加分还是加错。错5次则本次游戏结束。并且本文分别从原理图,主要芯片,以及程序的调试来详细阐述。 游戏流程是先由单片机产生随机数,点亮对应位置的了点发光管,并记录被点亮的位置。这时就开始扫描键盘,按键结果用来判断游戏规则。如果正确游戏的分加1,如果错误错分加1。错分加到5则游戏结束。游戏期间还得用数码管动态显示游戏的分,游戏结束后显示over。用单片机产生随机数类似电脑上产生随机数。需要开系统时钟,即定时器。我们可以利用单片机的定时/计数器T0来提供系统时钟。矩阵键盘需要扫描才能应用。数码管显示位数是动态的,即有几位数就显示几位数,数据的前面不会有0出现。

基于labview的打地鼠小游戏定稿版

基于l a b v i e w的打地 鼠小游戏 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

虚拟仪器 成绩评定表设计课题:基于labview的打地鼠小游戏 学院名称:电气工程学院 专业班级:测控技术与仪器1403 学生姓名:王行健 学号: 201423030305 指导教师:牛群峰

虚拟仪器课程设计任务书

摘要?: 主要介绍了通过LabView研发打地鼠小游戏的过程。? 关键词:Labview?打地鼠 一、设计任务 1设计目标: 设计一个打地鼠(僵尸)的小游戏。 2设计基本要求及发挥: (1)初步实现打地鼠功能。 (2)增加积分和等级统计功能。 (3)美化程序界面,添加音效。 二、方案论证 1.地鼠部分 方案一:运用事件,实现点击的确认,并利用随机来判定哪个口有地鼠。方案二:调用ActiveX控件,采用更简单的语句编写,例如Flash。

鉴于此次想要练习Labview的应用,选用了方案一。 https://www.sodocs.net/doc/ba3559175.html,BVIEW程序设计 初步的设计并不理想,不能实现地鼠自动消失以及乱点鼠标的惩罚。 经过多次调整方案,最后采用了对于事件进行详尽分类,将地鼠的出现与消失编入事件,后来加入开始结束按键以后,问题变得更加复杂,于是在调用子VI 的基础上,又增加了“等待开始”与“失败”两个事件,在此基础上重新调整了每一个参数在不同事件中的传递以及累计运算,最后实现了数据的统计。? 在等待地鼠出现的事件中加入了难度的递增判断。对于同类数据隐藏,并把相同分类的编入簇处理,以简化框图。? 3.界面美化 初步美化界面,个性化了按键,对于某些按键加入特效。最终加入音效。 三、总体方案 1.工作原理: 简单来说,通过事件的触发和认证,实现了打地鼠功能。实际却比想象中的复杂很多。关键在于数据传递和算法的巧妙使用。 2.程序设计

嵌入式程序设计-打地鼠游戏设计

嵌入式程序设计-打地鼠游戏设计 嵌入式程序设计 打地鼠 2013年6月3日 目录 1开发背 景 ..................................................................... ........................... 3 2功能描 述 ..................................................................... ........................... 3 3.基本原 理 ..................................................................... ........................... 3 4.系统总体设 计 ..................................................................... . (4) 4.1界面设 计 ..................................................................... . (4) 4.2 相关变量定 义 ..................................................................... .. (6) 4.3 内部类定义及方法说 明 (6)

5系统测 试 ..................................................................... . (16) 5.1 运行界面...................................................................... . (16) 1开发背景 打地鼠是一款常见的小游戏,简单有趣,深受人们的喜爱,本项目作为基于嵌入式WinCE课程设计和简单游戏编程而提出。希望通过开发《打地鼠》游戏,了解并掌握WinCE软件开发工具的使用,同时提高嵌入式设计的能力。 2功能描述 基本功能:地鼠随机出现在地图上,跟据鼠标点击事件捕获鼠标指针所在区域是否出现地鼠来判断玩家是否击中地鼠,玩家有10次失误机会。 3.基本原理 玩家触发游戏后,地鼠会随机出现在地图上,玩家通过鼠标击打地鼠,地鼠每隔一段时间机会随机出现在地图某一块,若玩家反映不及没有触发鼠标事件,地鼠随机出现别的地方玩家分数不变;若已触发鼠标事件且没有击中地鼠,玩家分数减少;击中则分数增加。 系统流程图:(主要部分的流程图)

VC++打地鼠游戏

第五章老鼠和滚球 1.1.实现思想 老鼠和滚球游戏,是我根据自己的意愿,是为了我将要说明的下面有关内容而设置的。由于没有经过具体实践,我并不能保证其趣味性和吸引力,我们学习的是它实现过程中的一些思想。希望对读者有所帮助。 其实,这种游戏,在街头电子游戏中是常见的。但由于电脑的渐渐普及,大规模游戏的迅速出现,已经不适合玩者的需求了。但是,我们可以以小见大,在学习小游戏的基础上,慢慢培养设计大游戏的一些方法和技巧。

关于游戏的角色: 老鼠,是游戏的主角,它有三条生命,它为了生存,必须能够逃脱灾难性的局面(被滚球撞到),它在经过所谓的适者生存的淘汰之后,学会了使用子弹;而且是一种能够消灭滚球的子弹,以达到防身的目的。每打中一个球得一分,每被撞一下失去一条生命。 滚球,一共有50个,但为了维持生态平衡,最多只能出来六个。滚球,是为了消灭老鼠而存在的,它将会在现代科技的伪随机函数中不定向地出现。 红心,生命的象征,只要你能碰到它,你就幸运了,因为由此你会得到一条生命。当然,生存需要竞争,需要你自己去创造;只要你在消灭了很多滚球之后,你才有可能取得。正因为这个原因,我把它安排在滚球出现的地方。 关于游戏的实现: 游戏,经常都是全屏的,但是由于我们的目的不仅仅在于游戏本身,我们的宗旨是利用游戏的趣味性和吸引力,来增强读者学习程序语言的信心。所以,在前面我们都没有用到全屏显示,我们不需要。 另外说明:本游戏的全屏只适应于800*600的分辨率。 全屏,是这个游戏的一点要学习的。多位图的移动,是本游戏要学习的第二个内容,上面的最多只有两个位图可以移动,这是由于游戏本身决定的。当然,这个游戏的多位图移动,也是游戏本身决定的,但却是我之所以选择它为第五章的原因。当然,我们没有那么多的手去操作键盘,去移动位图。我们必须设置我们的程序,让程序自己去执行,去移动,去显示计算机的优越性。 这个游戏,比起上面来,它是一个更加复杂的社会,它不再只是玩者一个人充当角色。所以,我们新建了各自的类。 新建工程5_1,为单文档默认设置。 2.2.制作位图 既然游戏是复杂的,它就需要很多位图,但由于我们在前面已经用了很多位图,我们这里就不多说了。只是说明一下位图的数量和大小。 背景位图:800*600 1张IDB_BITMAP1 老鼠位图:50*50 4张IDB_BITMAP2 (两只老鼠两个方向)IDB_BITMAP3 IDB_BITMAP7 IDB_BITMAP8 滚球位图:50*50 1张IDB_BITMAP4 红心位图:50*50 1张IDB_BITMAP11 子弹位图:50*50 4张IDB_BITMAP5 (两种颜色两个方向)IDB_BITMAP6 IDB_BITMAP9 IDB_BITMAP10

电子系统设计课程设计

《电子系统设计课程设计》项目设计书 项目名称打地鼠 小组成员1 小组成员2 小组成员3 专业 任课教师 成都理工大学信科院电子系 2013年6月

1项目名称,并简要说明应用背景。 项目名称:打地鼠 应用背景:打地鼠游戏是人们生活中常见的一种休闲小游戏。此游戏玩法简单,考验人们的反应速度。开发者可以根据人们兴趣开发出具有多功能的打地鼠游戏,比如升级、道具、过关等,增加游戏的趣味性。 2项目设计需求(包括功能描述和性能设计指标) 功能描述: 1.启动系统,液晶屏第一排随机显示一个1-9的数字,显示地鼠(?)或地雷(*),中间显示剩余时间,右边显示分数;液晶屏第二排显示游戏的英文名称——打地鼠。 2.开始游戏后,在背景音乐伴随下显示“Ready Go!!!”,之后正式进入游戏游戏历时2min,随着时间的增加,数字显示速度加快,游戏中课随时按K10键暂停,再次按则恢复游戏。 3.进入游戏界面后,随机产生地鼠和地雷(地雷产生的概率为10%),但随着时间的增加,地雷出现的概率会增加,数字更新的速度也越快。按键分别对应独立键盘的9个按键,按下某个键即代表击打相应位置。 4.若击中地鼠:正常情况下分数加1,若在较短时间(实际为地鼠产生到消失的前一半时间内)击中,则“快速反应,双倍加分”,即分数加2。若击中地雷,则分数减1,若未按下相应键,则分数加1。

5.游戏结束,背景音乐停止,保留最高分,分数和时间在按复位后刷新。 性能设计指标:能通过复位,玩家可以持续玩游戏。自动保存和人为清除游戏数据。 3设计方案 3.1 系统设计框图及原理阐述 设计框图: 原理阐述: 1)复位电路 复位条件:89C52单片机复位需要一个长达24个时钟周期的高电平才能复位,复位的作用就是使程序的指针指向地址0,每个程序都是从地址0开始执行,所以复位的概念就是让程序从头开始执行。

相关主题