安卓贪吃蛇课程设计报告

时间:2024.4.13

辽 宁 科 技 大 学

新技术专题报告

 

设计题目:   安卓手机游戏---贪吃蛇    

学院、系:  电信学院、计算机科学与技术

专业班级:   计算机09.1              

学生姓名:                       

指导教师:     龙艳彬  滕薇          

成    绩:                            

                     20## 年 7月1日

目录

第一章  绪论... 3

1.1开发背景... 3

1.1.1安卓系统简介... 3

1.1.2游戏简介... 3

1.2开发目的及意义... 4

1.3开发环境及工具... 4

第二章      需求分析... 5

2.1游戏界面分析... 5

2.2游戏角色分析... 5

2.3游戏控制分析... 5

2.4 可行性分析... 6

第三章      总体设计... 7

3.1系统功能模块层次图... 7

3.2运行机制... 8

3.3贪吃蛇功能流程图... 10

第四章  详细设计与实现... 12

4.1  TiltView类... 12

4.2  SnakeView类... 14

4.3  界面设计... 16

第五章 测试... 20

5.1游戏功能测试... 20

5.2游戏控制测试... 20

5.3游戏界面测试... 20

5.4测试结果... 20

第六章      结论... 21

第一章  绪论

1.1开发背景

1.1.1安卓系统简介

安卓系统作为新兴的手机操作系统,在问世不久,变风靡全球,占领手机操作系统里很大的市场份额,与苹果,诺基亚三分天下,Android是基于Linux开放性内核的操作系统,是Google公司在20##年11月5日公布的手机操作系统。 早期由原名为"Android"的公司开发,谷歌在20##年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。

1.1.2游戏简介

1976年,Gremlin平台推出了一款经典街机游戏Blockade。游戏中,两名玩家分别控制一个角色在屏幕上移动,所经之处砌起围栏。角色只能向左、右方向90度转弯,游戏目标保证让对方先撞上屏幕或围栏。 听起来有点复杂?其实就是下面这个样子:
    基本上就是两条每走一步都会长大的贪吃蛇比谁后完蛋,玩家要做的就是避免撞上障碍物和越来越长的身体。更多照片、视频可以看 Games DBase 的介绍。 
   Blockade 很受欢迎,类似的游戏先后出现在 Atari 2600、TRS-80、苹果 2 等早期游戏机、计算机上。但真正让这种游戏形式红遍全球的还是21年后随诺基亚手机走向世界的贪吃蛇游戏——Snake。

贪吃蛇游戏是一款老牌的手机游戏,同时也是一款比较需要耐心地游戏。贪吃蛇游戏就是一条小蛇,不停地在屏幕上游走,吃各个方向出现的食物,越吃越长。只要蛇头碰到屏幕四周,或者碰到自己的身子,小蛇就立即毙命。玩“贪吃蛇游戏”,难度最大的不是蛇长得很长的时候,而是开始的时候。那时蛇身很短,看上去难度不大,却最容易死掉,因为把玩一条小蛇让人容易走神,失去耐心。

1.2开发目的及意义

通过本次课程设计,了解android软件的开发过程,熟悉并掌握JAVA语言,HTML. 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇 目的 本程序实现主要技巧在于java语言的应用。目的在于提高编程的水平。

1.3开发环境及工具

采用eclipse开发工具,在windowsxp下进行,基于安卓2.2操作系统。

环境搭建:

1.  JDK安装

2.  Eclipse安装

3.  Android SDK安装

4.  ADT安装创建AVD

第二章    需求分析

2.1游戏界面分析

首先应解决操作界面的问题,操作界面应该人性化设计,提示玩家当前游戏状态,何时开始,按什么按键开始游戏,开始游戏之后,在游戏界面中,以坐标的形式对整体界面进行划分,将界面划分为许多个小方格,还应设计蛇的样式,苹果的样式和墙的样式,在蛇吃到苹果后的样式,还有游戏结束或暂停时,界面的显示,游戏结束后,要显示所得的分数。

2.2游戏角色分析

