别踩百块儿游戏程序设计

别踩百块儿游戏程序设计
别踩百块儿游戏程序设计

计算机科学院

数字媒体技术

游戏名称:别猜白块

开发工具:eclipse

游戏平台:夜神安卓模拟器

模拟器规格:

主频:1.5GHz

内存:1GB

操作系统:安卓

开发语言:java

游戏简介:别踩白块儿,这就是这个游戏唯一的一个规则。游戏简单易上手,并且有多重玩法,画面分为4行4列,每一行都只有一个黑色色块,你的任务就是按对他——游戏共三个模式,经典、街机、禅。经典模式中玩家的目标是在最短的时间内按完50个黑方块,每按对一个画面会自动下降。

游戏特性

本游戏设计灵感来自于钢琴,但是之前也有类似的钢琴游戏比如

《极品钢琴》

但是极品钢琴键位较多,难度较大,不适合业余玩家使用。所以别踩百块就简化了操作,只保留了四个键位,可玩性得到了增强,而趣性也得到了保留

简单易玩,老少咸宜,可谓居家旅行+上班打发无聊得利器噢

5 x 3种好玩的模式

美妙的钢琴音效

顺畅的游戏体验

支持GameCenter排行榜 (鄙视作弊的)

支持社交网络分享,可以随时炫耀自己得成绩

警告,这个游戏很容易上瘾,自制力不好的人慎玩!

游戏背景

自从越南的的独立游戏开发者——Dong Nguyen花了几个晚上为游戏界打了一针鸡血后,《疯狂的小鸟》(Flappy Bird)带来的极简游戏风暴就一直没停歇过,事实上这股风暴根本停不下来。紧随其后,《2048》再一次掀起了极简游戏风暴。而《别踩百块》正是继承了这一极简风格。极简游戏之所以如此风靡,其关键点就在于其操作的简单性。操作的简单性导致了这个游戏对于任何人而言都很容易上手,不管是在校大学生、白领、甚至是老人小孩都很热衷于玩这款游戏。由于极易上手,操作简便,模式简单,不管是对于开发者还是使用者都是意见好事儿。对于开发者,简单的游戏更容易开发,也很容易受到欢迎甚至是风靡,对于使用者,人们可以利用碎片化的时间,无论是在地铁、公交课间休息,只要一个手机就可以玩了。

玩法评分★★★★★

《别踩白块儿》是一款非常考验反应速度的游戏,画面分为4行4列(某些模式除外),每一行都只有一个黑色色块,你的任务就是

按对他——游戏共115个模式,其中耐玩性最高的就是经典、街机、限时模式了。经典模式中玩家的目标是在最短的时间内按完20、50、100或200个黑方块,每按对一个画面会自动下降。街机模式则没有时间限制,但画面会一刻不停的下落,而且速度越来越快,你要在这样的限制下,尽可能多的按对色块,漏掉或者按错游戏都会结束。限时模式则是给玩家10、30、60或100秒钟,比拼谁能准确按完的色块最多。

画面评分★★★☆☆

本游戏的画面还算可以。多彩的画面简洁而不繁琐。新版的画面相比以前的可谓好了十万八千里,同时也增加了许多的元素。

音效评分★★☆☆☆

音效嘛,呵呵,也和画面一样精简。整个游戏中除了按到方块时有一点声音外,没有任何音效音乐了。操作评分★★★★★作为考验反应力的游戏,《别踩白块儿》的操作响应是很完美,例如在高速的街机模式中,这种流畅感尤其能得到体现。

整体评分★★★★☆

代入感是本游戏的一大缺失。《Flappy Bird》有熟悉的马里奥背景坐镇,《2048朝代版》有上下五千年护航,如果《别踩白块儿》能加点网络流行的神兽图,或者暴走漫画表情等,一定还可以让人气更上一层。

游戏框架

一、打开eclipse

二、编写代码:

三、试运行

运行结束

操作指南

1、视线落在屏幕的中上方,为了预防不测。你在按这个的同时眼睛已经看下一个了。

2、街机模式一旦开启,玩家必须注意黑白块儿下滑的速度。初始是不快的,但是一旦玩家可以不断点击黑块,就会逐渐加速下滑的速度(增加不多,但是的确有)所以,建议大家,没有必要太过追求速度点击黑块,只要保证跟上初始下滑的速度即可。

3、把色块大致分成三种,第一种是单块,第二种是双,三,四块,第三种是场块,按的时候这三种在脑子里分别的用不同方法进行判定。这样就不至于按到六七百的时候乱了。

4、放平心态。早前一款超虐心游戏不知道牺牲掉了多少台手机,挂了摔手机的冲动也不是人人可以克制住。所以,在玩这款游戏之前,还是建议大家放平了心态。不要想着要刷多少分,休闲时,拿出手机来试一下手感,往往可以起到奇效。

