贪吃蛇游戏开发设计
贪吃蛇游戏课程设计

贪吃蛇游戏课程设计一、课程目标知识目标:1. 学生能理解贪吃蛇游戏的基本原理,掌握游戏设计中涉及的坐标、方向和移动等概念。
2. 学生能运用所学的编程知识,使用合适的数据结构和算法实现贪吃蛇游戏的主体功能。
3. 学生了解游戏设计中的用户界面设计原则,并能将其应用于贪吃蛇游戏的界面设计。
技能目标:1. 学生掌握运用编程语言进行游戏设计的基本技巧,提高编程实践能力。
2. 学生能够运用逻辑思维和问题分析能力,解决游戏设计过程中遇到的问题。
3. 学生通过团队协作,提高沟通能力和项目协作能力。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,增强学习信息技术的积极性。
2. 学生在游戏设计过程中,培养创新意识和审美观念,提高对美的追求。
3. 学生通过课程学习,认识到编程对生活的影响,激发将所学知识应用于实际生活的意识。
课程性质:本课程为信息技术学科选修课程,适用于有一定编程基础的学生。
学生特点:学生具备基本的计算机操作能力,对编程有一定了解,对游戏设计感兴趣。
教学要求:结合学生特点,注重实践操作,鼓励学生创新和团队协作,提高学生的编程能力和审美观念。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 游戏设计基本原理:介绍游戏设计的基本概念、流程和原则,结合贪吃蛇游戏案例分析游戏设计中的核心要素。
- 课本章节:第三章“游戏设计概述”- 内容:游戏设计流程、游戏类型、游戏设计原则2. 编程语言和工具:复习巩固编程基础,介绍贪吃蛇游戏所需的基本编程知识和工具。
- 课本章节:第二章“编程基础”- 内容:变量、数据类型、运算符、流程控制、函数、数组3. 数据结构和算法:分析贪吃蛇游戏中涉及的数据结构(如链表、数组)和算法(如坐标计算、碰撞检测)。
- 课本章节:第四章“数据结构与算法”- 内容:链表、数组、坐标计算、碰撞检测4. 游戏界面设计:介绍用户界面设计原则,指导学生设计贪吃蛇游戏的界面。
贪吃蛇开题报告

贪吃蛇开题报告贪吃蛇开题报告一、引言贪吃蛇作为一款经典的电子游戏,自上世纪70年代问世以来一直备受玩家的喜爱。
它简单而有趣的玩法,让人沉迷其中。
本文旨在探讨贪吃蛇游戏的设计与开发,并提出一些创新的想法。
二、游戏规则和机制贪吃蛇的基本规则很简单:控制一条蛇在有限的空间内移动,通过吃食物来增长身体长度,同时避免碰到自己的身体或者墙壁。
游戏难度逐渐增加,当蛇的身体变得越来越长时,操作也变得更加困难。
三、游戏设计与开发1. 游戏界面设计在游戏界面设计中,我们可以考虑使用简洁明了的图形元素,如方块或者圆点来代表蛇和食物。
同时,背景可以选择适当的颜色或者纹理,以增加游戏的可视吸引力。
2. 控制方式优化传统的贪吃蛇游戏通常通过键盘来控制蛇的移动方向,但这种方式可能会对一些玩家造成困扰。
因此,我们可以考虑增加触摸屏或者重力感应等更直观的控制方式,以提高游戏的易玩性。
3. 难度调整与关卡设计为了增加游戏的挑战性,我们可以在游戏中设置不同的难度等级,例如增加蛇的移动速度或者缩小可用空间。
同时,通过设计不同的关卡和挑战,可以让玩家保持长久的兴趣。
4. 多人模式与社交功能除了单人游戏模式,我们还可以考虑添加多人对战模式,让玩家可以与其他玩家进行竞争。
此外,通过添加社交功能,如好友排行榜或者分享成绩到社交媒体,可以增加游戏的互动性和分享性。
四、创新想法1. 增加特殊道具除了传统的食物,我们可以考虑添加一些特殊道具,如加速道具、减速道具或者无敌道具等,以增加游戏的变化性和策略性。
2. 引入故事情节为了让游戏更具吸引力,我们可以设计一个有趣的故事情节,让玩家在游戏中扮演一个角色,完成一系列任务或者解谜。
3. 跨平台支持为了让更多的玩家能够体验贪吃蛇游戏,我们可以考虑将游戏开发为跨平台应用,支持不同的操作系统和设备。
五、结论贪吃蛇作为一款经典的电子游戏,一直以来都备受欢迎。
通过对游戏设计与开发的探讨,我们可以不断创新和改进,提升游戏的可玩性和娱乐性。
贪吃蛇程序设计