设置游戏贪吃蛇初始时由固定个小矩形块组成,并且,游戏中,要随机出现由单个矩形块构成的苹果,并且在设置苹果的时候,还要设置,不能使将要出现的苹果出现在蛇的身体之下,在蛇吃到苹果的时候,要将蛇的身体加长,随着游戏的进行,蛇移动的速度也要加快。此外,要判定游戏成功与失败的条件,当蛇的头和尾相撞或者蛇的头部撞到了墙上,则游戏失败,此时游戏结束,界面显示所得分数,当累积分数达到一定标准则游戏成功。另外蛇的移动原理,由外部按键设置监听控制蛇头的移动方向,在方向的指引下进行移动,蛇及苹果的位置都是由坐标数组确定的,苹果的位置也是随机产生的蛇的移动原理是后一矩形块覆盖前一个矩形块。当一个苹果被吃掉的时候,要自动生成并显示下一个苹果的位置。这些都是在设计过程中需要实现的。

2.3游戏控制分析

游戏中需要通过按键对蛇的移动方位进行控制,共需要设置四个方位,分别是“东”“西”“南”“北”,在按键上用“上”“下”“左”“右”,按键与执行部分便涉及到监听,通过监听指示蛇的运动,此外,要设置蛇移动是的默认方向为“上”

游戏开始时也是由“上”键启动,暂停后根据玩家的操作自动控制蛇的移动方向,设计过程中还应注意,蛇的移动只能是90度偏转,不能进行180度偏转。此外还要设置游戏的四种状态,准备,运行,暂停,结束,蛇体变长的时候要用累加器进行加分。游戏暂停时,要对当前游戏的参数和状态进行保存。

2.4 可行性分析
   贪吃蛇游戏是一种简单的大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱,做一个简单的贪吃蛇小游戏。
   贪吃蛇的核心算法时如何实现移动和吃掉食物,没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色绘制这个节点,然后把头指针所指的节点出队,并以游戏框架内部背景色重绘出队的节点,这样就可以达到移动的效果。而在吃到食物的时候,则只需把食物入队即可。实现贪吃蛇的基本的蛇身移动、吃到食物身体增长、和碰到墙壁或自身死亡,能够暂停和开始。
   本次设计我将主要运用java语言来完成。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。
  由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。



第三章    总体设计

3.1系统功能模块层次图

工程中包括4个Activity,分别为Snake(主界面)、Game(游戏界面)、Help(游戏说明界面)、AuthorView(作者信息界面),通过不同Activity之间的转换实现不同界面之间的切换。Snake(Activity)继承了SnakeView类,SnakeView类继承了TileView类。TileView类继承了View其实 Snake的工程蛮简单的,源文件就三个: Snake.java SnakeView.java TileView.java。 Snake类是这个游戏的入口点, TitleView类进行游戏的绘画, SnakeView类则是对游戏控制操作的处理。 Coordinate, RefreshHandler是 2个辅助类,也是 SnakeView类中的内部类。其中, Coordinate是一个点的坐标( x, y), RefreshHandler将 RefreshHandler对象绑定某个线程并给它发送消息。如下图:

类图

3.2运行机制

任何游戏都需要有个引擎来推动游戏的运行,最简化的游戏引擎就是:在一个线程中 While循环,检测用户操作,对用户的操作作出反应,更新游戏的界面,直到用户退出游戏。

在 Snake这个游戏中,辅助类 RefreshHandler继承自 Handler,用来把 RefreshHandler与当前线程进行绑定,从而可以直接给线程发送消息并处理消息。注意一点: Handle对消息的处理都是异步。 RefreshHandler在 Handler的基础上增加 sleep()接口,用来每隔一个时间段后给当前线程发送一个消息。 handleMessage()方法在接受消息后,根据当前的游戏状态重绘界面,运行机制如下:

                         活动图
运行机制
这比较类似定时器的概念,在特定的时刻发送消息,根据消息处理相应的事件。 update()与 sleep()间接的相互调用就构成了一个循环。这里要注意: mRedrawHandle绑定的是 Avtivity所在的线程,也就是程序的主线程;另外由于 sleep()是个异步函数,所以 update()与 sleep()之间的相互调用才没有构成死循环。