5、眼睛一定不要盯着屏幕上的黑块,不然你会感觉手忙脚乱,把视野放到全局,虽然视线模糊了,但是不要慌,跟着感觉打就对了。

6、多手操作。这个没有要讲的,如果玩大屏设备(例如iPad)的玩家肯定早都上两只手了,据说可以单手刷满500以上的,都是撸神。双手操作,更容易跟上速度,不过需要注意协调性,往往会出现上下顺序点错的问题。

7、从下往上,分工进行。意思就是,玩家在看下滑的方块时,因为黑色更加醒目,大部分的玩家在前面几乎不会出现失误。往往到

后面,长时间的眼睛色差疲劳,加上手指灵活性降低,一念之差就有可能功亏一篑。所以,玩家可以试着,降慢速度,从下方跟着下滑到最底的黑块进行点击,左右手分工左右方,可以保证双手平摊工作,不会造成手部疲劳。

部分功能源码:

BaseProperty.java

package com.example.bcbk;

import android.graphics.Canvas;

import android.graphics.Paint;

import android.graphics.Rect;

import android.view.MotionEvent;

public abstract class BaseProperty {

public Paint paint;

intscreen_width=MainActivity.screen_width;

intscreen_height=MainActivity.screen_height;

public abstract void onTouch(MotionEvent event);

}

gameMenu.java

package com.example.bcbk;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Rect;

import android.util.Log;

import android.view.MotionEvent;

import android.widget.Toast;

//游戏菜单页面

public class GameMenu extends BaseProperty{ RecttargetRect;

String str="Play";

float x_left;

float x_right;

float y_top;

float y_botton;

changeState change;

public GameMenu(){

paint=new Paint();

paint.setAntiAlias(true);

paint.setColor(Color.WHITE);

paint.setTextSize(70);

targetRect = new Rect();

//返回包围整个字符串的最小的一个Rect区域

paint.getTextBounds(str, 0, str.length(), targetRect);

}

public void setChange(changeState change){

this.change=change;

}

public void ondraw(Canvas canvas){

canvas.drawRGB(0, 0, 0);

inttextheight=targetRect.height();

inttextwidth=targetRect.width();

x_left=(screen_width-textwidth)/2;

x_right=(screen_width+textwidth)/2;

y_top=(screen_height-textheight)/2-textheight;

y_botton=(screen_height-textheight)/2;

canvas.drawText(str,x_left ,(screen_height-textheight)/2 , paint);

}

@Override

public void onTouch(MotionEvent event){ float x=event.getX();

float y=event.getY();

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

if(isStart(x, y)){

if(change!=null){

change.execute(GameState.STATE_PLAY_INIT);

}

}

break;

default:

break;

}

}

public booleanisStart(float x,float y){

if(x>x_left&&x

if(y>y_top&&y

return true;

}

}

return false;

}

public interface changeState{

public void execute(int state);

}

}

GameOver.java

package com.example.bcbk;

import android.graphics.Canvas;

import android.util.Log;

import android.view.MotionEvent;

import com.example.bcbk.GameMenu.changeState;

public class GameOver extends BaseProperty {

private changeState change;

private DrawTexttext_score;//分数

private DrawTexttext_Mkuai;//每秒块数

private DrawTexttext_again;//重来

private DrawTexttext_over;//结束

@Override

public void onTouch(MotionEvent event) {

// TODO Auto-generated method stub

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

if(text_again.onTouch(event)){

change.execute(GameState.STATE_PLAY_INIT);

}else if(text_over.onTouch(event)){

android.os.Process.killProcess(android.os.Process.myPid( ));

System.exit(0);

}

break;

default:

break;

}

}

public GameOver(){

text_score=new DrawText();

text_score.setXY(screen_width/2, screen_height/2);

text_Mkuai=new DrawText();

text_Mkuai.setText(GameScore.SCORE+"分", 60);

text_Mkuai.setXY(screen_width/4, screen_height/4);

text_again=new DrawText();

text_again.setText("重来", 40);

text_again.setXY(screen_width/4,

screen_height*3/4);

text_over=new DrawText();

text_over.setText("结束", 40);

text_over.setXY(screen_width*3/4,

screen_height*3/4);

}

public void ondraw(Canvas canvas){

text_score.setText(GameScore.SCORE+"分", 60);

text_score.ondraw(canvas);

// text_Mkuai.ondraw(canvas);

text_again.ondraw(canvas);

text_over.ondraw(canvas);

}

public void setchange(changeState change) {

// TODO Auto-generated method stub

this.change=change;

}

public void logic(){

}

}

GamePlay.java

package com.example.bcbk;

import java.util.ArrayList;

import java.util.List;

import java.util.Timer;

import java.util.TimerTask;

import com.example.bcbk.GameMenu.changeState;