贪吃蛇程序设计贪吃蛇是一款经典的电子游戏,其设计简单却极具挑战性,深受各个年龄段玩家的喜爱。
下面将详细介绍贪吃蛇程序的设计过程,包括基本规则、程序结构、实现方法以及可能的扩展功能。
基本规则贪吃蛇游戏的基本规则如下:1. 游戏界面是一个矩形网格,蛇在网格中移动。
2. 蛇由多个方块组成,初始时通常只有几个方块。
3. 玩家通过键盘控制蛇头的移动方向。
4. 蛇在吃到食物后,身体长度会增加一节。
5. 如果蛇头撞到自己的身体或屏幕边缘,游戏结束。
程序结构贪吃蛇程序主要包括以下几个部分:1. 游戏界面:显示蛇、食物和网格。
2. 蛇的移动逻辑:控制蛇的移动方向和速度。
3. 食物生成逻辑:随机在界面上生成食物。
4. 碰撞检测:检测蛇是否吃到食物或撞到自己及屏幕边缘。
5. 分数和生命值:记录玩家的得分和剩余生命。
实现方法1. 初始化- 设置游戏界面的大小。
- 初始化蛇的位置和长度。
- 随机生成食物的位置。
2. 游戏循环- 监听键盘输入,更新蛇头的移动方向。
- 根据移动方向更新蛇的位置。
- 检查蛇是否吃到食物,如果是,则增加蛇的长度和分数,并生成新的食物。
- 检查蛇是否撞到自己的身体或屏幕边缘,如果是,则结束游戏。
- 刷新游戏界面,显示当前的蛇、食物和分数。
3. 绘制界面- 使用图形库或API绘制网格、蛇和食物。
4. 处理用户输入- 监听键盘事件,根据用户的输入改变蛇的移动方向。
5. 碰撞检测- 检查蛇头是否与食物重叠,如果是,则触发吃食物的逻辑。
- 检查蛇头是否与蛇身其他部分重叠,如果是,则游戏结束。
- 检查蛇头是否到达屏幕边缘,如果是,则游戏结束。
可能的扩展功能1. 多种难度级别:根据游戏难度调整蛇的移动速度或食物的生成频率。
2. 特殊食物:例如,某些食物可以让蛇短暂加速或获得保护,避免碰撞。
3. 自定义皮肤:允许玩家选择或设计蛇和食物的外观。
4. 多人模式:支持多个玩家在同一设备或网络上进行游戏。
5. 成就系统:为玩家设置各种成就目标,增加游戏的可玩性。
设计贪吃蛇实验报告