最后分析下游戏数据的保存机制,如下:


                           活动图
这里考虑了 Activity的生命周期:如果用户在游戏期间离开游戏界面,游戏暂停;或者由于内存比较紧张, Android关闭游戏释放内存,那么当用户返回游戏界面的时候恢复到上次离开时的界面。

3.3贪吃蛇功能流程图

                       

第四章  详细设计与实现

4.1  TiltView类

TiltView的基类是View,包含了贪吃蛇游戏画面的各个设定参数,主要负责绘制游戏画面。TileView类定义如下:

publicclass TileView extends View {

         privatestaticfinal String tag = "yao";

         protectedstaticintmTileSize = 20;//方格的边长

         protectedstaticintmXTileCount;//X轴上方格的个数

         protectedstaticintomYTileCount;//Y轴上方格的个数

         privatestaticintmXOffset;//绘图时X轴上的起始坐标

         privatestaticintmYOffset;//绘图时Y轴上的起始坐标

         private Bitmap[] mTileArray;//位图数组

         privateint[][] mTileGrid;//映射整个游戏画面的数组

         privatefinal Paint mPaint = new Paint();//画笔

         public TileView(Context context, AttributeSet attrs) {

                   super(context, attrs);

                   Log.i(tag, "TileView Constructor");

                   Log.i(tag, "mTileSize=" + mTileSize);

         }

         //重置位图数组的长度

         publicvoid resetTiles(int tilecount) {

                   mTileArray = new Bitmap[tilecount];

         }

         @Override

         //适应各种分辨率的屏幕,当改变屏幕大小尺寸时,同时修改tile的相关计数指标

         protectedvoid onSizeChanged(int w, int h, int oldw, int oldh) {

                   Log.i(tag, "onSizeChanged," + "w=" + w + " h=" + h + " oldw=" + oldw + " oldh=" + oldh);

                   mXTileCount = (int) Math.floor(w / mTileSize);

                  mYTileCount = (int) Math.floor(h / mTileSize);

                   Log.i(tag, "mXTileCount=" + mXTileCount);

                   Log.i(tag, "mYTileCount=" + mYTileCount);

                   mXOffset = ((w - (mTileSize * mXTileCount)) / 2);

                   mYOffset = ((h - (mTileSize * mYTileCount)) / 2);

                   Log.i(tag, "mXOffset=" + mXOffset);

                   Log.i(tag, "mYOffset=" + mYOffset);

                   mTileGrid = newint[mXTileCount][mYTileCount];

                   clearTiles();

         }

         //这里做了一个 Drawable 到 bitmap 的转换

         publicvoid loadTile(int key, Drawable tile) {

                   Bitmap bitmap = Bitmap.createBitmap(mTileSize, mTileSize, Bitmap.Config.ARGB_8888);

                   Canvas canvas = new Canvas(bitmap);

                   tile.setBounds(0, 0, mTileSize, mTileSize);

                   tile.draw(canvas);

                   mTileArray[key] = bitmap;

         }

//清空图形显示

         publicvoid clearTiles() {

                   Log.i(tag, "TileView.clearTiles");

                   for (int x = 0; x < mXTileCount; x++) {

                            for (int y = 0; y < mYTileCount; y++) {

                                     setTile(0, x, y);

                            }

                   }

         }

//在相应的坐标位置绘制相应的砖块

         publicvoid setTile(int tileindex, int x, int y) {

                   mTileGrid[x][y] = tileindex;

         }

         // onDraw

         @Override

//将直接操作的画布绘制到手机界面上

         publicvoid onDraw(Canvas canvas) {

                   Log.i(tag, "onDraw");

                   super.onDraw(canvas);

                   Bitmap bmp;

                   float left;

                   float top;

                   for (int x = 0; x < mXTileCount; x++) {

                            for (int y = 0; y < mYTileCount; y++) {

                                     if (mTileGrid[x][y] > 0) {

                                               bmp = mTileArray[mTileGrid[x][y]];

                                               left = x * mTileSize + mXOffset;

                                               top = y * mTileSize + mYOffset;

                                               canvas.drawBitmap(bmp, left, top, mPaint);

                                     }

                            }

                   }

         }

}