import android.graphics.Canvas;

import android.util.Log;

import android.view.MotionEvent;

public class GamePlay extends BaseProperty {

Listrowrects;

int k = -1;// 判断第几个被点击

int SPEED = 1;//游戏的速度

private changeState change;

public booleancan_click = true;// 方块是否可以被点击public GamePlay() {

}

public void init(){

// 创建5行,每一行中4个块,i代表第几行

rowrects = new ArrayList();

for (inti = 0; i< 5; i++) {

rowrects.add(new RowRect(i));

}

//初始化速度为1

SPEED=1;

//定时增加速度

GameScore.SCORE=0;

Timer timer = new Timer();

timer.schedule(new TimerTask() {

@Override

public void run() {

// TODO Auto-generated method stub

SPEED=SPEED+1;

}

}, 3000, 3000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.

}

public void setchange(changeState change) { this.change = change;

}

public void ondraw(Canvas canvas) {

// TODO Auto-generated method stub

// 对行进行绘画

for (inti = 0; i

}

}

@Override

public void onTouch(MotionEvent event) { // TODO Auto-generated method stub

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

if (can_click) {

for (inti = 0; i

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

汇编课程设计汇本打字游戏

华北科技学院 课程设计说明书 专业:网络工程 课程名称: 汇编课程设计 设计题目: 打字游戏设计 设计时间: 2011-12-05 至2011-12-16 评语: ________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:___

课程设计报告的要求 1、需求分析 描述问题。简述课题要解决的问题是什么,有什么要求和限制条件。 2、总体设计(程序设计组成框图、流程图) 3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,过程调用关系描述等)) 4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施 5、测试结果,用几组测试数据进行测试算法设计的正确性。 6、附录。源程序清单和结果:源程序要加注释。结果要包括测试数据和运行结果。 《汇编语言》课程设计案例 一、问题述及其需求分析 要求:利用汇编语言编写一个小的打字游戏 容:编写程序,在打开的菜单页面中选择游戏的难度。 难度选择包括以下5个选择 (1)very slow (2)slow (3)normal (4)fast (5)very fast 在编写过程中包括以下几个部分: (1)初始化上部分的字母 (2)获得下落的字母 (3)字母下移,同时覆盖原来的字母 (4)判断是否有输入 (5)若无输入则下落到最后 (6)覆盖原来的字符

贪吃蛇游戏程序设计实验报告

Windows编程大作业贪吃蛇设计与实现 学校:武汉轻工大学 院系: 班级: 姓名: 学号: 2015年12月16日

目录 一、题目介绍 二、设计目的 三、详细设计 3.1贪吃蛇本体设计 3.2贪吃蛇食物设计 3.3游戏界面设计 3.3.1游戏初始化 3.3.2游戏开始 3.3.3游戏暂停 3.3.4游戏退出 3.3.5游戏总界面 3.3.6游戏区域与背景 3.3.7关于SNAKE 3.4玩法规则设计 3.5核心设计 四、功能测试 五、总结 六、参考文献

一、题目介绍: 编写一个基于MFC的小游戏。 基本要求: 1、实现一个小游戏 2、实现基本游戏控制功能 3、具有游戏数据保存功能 4、界面布局合理、美观; 二、设计目的: 通过使用vc++6.0实现一个小游戏的课程设计,进一步掌握MFC的高级使用方法和锻炼自己动手写程序的能力。了解游戏设计的整个过程,通过熟练使用MFC来设计游戏。程序主要包括:游戏界面设计,游戏菜单栏设计,游戏初始化,游戏控制等。培养和锻炼开发游戏的能力。 三、详细设计 3.1贪吃蛇的本体设计 贪吃蛇的头部拥有一个坐标(x,y),蛇体有一个长度len,蛇有一个运动方向direct,故定义一个结构体如下: struct Snake { int x,y; int len; int direct; }Snake[50]; 3.2贪吃蛇食物设计 贪吃蛇的食物有一个坐标(x,y),此食物有一个标志isfood,当isfood为0时,表示食物还没被吃,为1时,表示被吃。 struct Food { int x; int y; int isfood; }Food; 3.3游戏界面设计 3.3.1游戏初始化 游戏初始蛇体长度为3,颜色为灰色,食物标志为1,因为此时没有显示出食物,需要随机生成后,才置为0;

汇编语言课程设计报告-打字练习程序

提供全套毕业设计,欢迎咨询 汇编语言课程设计报告 程序题目:打字练习程序 学生姓名:XX 班级:2010级计算机科学与技术专业4班学号:XXX 院系:计算机科学学院 指导教师:XXX

目录

1设计目的 本程序运行后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出。通过课程设计,主要达到以下目的: 1. 增进对汇编语言的认识,加强用汇编语言编程的能力; 2. 掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等; 3. 了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础; 4. 通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序中; 5. 掌握屏幕输出显示的设计方法。 2概要设计 2.1 系统总体分析 根据题目要求可以看到有以下几部分来实现打字练习:1.由26字母乱序组成一行显示行。2.字母自动落下。3.从键盘输入的字母与落下字母相同则该字母消失,并且下一个字母自动接着落下。4.按下“Ese”键则程序返回到主界面。5.按空格键游戏暂停。6.在主界面按“E”则程序退出。打字练习的主要功能由以上六部分组成,每一部分之间的联系都是比较紧密的。对于以上及部分,最主要的部分就是第二三两个部分,这是打字练习的重点,需要详细设计其所需要的功能。 2.2主模块框图及说明

是 否 否 是 是 图2-1程序设计流程图 程序的核心模块是打字,各个模块功能的实现主要是通过键盘输入指令来融合的,主要流程是先到主界面,然后选择你想要进行的指令ENTER 进入打字界面开始打字,E退出程序,空格在打字练习时执行暂停的功能,ESC是从打字界面返回到主界面。核心模块的流程大体如下面的流程图图2-1: 3 详细设计 3.1 主模块及子模块说明 主界面是程序的初始入口,也是其他功能模块的接入点。主模块是打字模块,也是核心模块,主要通过各个键盘符来控制各个子模块之间的协调。子模块分为判断输入字符判断模块(这当中包含两个小的子模块:主界面输入字符判断和打字模块输入字符判断)、暂停模块、退出模块(这当中包含两个小的子模块:打字界面返回主界面模块和主界面退出程序模块)

java课程设计报告--打字游戏

java课程设计报告--打字游戏 Java开发技术课程设计 (打字游戏) 学院:计算机与信息工程学院 学号:****** 姓名: ** 时间:2011年12月14日 一、程序描述 1.1程序设计的目的 通过java开发技术课程的学习,我初步了解了如何运用java语言编写程序。课程结束后,按老师的要求,在查找资料后,我完成了打字练习这个程序。 在这个过程中,主要达到了两个目的,一是检验和巩固专业知识,二是提高综合 课堂上掌握的理论知识与处理数据的素质和能力。通过该程序的编写,可以将我 业务相结合,以检验我掌握知识的宽度、深度及对知识的综合运用能力。 1.2程序设计的要求 (1)程序的界面会随机的出现字母和数字,玩家在键盘上摁相应的键后,界面上的对应的字符就会消失 (2)字符下落的速度可以选择,完成一定量的字符后,显示进入下一关,下一关的速度加快 (3)能统计正确与错误的字符数分别是多少

(4)程序的主界面是能够给玩家第一感官的部分,主要包括程序图形区域界面、程序的显示更新界面。 1.3程序设计的环境 Windows xp操作系统、Myeclipse编辑工具、jdk1.6 二、分析与设计 2.1 游戏处理流程 本次游戏设计的处理流程如下图所示 进入游戏画面 单击“开始”按钮, 游戏开始,字符开始随机。 根据出现的字符按相应的 键,对应一个消失一个(字 符)按对一定字符后将提示 进入下一关,下一关的速度 有所增加。速度也可单独调 节。 没有摁倒相应游戏中途欲中 的键,错误的断,稍后继续 数字将加一游戏 单击“退出” 单击“暂停” 退出游戏游戏暂停 再次单击开始 游戏,游戏恢复 游戏处理流程图 2.2需求分析

Java课程设计小游戏

《高级语言程序设计》课程设计报告 1、程序设计说明书 【设计题目】 雷霆行动游戏程序 【问题描述】 雷霆行动是一款供大家休闲娱乐的小游戏,游戏通过鼠标控制我方飞机hero的移动,达到躲闪敌机的目的;利用鼠标键发射子弹和导弹,达到击毁敌机的目的,摧毁敌机有积分。此游戏为闯关积分类小游戏。 【软件功能】 1.按鼠标左键,游戏开始。 2.利用鼠标移动控制hero自由移动,闪躲敌方子弹。 3.利用鼠标左键发射子弹,实现打中敌方飞机的功能;利用鼠标右键释放导弹,实现摧毁大量敌 机的功能,击中一个敌方飞机积一分。 4.hero碰到对方子弹会消耗生命,消耗生命的多少,依据子弹的不同而不同。 5.一关之后会进入下一关。 6.游戏右上角红色的进度条表示hero的生命,当红色全部消失之后,游戏结束,显示死亡。 7.游戏结束后,可重新开始,同1。 【算法思想】 1.创建游戏主界面,确定窗口的坐标。 2.设计游戏开始界面显示信息及信息坐标。 3.设置游戏进行中的信息,hero的移动、释放子弹和导弹,达到击毁敌机的目的。 4.处理游戏进行中的子弹、大爆、爆炸、敌机消失和存在的条件。 5.设置进入下一关的条件。 6.设计游戏结束界面显示信息及信息坐标。 7.处理游戏重新开始满足的条件。 8.装载图像。 9.对游戏进行调试和改进,使这个游戏更加完善。 【类的设计】 本程序共有七个类: 1.MainPanel 属性:BBv为子弹数组,EEv为敌机数组,BOMBv为爆炸数组,EBv为敌机子弹数组,DBv 为大爆数组,E-num为敌机数量,E-max敌机最大数,E-vel为敌机速度,E-mov为敌机 横移几率,E-hit为敌机开火几率,Sum为击毁敌机数量,hero-hp为hero生命,back至 db-2均为图片,tracker为媒体跟踪器,y为背景滚动变量,seq为hero的动画变量,isfire 为hero开火,isblast为是否发爆,blastnum为大爆的数量,blastc为控制大爆,f、ff、s、 ss均为游戏界面上显示的信息; 方法:MainPanel(Game)构造方法,paint(Graphics)建立游戏开始界面如显示的文字,run()控制对象移动,BBmove(int,int)子弹的移动方法,DBmove(int,int)大爆的移动方法, mouseDragged(MouseEvent) 鼠标的拖拽用来保证hero不出界,mouseMoved(MouseEvent) 鼠标的移动用来控制hero移动,mousePressed(MouseEvent) 鼠标按键在组件上按下时调 用,重新开始游戏,mouseClicked(MouseEvent)鼠标按键在组件上单击(按下并释放) 时调用,释放子弹,mouseReleased(MouseEvent)鼠标按钮在组件上释放时调用, mouseEntered(MouseEvent)鼠标进入组件上调用,mouseExited(MouseEvent)鼠标离开组 件时调用;

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

打字练习游戏程序

摘要 汇编语言(Assembly Language)是面向机器的程序设计语言,汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中,用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。 关键字:汇编语言、程序设计、助记符

目录 摘要 0 目录 (1) 前言 (2) 第1章系统分析 (3) 第2章系统总体设计 (4) 2.1打字程序包括以下五个子程序: (4) 2.2算法的整体设计思路 (4) 2.3程序的主要特点 (4) 第3章详细设计 (5) 3.1主界面伪代码 (5) 3.2等级界面伪代码 (5) 3.3游戏界面伪代码 (6) 3.4清屏子程序设计 (6) 3.5密码程序设计 (7) 3.6宏代码 (8) 3.6.1在指定位置显示彩色字符串 (8) 3.6.2显示背景 (9) 3.6.3画横向边框的宏 (9) 3.6.4画竖边框的宏 (10) 3.7功能的进一步完善 (11) 3.7.1完善代码一 (11) 3.7.2完善代码二 (12) 3.7.3完善代码三 (12) 第4章软件使用说明书 (14) 4.1密码界面图: (14) 4.2主界面图: (14) 4.3等级选择界面: (14) 4.4游戏界面: (15) 参考文献 (17) 致谢 (18) 源代码: (19)

前言 随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。而汇编语言作为计算机专业大学生必修课,每个作为本专业的学生对汇编的理解和学习就显得尤为重要。汇编语言是计算机能够提供用户使用的最快而又最好最有效的与言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显得必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。 《打字游戏程序设计》课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求我们能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。通过具体的问题分析、设计、调试、运行程序。在实际问题中锻炼提高自己,增加了对本门课程内容的理解,锻炼了动手能力。就这个程序具体而言:调用宏,显示背景和主界面,通过选择不同的选项,可以进入不同的界面;采用BIOS功能的中断,可以在任何时候退出当前所在的界面并通过选择进入其他的界面。这个程序最终通过菜单所提示的信息选取所要进入的界面,获得所要的功能。

三子棋小游戏课程设计

三子棋小游戏课程设计 计算机学院计算机科学与技术专业《程序设计综合课程设计》报告 (2011/2012学年第一学期) 学生姓名: 学生班级: 学生学号: 指导教师: 2012年01月04日 三 子 棋 小 游 戏 目录 第一章程序设计的目的和要求 1 1.1课程设计的目的 ......1 1.2课程设计的要求 1 第二章课程设计任务内容 3 2.1课程设计题目 3 2.2课程设计介绍 3 第三章详细设计说明 ..4 3.1 流程逻 辑............................................................ .4 3.2 限制条 件 (5)

3.3 运行结 果 (5) 3.4 实验过 程 (8) 第四章实验总结及特色 11 4.1调试结果及截图 11 第五章课程设计心得及体会 13 附录? 参考文献 15 附录? 程序代码 16 第一章课程设计目的和要求 目的 通过此次课程设计,进一步加深对C++语言和运用的了解,将理论知识运用于开发的实践,并在实践中逐步掌握软件工具的使用。 巩固已经学习过的C++理论知识;进一步学习程序设计、程序调试的能力。 进一步学习面向对象编程的知识和程序调试的能力; 增强Visual C++编程环境的应用能力 掌握并且熟练应用《C++程序设计》中所学知识,并学会运用。 掌握函数功能的划分方法,并运用此方法解决问题。学会程序测试方案的制定,并且实现程序的测试。 通过此次实践,积累经验,提高分析和解决问题的能力。 第二节要求 课程设计需要从整体来考虑,在大的方向下来考虑小的模块,在继续分工。作到最小化,可执行化。

Java程序设计实验报告2(弹球游戏)[1]1

《Java语言程序设计》课程设计 实习报告 题目: 班级: 学号: 姓名: 同组人员: 指导老师:张彬

一、实验目的 1、掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。 2、掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行 线程的创建、启动等工作。 3、培养独立查找资料,并解决问题的能力。 二、实验任务 1、设计并编程实现弹球游戏: 用户能通过GUI组件指定生成小球的数量,每个小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力只改变小球的运动方向,小球仍按照初始速度匀速运动,且不考虑小球之间的碰撞)。 鼠标在界面中显示为方块状,玩家需按住鼠标来回移动以避开运动的小球及屏幕四周,如果鼠标碰到任一小球或者窗口四周,则游戏结束。 程序需提供计时功能,并最终显示玩家能坚持多少秒。 2、程序要求: (1)具备相应界面,并通过事件编程,实现相应的GUI组件功能。 (2)使用多线程技术,在程序窗口区域绘制小球,并以线程控制小球的移动,实现动画效果。 (3)实现鼠标与屏幕四周,以及与小球的碰撞检测。 三、开发工具与平台 1.开发工具:Eclipse默认是一个和Jbuilder类似的Java开发工具,但它不仅仅只

是Java开发工具,只要装上相应的插件,eclipse也可作为其它语言的开发工具。如C/C++插件(CDT)。 2.开发平台:JDK1.5 四、设计思路 1.界面设计 (1)制作一个简单的面板JFrame,文件保存为bollFrame.java 其中为一public的类bollFrame,其构造方法为: bollFrame(int n){ super(); setTitle("我的弹球小游戏"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();//得到电脑屏幕大小 setSize(450,450); setLocation((dimension.width-game.getWidth())/2-250, (dimension.height-game.getHeight())/2-250);//设置面板显示基中; this.n = n; myBollPanel = new bollPanel(n);//构造一个画板; add(myBollPanel);//将画板放入JFrame createMenu();//创建菜单; setJMenuBar(bar); } (2)构造画板类,文件保存为bollPanel.java 其构造函数如下: bollPanel(int n){ this.n = n; // executorThread = Executors.newCachedThreadPool();//创建线程池; mouse = new mouseThread(mxNow,myNow,groupThread,this);//启动鼠标线程; this.setIsOver(false);//游戏开始线程条件的判断; for(int i =0 ;i

打字游戏

湖南农业大学东方科技学院 课程设计报告 课程名称:微机原理与接口技术 设计题目:打字游戏程序设计 学生姓名:罗英杰 学号: 2 年级专业:2008级计算机科学与技术 班级: 3 班 指导老师:王兴波 学院:东方科技学院 湖南·长沙 提交日期:2009年12月

一、任务与要求 1. 开始界面的提示信息:进入游戏,退出 2. 打字游戏:字母从屏幕上方下落,若用户在字母下落过程中输入正确字母,字母消失, 输入不正确,字母继续下落 3. 空格键退出游戏 二、分析与规划 1、结构分析图,如下 2、布局分析: 首先,出现菜单主界面起到提示作用。然后进入游戏,接着完成游戏的退出。

三、实现过程 1、出现菜单主界面: ZK db "WELCOME TO PLAY$" no db "shejiren: Luo Yingjie 2009/12/09 $" meg db "press Enter key to continue.......$" meg1 db "when a letter is dropping,please hit it!$" meg2 db "press space key to pause!$" meg3 db "press ESC key to return main interface!$" meg4 db "press letter 'E' to exit!$" 上面的代码菜单主界面的内容 clear_screen 00d,00d,24d,79d Init_game 00d,00d,0ah,dl,80d,nextsign1 Init_game 24d,00d,0ah,dl,80d,nextsign2 Init_game 00d,00d,0ah,dh,25d,nextsign3 Init_game 00d,79d,0ah,dh,25d,nextsign4 menu 05d,15d,ZK ;菜单信息的宏调用 menu 07h,15d,no menu 09d,15d,meg menu 11d,15d,meg1 menu 13d,15d,meg2 menu 15d,15d,meg3 menu 17d,15d,meg4 clear_screen 01d,01d,23d,78d ;清屏宏调用 clear_screen 01d,01d,23d,78d Init_game 23d,01d,01h,dl,78d,nextsign5 mov ah,02h mov bh,00h mov dh,01h

C语言打字练习程序课程设计报告

青岛理工大学 《C语言程序设计》 题目打字练习程序 指导教师:李兰老师 姓名: 学号:2011 班级: 专业:计算机科学 地点:现代教育中心机房201 时间:2012.6.26 至2012.6.29

一、内容 本程序主要实现的是对使用者的打字速度进行练习和提高。因为界面友好亲和,因此能让使用者在轻松愉快中练习并快速提高自己的打字速度和准确性。程序主要的功能有记录使用者在本次使用中的击中数和总下落字母的个数之比。并且游戏设置了九个等级,随着数字的增加,等级越高,字母下落的速度逐步提高,这样能够更好的迎合不同水平的用户需求。使用本程序很简单,因为在写代码时,我很注重的是界面的友好,所以,在用户的每次操作前,界面上都有详细的操作提醒,只要跟着提示输入就能很快速地进入并开始练习。 二、上机环境 操作系统:windows XP(win7兼容) 开发工具:VC6.0 三、函数调用关系图 void main( ) start( ) printfScreen( ) levelChoice( ) newWord ( ) moving( ) wordHit( ) result( ) leave( )

四、各函数功能说明 1、void main( ) 主函数 2、void printScreen( ) 刷新屏幕函数 3、int levelChoice( ) 游戏等级选择函数 4、int newWord( ) 生成新字符函数 5、int moving( ) 字符下降函数 6、int wordHit( ) 击中字符函数 7、int result ( ) 结果输出函数 8、int start( ) 程序开始提示操作 9、void leave( ) 函数结束

计算机图形学课程设计——扫雷游戏程序设计

计算机图形学课程设计——扫雷游戏程序设计

《计算机图形学》课程设计报告 VC++扫雷游戏的程序设计 专业班级: 小组成员:

指导老师: 日期:2012年12月24日 1、需求分析 本课程设计实现类似于Windows XP操作系统自带的扫雷游戏。该设计以V isual C++ 6.0为开发环境, Windows 7/XP为程序运行平台。在程序设计中,把整个雷区看成一个二维数组,把雷方块定义为具有所在雷区二维数组的行和列、当前状态、方块属性、历史状态的结构体,采用了MFC机制解决问题的方法。整个游戏程序包括了布雷、扫雷过程和结果三个阶段,在处理鼠标响应事件中伴随着GDI绘图。程序通过调试运行,实现简单的设计目标,满足扫雷游戏初学者的需要。 通过本课程设计,以便更好的巩固计算机图形学相关知识,掌握课程设计基本的方法和技巧,同时增加同学之间的团队合作精神以及培养分析问题、解决问题的能力。 2.总体设计 2.1 功能概述 扫雷游戏的游戏界面如图1所示。在这个界面中,由众多面积均等的小方块所组成的区域称之为雷区,雷区的大小由用户设置的游戏等级决定。

图1 游戏开始时,系统会在雷区中随机布下若干个地雷。安放地雷的小方块称之为雷方块,其他的称之为非雷方块。部署完毕后,系统会在其他非雷方块中填充一些数字。某一个具体数字表示与其紧邻的8个方块 中有多少雷方块。玩家可以根据这些信息去判断是否可以鼠标点击方块, 并把认为是地雷的方块打上标识。当玩家将所有地雷找出后,其余的非雷方块区域都已打开,此时游戏结束。在游戏过程中,一旦错误地打开了雷方块则立即失败,游戏结束。 游戏规则总结: ●开始:按左键开始游戏,按按钮或菜单重新开始。 ●左键:按下时,是雷则结束,非雷则显示数字。 ●数字:代表此数字周围一圈八格中雷的个数。 ●右键:奇次按下表示雷,偶数按下表示对上次的否定。 ●结束:左键按到雷结束,找出全部雷结束。 在游戏开始后,雷区上方有两个计数器。右边的计数器显示用户扫

(完整word版)打字训练测试软件-Java课程设计

《程序设计实践》题目:打字训练测试软件 学校:陕西工业学院 学院:信息学院 班级:信管12-2 学号: 201213156619 姓名:刘克豪 2014 年 11 月 09 日

基础类、IO流与异常处理程序设计 一、实践要求 1.掌握Java常用基础类API。 2.掌握输入输出流常用类API。 二、实践要求 利用Java常用基础类API、输入输出流常用类API、Java异常处理等完成所选项目的程序设计。 三、项目需求 所选项目名称:打字训练测试软件 四、项目设计方案 EnglishGame类:主要构造都在这里完成。 MyKey类:是该程序的一个内部类。 EnglishGame作为主函数的入口。调用actionPerformed类的方法实现事件监听器。当发生点击事件时就会弹出输入框,开始英文打字功能。从而达到打字训练测试的目的。 五、核心算法详细设计 1 . public void actionPerformed(ActionEvent e) {} 2.public void keyReleased(KeyEvent arg0) {} 3. public static void main(String[] args) {} 4. public JPanel creatMenu() {} 六、完整源码 package shiyansan; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileReader; import java.util.Date; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextPane; import javax.swing.SwingUtilities; //所使用的包 public class EnglishGame implements ActionListener { private static JFrame f = new JFrame("英文打字游戏"); private static Container con = f.getContentPane(); JPanel mainPanel,panel0,panel1,panel2,panel3,panel4,panel5,panel6,panel7; JButton button1,button2,button3,button4,button,button5,button6; JTextPane tp1,tp2; FileReader fr; File frr; Date date1,date2; int num,len1,len2,count; long time; double rightrate; char[] ch; public void actionPerformed(ActionEvent e) {

《贪吃蛇游戏课程设计》报告

贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (4).完成课程设计报告,并进行答辩 三、需求分析 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。 3.2、设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇

的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。 3.3、流程图

四、设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #define M 200 #include"graphics.h" #include #include #include #include #include #include #include #define LEFT 97//A #define RIGHT 100//D #define DOWN 115//S #define UP 119//W #define Esc 0x011b int i,key; int score=0; int gamespeed=250;//游戏速度可根据实际情况自行调整 struct Food { int x;//食物的横坐标 int y;//食物的纵坐标 int yes;//判断是否要出现食物的变量}food;//食物的结构体 struct Snake { int x[M]; int y[M]; int node;//蛇的节数 int direction;//蛇的移动方向 int life;//蛇的生命,0表示活着,1表示死亡 }snake; void Init();//图形驱动 void Close();//图形结束 void DrawK();//开始画面 void GamePlay();//玩游戏的具体过程void GameOver();//游戏结束 void PrScore();//输出成绩 (2)主函数main( ) 主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序 void main()//主函数 { Init();//图形驱动 DrawK();//开始画面

《程序设计课程设计》实验报告材料

《程序设计》课程设计 姓名: 学号: 班级:软件工程14 班 指导教师: 成绩:

1.消除类游戏 1.1【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 1.2【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 1.3【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 1.4【功能实现】 #include #include using namespace std;

int main() { int m, n, i ,j; int temp; cin >> n >> m; temp = m; m = n; n = temp; int * map = new int[m * n]; int * mark = new int[m * n]; int * tmap = map; int * tmark = mark; int dif = 0; //输入 for ( i = 0 ; i < m ; i++ ) for (j = 0; j < n; j++) cin >> *(tmap + i * n + j); for (i = 0; i < m; i++) for (j = 0; j < n; j++) { //横行 if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0) if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + 1) = 0; *(tmark + dif + 2) = 0; } //竖列 if (tmap + 2 * n - map < m * n || tmap + n - map < m * n) if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + n) = 0; *(tmark + dif + 2 * n) = 0; } tmap = map + (j+1) + i * n; } //输出 cout << endl; tmap = map; for (i = 0; i < m; i++)

C#打字游戏课程设计

C# 打字游戏程序核心代码主要部分: 设计程序流程图:

主窗体代码: using System; using System.Collections.Generic; using https://www.360docs.net/doc/af12803173.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; //课程名称 C# 程序设计实践 //设计题目打字游戏 //专业计算机科学与技术 //班级 //学号 //姓名 //指导老师 namespace Typing_Game { public partial class FrmTyping : Form { public FrmTyping() { InitializeComponent();

public int right = 0; //正确个数计数 public int wrong = 0; //错误个数计数 public int sum = 0; //总个数技术 public int count = 0; //按键总次数 public float accuracy; //正确率 public int Minute = 1; //设置默认没局游戏时间 public int minute; //设置游戏中的倒计时分 public int second; //设置游戏中的倒计时秒 private void FrmTyping_Load(object sender, EventArgs e) { } //在状态栏中显示当前系统时间 private void timerSys_Tick(object sender, EventArgs e) { DateTime now = DateTime.Now; this.tsslSysTime.Text = "系统时间: " + now.Hour.ToString() + ":" + now.Minute.ToString() + ":" + now.Second.ToString()+'\t'; } //开始&结束按钮 private void tsmiStratOrOver_Click(object sender, EventArgs e) { if (tsmiStratOrOver.Text == "开始") { tsmiStratOrOver.Text = "结束"; timerWord.Start(); timerGame.Start(); timerGT.Start(); //在游戏开始时暂停&继续按钮可用 tsmiPauseOrContinue.Enabled = true; //在游戏未开始时选择游戏等级与设置游戏按钮无效 tsmiLevel.Enabled = false; tsmiOption.Enabled = false; //游戏开始初始化游戏数据 right = 0; wrong = 0;

相关文档
最新文档