一、实验目的1. 掌握游戏设计的基本流程和原则。
2. 学会使用Unity游戏引擎进行游戏开发。
3. 提高编程能力和逻辑思维能力。
4. 实现贪吃蛇游戏,并优化游戏性能。
二、实验环境1. 操作系统:Windows 102. 开发工具:Unity 2019.4.10f13. 编程语言:C#三、实验内容1. 游戏设计2. 场景搭建3. 贪吃蛇游戏逻辑实现4. 游戏优化四、实验步骤1. 游戏设计(1)确定游戏主题:贪吃蛇(2)游戏规则:玩家控制蛇头,通过移动蛇头吃到食物,蛇的长度逐渐增加。
同时,蛇头不能撞到墙壁或自己的身体,否则游戏结束。
(3)游戏界面:包括游戏主界面、游戏场景、得分显示、游戏结束界面等。
2. 场景搭建(1)创建游戏场景:使用Unity编辑器创建一个3D场景,命名为“贪吃蛇场景”。
(2)添加墙壁:使用Unity编辑器中的Cube对象创建墙壁,设置墙壁的位置和大小,使墙壁围成一个封闭的空间。
(3)添加食物:使用Unity编辑器中的Sphere对象创建食物,设置食物的位置和大小。
3. 贪吃蛇游戏逻辑实现(1)创建蛇头和蛇身:使用Unity编辑器中的Cube对象创建蛇头和蛇身,设置蛇头和蛇身的位置和大小。
(2)控制蛇头移动:编写C#脚本,实现蛇头在四个方向上的移动。
(3)蛇头吃到食物:当蛇头与食物接触时,蛇的长度增加,食物消失。
(4)蛇头撞到墙壁或自身:当蛇头与墙壁或自身接触时,游戏结束。
4. 游戏优化(1)提高游戏帧率:通过优化代码和减少资源消耗,提高游戏帧率。
(2)优化蛇身移动:在蛇身移动时,减少不必要的计算,提高游戏性能。
五、实验结果与分析1. 实验结果通过以上步骤,成功实现了一个简单的贪吃蛇游戏。
游戏界面简洁,操作方便,符合游戏设计原则。
2. 实验分析(1)游戏设计方面:游戏规则简单易懂,游戏画面简洁,符合玩家需求。
(2)场景搭建方面:墙壁和食物的布局合理,有利于游戏进行。
(3)游戏逻辑实现方面:蛇头移动、吃到食物、撞墙等逻辑实现正确,游戏运行稳定。
大学生贪吃蛇教案设计方案

一、教学目标1. 让学生了解贪吃蛇游戏的基本规则和玩法。
2. 培养学生的编程思维和团队合作能力。
3. 提高学生的编程实践能力,激发学生对编程的兴趣。
二、教学内容1. 贪吃蛇游戏的基本规则和玩法。
2. 游戏开发所需的技术和工具。
3. 编程实践:使用Python语言实现贪吃蛇游戏。
三、教学步骤1. 导入新课- 向学生介绍贪吃蛇游戏,引导学生回忆游戏的基本规则和玩法。
2. 知识讲解- 讲解游戏开发所需的技术和工具,如Python语言、Pygame库等。
- 讲解贪吃蛇游戏的核心算法,如食物生成、蛇的移动、碰撞检测等。
3. 编程实践- 学生分组,每组选取一名组长,负责组织本组成员进行编程实践。
- 每组选择一种编程语言,如Python,进行贪吃蛇游戏的实现。
- 教师巡回指导,解答学生在编程过程中遇到的问题。
4. 作品展示与评价- 各组完成贪吃蛇游戏后,进行作品展示。
- 教师和学生对各组的作品进行评价,评选出优秀作品。
5. 总结与反思- 教师引导学生总结本次课程所学内容,回顾编程实践过程中的收获与不足。
- 学生进行自我反思,提出改进意见。
四、教学评价1. 学生对贪吃蛇游戏规则和玩法的掌握程度。
2. 学生在编程实践中的团队合作能力和编程实践能力。
3. 学生对编程的兴趣和热情。
五、教学资源1. 贪吃蛇游戏视频教程。
2. Python编程语言教材。
3. Pygame库相关文档。
六、教学反思1. 教师应根据学生的实际情况,调整教学进度和难度。
2. 注重培养学生的编程思维和团队合作能力,提高学生的编程实践能力。
3. 营造轻松愉快的课堂氛围,激发学生对编程的兴趣。
安卓贪吃蛇课程设计