4.2  SnakeView类

SnakeView类定义了游戏运行时的画面改变及蛇体和果子的更新方法。

首先用Handler机制实现定时刷新,代码如下:

class RefreshHandler extends Handler {

        //获取消息并处理

                   @Override

                   publicvoid handleMessage(Message msg) {

                            SnakeView.this.update();

                            SnakeView.this.invalidate();//刷新view为基类的界面

                            Log.i(tag, "handleMessage|Thread Name="+Thread.currentThread().getName());

                   }

        //定时发送消息给UI线程,以此达到更新效果

                   publicvoid sleep(long delayMillis) {

                            this.removeMessages(0); //清空消息队列,Handler进入对新消息的等待  

                            Log.i(tag, "sleep|Thread Name="+Thread.currentThread().getName());

                            //定时发送新消息,激活handler  

                            sendMessageDelayed(obtainMessage(0), delayMillis);

                   }

         };

定义SnakeView()函数初始化游戏,代码如下:

public SnakeView(Context context, AttributeSet attrs) {

                   super(context, attrs);

                   Log.i(tag, "SnakeView Constructor");

                   initSnakeView();//构造函数中,初始化游戏

         }

定义initSnakeView()初始化SnakeView类,代码如下:

privatevoid initSnakeView() {

                   Log.e(tag, "initSnakeView");

                   //设置焦点,由于存在 文字界面 和 游戏界面的跳转。这个focus是不可或缺的。

                   setFocusable(true);

                   //取得资源中的图片,加载到 砖块字典 中。

                   Resources r = this.getContext().getResources();

                   resetTiles(4);

                   loadTile(RED_STAR, r.getDrawable(R.drawable.redstar));

                   loadTile(YELLOW_STAR, r.getDrawable(R.drawable.yellowstar));

                   loadTile(GREEN_STAR, r.getDrawable(R.drawable.greenstar));

         }

此外还定义了updateWalls()、updateApples()、updateSnake()绘制墙、果子、蛇,以及更新画面函数、保存位置坐标函数等,具体代码请详见目录。

4.3界面设计

界面设计包括游戏主界面(Snake)、游戏说明界面、游戏界面的设计。界面的设计采用的是xml文档形式,在xml文档中规划好界面布局布局后,分别在java文件中声明。

主界面设计:主界面包括一个 TextView及布局设定,其main.xml文档如下

<?xml version="1.0" encoding="utf-8"?>

<!-- Copyright (C) 20## The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");

     you may not use this file except in compliance with the License.

     You may obtain a copy of the License at

 

          http://www.apache.org/licenses/LICENSE-2.0

 

     Unless required by applicable law or agreed to in writing, software

     distributed under the License is distributed on an "AS IS" BASIS,

     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

     See the License for the specific language governing permissions and

     limitations under the License.

-->

<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

   

    <com.example.android.snake.SnakeView

     android:id="@+id/snake"

        android:layout_width="match_parent"

                android:layout_height="match_parent"

                tileSize="24"

                />

   

    <RelativeLayout

        android:layout_width="match_parent"

        android:layout_height="match_parent" >

       

        <TextView

         android:id="@+id/text"

            android:text="@string/snake_layout_text_text"

            android:visibility="visible"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_centerInParent="true"

            android:gravity="center_horizontal"

            android:textColor="#ff8888ff"

            android:textSize="24sp"/>

    </RelativeLayout>

</FrameLayout>

至此,全部界面设计完成,但还有最重要的一步,就是将所有的Activity注册到AndroidManifest.xml中。AndroidManifest.xml文档如下:

<?xml version="1.0" encoding="utf-8"?>

<!-- Copyright (C) 20## The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");

     you may not use this file except in compliance with the License.

     You may obtain a copy of the License at

 

          http://www.apache.org/licenses/LICENSE-2.0

 

     Unless required by applicable law or agreed to in writing, software

     distributed under the License is distributed on an "AS IS" BASIS,

     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

     See the License for the specific language governing permissions and

     limitations under the License.

-->

<!-- Declare the contents of this Android application.  The namespace

     attribute brings in the Android platform namespace, and the package

     supplies a unique name for the application.  When writing your

     own application, the package name must be changed from "com.example.*"

     to come from a domain that you own or have control over. -->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.android.snake">

    <application android:label="Snake on a Phone">

      <activity android:name="Snake"

        android:theme="@android:style/Theme.NoTitleBar"

        android:screenOrientation="portrait"

        android:configChanges="keyboardHidden|orientation">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

4.4项目演示

                    游戏前画面

游戏中界面

游戏结束时画面

第五章 测试

5.1游戏功能测试

经过在模拟器上的测试,本软件能书案例实现其功能,达到了小蛇在屏幕上的移动,小蛇吃苹果,苹果随机出现的功能,当小蛇头尾相撞或与墙相撞时,游戏结束.这些均在测试中得到验证。

5.2游戏控制测试

在测试过程中,也着重对游戏的控制功能进行了测试,游戏是通过方向键的控制来实现的,在游戏刚开始的阶段,上下左右四个方位的控制都很成功,但随着蛇移动的速度越来越快,按键的控制反应会出现滞后,通过分析,可能是由于蛇的运动速度超过了键盘的反应速度造成的,与软件无关,所以得出结论,游戏的控制设计也是成功的。

5.3游戏界面测试

游戏运行之后,就是在画面中出现蛇和两个苹果的初始位置,并且是静止的,并且在画面上还会出现操作提示“按上键开始游戏”,游戏运行过程中,除了蛇的运动之外,界面大题没有变化,分别由绿色矩形块的围墙,黄色矩形块的苹果和红色矩形块的蛇身(蛇头为黄色)组成。游戏结束后,界面处于暂停状态,提示游戏结束并显示分数。

5.4测试结果

通过对游戏软件的功能测试,控制测试和界面测试。详细说是对游戏的开始新游戏、 退出、 查看最高成绩、 计时、 统计分数等功能进行测试, 并测试程序的鼠标点击事件、菜单的响应及按键响应等事件,结论是该游戏软件能正确实现功能要求。要求输出的效果与预期的输出效果完全 一致。

第六章                            结论

回顾这个设计过程,我学到了许多书本上没有学到的知识。通过这次自己制作的软件,丰富了自己的实践技能,扩展了本专业的知识面,使我受益非浅,同时 也体验到了搞软件开发的困难度。 在这次设计的同时,我又从中学到了许多东西。 但由于我对这样的软件开发还只是一个开始,了解的不多,这其中或许还有很多 的不足,有些模块做得不是很好,界面的设计及整体的布局还比较简单,没有突 出特色出来,这也可能是我这个系统的不足之处,在这里也恳请老师能够对 我的作品指明不足并加以改正。

我所做的设计功能并不算强大,但是这些结合了本学期所学习的内容,主要是界面的设计,并改写了两个类。通过自己写代码,我更进一步清楚了android工程的框架及设计的步骤,以及每个文件的作用,稍微掌握了一些View类的方法,同时也学到了更多的界面设计的方法,比如如何实现一个TextView里显示多行数据,如何自定义视图等。

但同时我也遇到了问题,比如在编写控制模块代码的时候,如何何时按键监听这一块让我很头疼,另外在设计界面整体布局的时候,如何编写XML文件,这也是很大的问题后来通过查阅资料,对这些问题都做到了很好的解决

总之,在这一次的课程设计过程中,我查阅了大量的资料,对 Java 有了一 点初步的认识,对于软件工程这些辅助性的教材也巩固了不少,为我这次的课设 提供了很大的帮助,锻炼了我的能力让我掌握了一门新的程序设计语言:java 语言,系统地学习了数据库方面的知识,并更进一步提高了我在程序设计、调试 方面的技巧。更重要的是,它还让我认识到了自己的不足,在编程方面,我仅仅 是刚刚入门而已,以后的道路任重道远,需要我不断的丰富自己、充实自己,这 样才能在程序设计方面有所收获。