安卓贪吃蛇课程设计一、课程目标知识目标:1. 学生理解并掌握安卓应用开发的基础知识,包括活动(Activity)、视图(View)和意图(Intent)的使用。
2. 学生掌握贪吃蛇游戏的逻辑和算法,包括蛇的移动、食物的生成和碰撞检测。
3. 学生了解如何在安卓应用中实现用户界面设计,使用布局(Layout)和控件(Control)。
技能目标:1. 学生能够独立创建安卓项目,并设置虚拟设备进行调试。
2. 学生能够编写代码实现贪吃蛇游戏的核心功能,包括蛇的自动移动、方向控制以及食物的随机生成。
3. 学生能够利用安卓开发工具进行问题调试,解决开发过程中遇到的问题。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发探究精神和创新意识。
2. 培养学生团队合作意识,学会在团队中发挥个人优势,共同解决问题。
3. 增强学生面对困难的勇气和毅力,培养良好的编程习惯和解决问题的方法。
分析课程性质、学生特点和教学要求:1. 课程性质:实践性、综合性、创新性。
2. 学生特点:具备一定的计算机操作能力,对编程有一定了解,对游戏开发有浓厚兴趣。
3. 教学要求:注重理论与实践相结合,关注学生个体差异,提供个性化的指导,确保学生能够将所学知识应用于实际项目中。
二、教学内容1. 安卓应用开发基础:- 活动的生命周期及状态管理- 视图和布局的使用,包括线性布局、相对布局等- 控件的使用,如按钮(Button)、文本框(TextView)等- 意图(Intent)的使用及数据传递2. 贪吃蛇游戏逻辑与算法:- 蛇的移动逻辑及方向控制- 食物的随机生成及碰撞检测- 游戏分数记录及结束条件3. 安卓界面设计与实现:- 游戏界面的布局设计- 蛇和食物的控件定制- 用户交互界面的实现,如按钮控制蛇的方向4. 教学大纲与进度安排:- 第一周:安卓应用开发基础学习,了解活动、视图、控件和意图的使用- 第二周:学习贪吃蛇游戏逻辑,编写移动算法和方向控制- 第三周:实现食物的生成和碰撞检测,设计游戏界面- 第四周:整合游戏功能,进行调试与优化教材章节关联:- 《Android基础教程》第3章:Android应用界面设计- 《Android基础教程》第4章:Android组件和事件处理- 《Android游戏开发实战》第2章:游戏开发基础及游戏循环- 《Android游戏开发实战》第5章:游戏界面绘制与用户交互教学内容确保科学性和系统性,结合教学大纲和教材章节,使学生能够逐步掌握安卓贪吃蛇游戏的开发技能。
c贪吃蛇游戏课程设计

c 贪吃蛇游戏课程设计一、课程目标知识目标:1. 学生能理解并掌握C语言的基本语法和编程逻辑。
2. 学生能运用C语言编写简单的贪吃蛇游戏,包括游戏界面显示、蛇的移动、食物的生成和得分功能。
3. 学生了解并掌握结构体、数组、函数等C语言核心概念在游戏编程中的应用。
技能目标:1. 学生通过编写贪吃蛇游戏,提高逻辑思维和问题解决能力。
2. 学生能够运用C语言进行程序设计和调试,培养编程实践能力。
3. 学生能够自主查找并利用相关资料,提高信息检索和自主学习能力。
情感态度价值观目标:1. 学生在编程过程中,培养耐心和细心的品质,增强面对困难的勇气和毅力。
2. 学生通过团队协作,培养沟通和合作意识,提高团队协作能力。
3. 学生在完成游戏项目的过程中,激发对编程和计算机科学的兴趣,树立学习信心。
课程性质:本课程为C语言编程实践课,以贪吃蛇游戏为载体,让学生在实际编程过程中掌握C语言的基本知识和技能。
学生特点:学生处于初中阶段,对计算机编程有一定的好奇心,但编程基础薄弱,需要通过具体实例来激发学习兴趣。
教学要求:教师需关注学生的个体差异,提供个性化的指导,帮助学生掌握C 语言编程技能,并注重培养学生的学习兴趣和情感态度。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. C语言基础知识回顾:变量、数据类型、运算符、控制结构(循环和条件语句)。
2. 函数:介绍函数定义、调用、参数传递和返回值,强调模块化编程的重要性。
3. 结构体:讲解结构体的定义和使用,以及如何用结构体表示贪吃蛇和食物。
4. 数组:介绍数组的概念和应用,特别是在贪吃蛇游戏中存储和操作蛇的移动。
5. 图形显示:利用C语言图形库(如curses或SDL)实现贪吃蛇游戏的图形界面。
6. 游戏逻辑:编写蛇的移动、食物的随机生成、吃到食物后的身体增长和得分逻辑。
7. 键盘输入:处理玩家的键盘输入,实现蛇的方向控制。
8. 游戏循环:构建游戏循环,使游戏能够在用户输入下不断运行和更新状态。
c贪吃蛇课程设计

c 贪吃蛇 课程设计一、课程目标知识目标:1. 学生能理解并掌握贪吃蛇游戏的基本规则和编程原理。
2. 学生能够运用所学的编程知识,独立设计并编写简单的贪吃蛇游戏。
3. 学生能够理解坐标系在贪吃蛇游戏中的应用,并运用坐标进行游戏元素的定位。
技能目标:1. 学生能够运用编程语言(如Python)实现贪吃蛇游戏的基本功能,包括蛇的移动、食物的生成和得分统计。
2. 学生能够通过调试程序,解决贪吃蛇游戏中可能遇到的问题,提高问题解决能力。
3. 学生能够通过团队合作,共同完成一个完整的贪吃蛇游戏项目,提升团队协作能力。
情感态度价值观目标:1. 学生通过学习贪吃蛇游戏编程,培养对计算机编程的兴趣和热情,增强学习动力。
2. 学生在游戏设计和编程过程中,培养创新思维和动手能力,提高自信心。
3. 学生在团队合作中,学会相互尊重、沟通协作,培养良好的团队精神和人际交往能力。
课程性质:本课程为信息技术学科的教学内容,结合编程知识与实际操作,培养学生编程思维和动手能力。
学生特点:五年级学生对新鲜事物充满好奇,具备一定的逻辑思维能力和动手操作能力,但编程基础薄弱,需要通过实践操作逐步提高。
教学要求:结合学生特点,课程设计注重实践操作,以学生为主体,激发学生学习兴趣,培养编程思维和团队协作能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高问题解决能力和创新能力。
二、教学内容1. 引言:介绍贪吃蛇游戏的起源和发展,引发学生对编程游戏的兴趣。
- 游戏历史简介- 游戏在信息技术领域的重要性2. 编程基础:- Python编程语言简介- 编程环境搭建(如:安装Python解释器和IDE)- 基本语法和逻辑结构(变量、循环、条件判断等)3. 贪吃蛇游戏原理:- 游戏规则及玩法介绍- 坐标系的应用- 蛇的移动逻辑- 食物的生成与得分机制4. 编程实践:- 设计并编写贪吃蛇游戏的基本框架- 实现蛇的移动、食物的生成和得分统计功能- 调试程序,优化游戏体验5. 进阶拓展:- 添加游戏音效和动画效果- 设计不同难度级别的游戏- 探讨贪吃蛇游戏的其他玩法和变种6. 团队项目:- 学生分组,进行团队协作- 每组设计并完成一个具有创意的贪吃蛇游戏- 分享项目成果,互相学习和评价教学进度安排:- 引言:1课时- 编程基础:4课时- 贪吃蛇游戏原理:2课时- 编程实践:4课时- 进阶拓展:2课时- 团队项目:4课时教学内容与课本关联性:本教学内容以课本中编程基础知识和实践操作为依据,结合贪吃蛇游戏案例,使学生能够将理论知识应用于实际项目中,提高编程能力和创新能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广州商学院课程论文题目:贪吃蛇游戏开发设计课程名称面对对象程序设计考查学期2016/2017学年第 1学期姓名陈思明李权康学号************ ************ 专业计算机科学与技术指导教师包汉宗移植性和平台无关性等优点,得到了广泛地应用,它以其友好的开发界面、强大的组件支持等优点,得到广大程序员的接受和认可。
“贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。
本文基于Java技术,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。
整个游戏程序分为二个功能模块,四个类模块,实现了游戏的开始、暂停、结束。
通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。
关键词:贪吃蛇,Java,游戏一、可行性分析1.1经济可行性游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件的水平的提高。
游戏开发新技术层出不穷,经典游戏比比皆是,游戏这个名称一直存在于每个人的日常生活中。
因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色.而从技术方面来看,现在的java技术也融入了手机中。
这些都为开发的这款贪吃蛇游戏提供了条件。
1.2技术可行性本次设计我将主要运用java语言来完成。
Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。
由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。
如果没有安全保证,用户从网络下载程序执行就非常危险。
Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。
二、需求分析2.1游戏的介绍游戏的名称叫“贪吃蛇”,节:一条蛇可以看成有许多正方形的“小格子”拼凑成,我把它称作节。
节是蛇身上最小的单位。
段:当许多节连成一条直线,我称它为段。
贪吃蛇只有一段,如果它拐弯就变成两段。
链表:用来保存每一段的状态,链表的元素单位是段。
且链表的最后一个元素表示蛇的头部段。
坐标系:MIDP中的坐标以左上角那点为(0,0),向右则x递增,向下则y递增。
2.2游戏开发的可行性游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件的水平的提高。
游戏开发新技术层出不穷,经典游戏比比皆是,游戏这个名称一直存在于每个人的日常生活中。
因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色.而从技术方面来看,现在的java技术也融入了手机中。
这些都为开发的这款贪吃蛇游戏提供了条件。
2.3设计目的综合运用在校所学的知识和技能,设计开发贪吃蛇游戏,使自己熟悉应用系统的开发的过程,培养独立思考的能力,校验学习效果和动手能力,提高工程实践能力。
2.4游戏需求给出一条小蛇和随机出现一个食物,当小蛇吃到食物时就加分。
2.4.1游戏界面需求良好的用户界面,有分数显示和暂停。
2.4.2游戏形状需求良好的方块形状设计,绘制小蛇和食物,小蛇由几个方块组成,食物由一个方块组成。
2.4.3键盘事件处理小蛇可以通过键盘方向键(上,下,左,右)进行方向的移动。
2.4.4显示需求当小蛇吃掉几个食物后会变长,平且吃完食物时食物会消失,并立即产生一个1个新的事物。
2.4.5接口控制本软件通过键盘进行操作,在windows操作系统下,利用键盘的上下左右键进行操作,要使用键盘的接口事件。
2.4.6环境介绍操作系统:Microsoft Windows 7程序语言:Java 2开发包:Java(TM) 2 Standard Edition (5.0)Sun Micro. J2ME Wireless Tool Kit 2.2IDE: Eclipse4.4三、功能设计3.1 游戏的流程图3.2游戏主界面的开发屏幕的背景用白色,由于屏幕高比宽长,所以取以宽为边长的矩形区域作为游戏区域,下面的部分作为分数、信息区域。
图一(游戏的主界面)3.3 绘制蛇身public void repaint(){Graphics g = canvas.getGraphics();// 背景g.setColor(Color.black);g.fillRect(0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT);// 蛇g.setColor(Color.PINK);LinkedList<Node> snakeNode = snake.nodeArray;Iterator<Node> it = snakeNode.iterator();while (it.hasNext()) {Node n = (Node) it.next();drawNode(g, n);}// 食物g.setColor(Color.RED);Node n = snake.food;drawNode(g, n);updateScore();}// 绘画某一结点(蛇身或食物)private void drawNode(Graphics g, Node n) {g.fillRect(n.x * nodeWidth, n.y * nodeHeight, nodeWidth - 1, nodeHeight - 1);}// 更新分数public void updateScore() {String s = "分数:" + snake.score;label.setText(s);}3.4创建初始“蛇”及“蛇”的移动蛇的初始长度为5,边长为10个像素(背景为黄色),蛇头初始位于屏幕(100,30),方向向左,用向量表来记录每个蛇的位置以及方向。
部分参考代码如下:if (e.getKeyCode() != KeyEvent.VK_Y && !playing)return;// TODO Auto-generated method stub/* 根据按键不同, 让蛇改变不同的方向*/switch (e.getKeyCode()) {/* 方向键上*/case KeyEvent.VK_UP:if (snake.isPause()) {snake.changePause();for (GameListener l : listeners)l.gameContinue();}snake.changeDirection(Snake.UP);break;/* 方向键下*/case KeyEvent.VK_DOWN:if (snake.isPause()) {snake.changePause();for (GameListener l : listeners)l.gameContinue();}snake.changeDirection(Snake.DOWN);break;/* 方向键左*/case KeyEvent.VK_LEFT:if (snake.isPause()) {snake.changePause();for (GameListener l : listeners)l.gameContinue();}snake.changeDirection(Snake.LEFT);break;/* 方向键右*/case KeyEvent.VK_RIGHT:if (snake.isPause()) {snake.changePause();for (GameListener l : listeners)l.gameContinue();}snake.changeDirection(Snake.RIGHT);break;3.5 吃掉食物,蛇身增长当小蛇吃掉食物后,会增长,部分代码:public void snakeMoved() {/* 判断是否吃到食物*/if (food != null && food.isSnakeEatFood(snake)) {/* 吃到食物后, 蛇增加身体, 再重新丢一个食物*/snake.eatFood();food.setLocation(ground == null ? food.getNew() : ground.getFreePoint());}/* 如果吃到食物, 就肯定不会吃到石头*/else if (ground != null && ground.isSnakeEatRock(snake)) {/* 如果吃到的是石头, 或吃到自己的身体, 就让蛇死掉*/stopGame();}if (snake.isEatBody())stopGame();if (gamePanel != null)gamePanel.redisplay(ground, snake, food);/* 更新提示*/if (gameInfoLabel != null)gameInfoLabel.setText(getNewInfo());}3.6随机产生食物部分代码:* 产生食物* 说明:食物的坐标必须位于屏幕内,且不能和蛇身重合if (food != null && food.isSnakeEatFood(snake)) {/* 吃到食物后, 蛇增加身体, 再重新丢一个食物*/snake.eatFood();food.setLocation(ground == null ? food.getNew() : ground.getFreePoint());public Point getNew() {Point p = new Point();p.x = random.nextInt(Global.WIDTH);p.y = random.nextInt(Global.HEIGHT);return p;}3.7键盘事件处理可以通过键盘控制蛇的移动方向/* 方向键上*/case KeyEvent.VK_UP:if (snake.isPause()) {snake.changePause();for (GameListener l : listeners)l.gameContinue();}snake.changeDirection(Snake.UP);break;/* 方向键下*/case KeyEvent.VK_DOWN:if (snake.isPause()) {snake.changePause();for (GameListener l : listeners)l.gameContinue();}snake.changeDirection(Snake.DOWN);break;/* 方向键左*/case KeyEvent.VK_LEFT:if (snake.isPause()) {snake.changePause();for (GameListener l : listeners)l.gameContinue();}snake.changeDirection(Snake.LEFT);break;/* 方向键右*/case KeyEvent.VK_RIGHT:if (snake.isPause()) {snake.changePause();for (GameListener l : listeners)l.gameContinue();}snake.changeDirection(Snake.RIGHT);break;3.8 判断游戏结束只有两种游戏结束的方式,蛇头碰到蛇身和撞墙游戏结束。