参考文献
[1] 沈泽刚,秦玉平.Java 语言程序设计[M].清华大学出版社,2009

[2] 陈昊鹏[同译者作品] .Java 编程思想(第 4 版).机械工业出版社,2007

[3] 耿祥义,张跃平. Java 实用教程(第三版).清华大学出版社,2006

更多相关推荐:
C课程设计报告—贪吃蛇

程序设计基础课程设计C课程设计报告贪吃蛇院系:计算机学院网络工程系班级:122班姓名:指导教师:20##年12月25日程序设计基础课程设计任务书一、题目:贪吃蛇二、设计要求(1)XXX负责设计与实现。(2)查阅…

贪吃蛇课程设计报告

目录1课程设计目的32课程设计任务与要求321课程设计内容322课程设计要求323课程设计环境33课程设计方案331方案论证332程序整体设计说明333设计思路434设计总体流程图435设计的具体实现54程序测...

基于MFC的贪吃蛇程序设计(课程设计) 报告

《MFC应用程序设计》课程设计报告题目:学院:专业:班级:姓名:学号:指导教师:评阅成绩:二0年月日目录概述31.设计目的32.功能描述33.大体思想34.程序框图45.主要知识点56.重要的MFC57.数据结…

JAVA贪吃蛇课程设计报告

Java应用开发课程设计报告题目指导老师姓名专业班级日期JAVA小游戏贪吃蛇目录一系统总体设计1一设计目标及完成功能1二系统结构设计1二详细设计2一界面设计2二系统设计4三关键技术及算法6四测试7五安装使用说明...

c语言贪吃蛇课程设计报告

C语言课程设计报告C语言课程设计报告贪吃蛇专业学生姓名班学级号完成日期C语言课程设计报告一游戏规则需求1在打开程序后出现选择界面里面包含难度选择其中难度选择能够使程序出现相应的游戏难度2开始游戏后WASD键控制...

c语言程序贪吃蛇课程设计报告

山东工商学院信电学院自动111班第一组贪吃蛇课程设计报告高级语言程序设计课程设计报告ExperimentDesigningreporter课程名称高级语言程序设计英文名称CProgramExperimentDe...

贪吃蛇课程设计报告 2

基于VCNET的贪吃蛇游戏的目录1实验目的2实验任务与要求21实验内容22实验要求23实验环境3设计方案31程序功能32设计思想33设计总体流程图34设计的具体实现4程序测试41测试内容与结果42程序运行效果图...

C#贪吃蛇课程设计报告

C课程设计基于VCNET的贪吃蛇游戏的开发与设计姓名李贵敏学号20xx80114105班级软件081班指导教师程铭完成日期20xx624C课程设计目录12实验目的2实验任务与要求221实验内容222实验要求22...

课程设计-贪吃蛇游戏

目录一软件设计要求和规范2二软件制作过程2三收获和体会13参考文献13一软件设计要求和规范11设计要求通过游戏程序设计提高编程兴趣与编程思路巩固C语言中所学的知识合理的运用资料实现理论与实际相结合1收集资料分析...

java课程设计贪吃蛇游戏设计

前言Java最初被命名为Oak目标设定在家用电器等小型系统的编程语言来解决诸如电视机电话闹钟烤面包机等家用电器的控制和通讯问题由于这些智能化家电的市场需求没有预期的高Sun放弃了该项计划就在Oak几近失败之时随...

Java程序设计报告《贪吃蛇》

Java程序设计课程设计报告题目贪吃蛇游戏的设计与实现指导老师沈泽刚专业计算机科学与技术班级103姓名梁潇一课程设计目的贪吃蛇游戏一款非常经典的手机游戏因为它比较简单有趣无论老少都比较适合目的是更好地了解和掌握...

贪吃蛇游戏java课程设计

宝鸡文理学院计算机科学系JAVA程序设计课程设计报告题目姓名学号专业班级指导教师日期贪吃蛇游戏赵鹏飞陈瑞李烨20xx9606407320xx9606407720xx9606407220xx96064016软...

贪吃蛇课程设计报告(22篇)