贪吃蛇游戏系统课程设计

合集下载

c贪吃蛇游戏课程设计

c贪吃蛇游戏课程设计

c 贪吃蛇游戏课程设计一、教学目标本课程旨在通过学习贪吃蛇游戏的设计与制作,让学生掌握以下知识目标:1.了解贪吃蛇游戏的基本规则和原理;2.学习C语言的基本语法和数据结构;3.掌握使用C语言进行游戏编程的方法和技巧。

学生将能够运用所学知识,独立设计并编写一个简单的贪吃蛇游戏,实现游戏的基本功能,如控制蛇的移动、食物的生成与消亡、分数的统计等。

通过本课程的学习,学生将培养以下技能目标:1.熟练使用C语言进行编程;2.掌握贪吃蛇游戏的设计思路和实现方法;3.培养问题解决能力和创新思维。

在情感态度价值观方面,学生将:1.体验编程带来的成就感,提高对计算机科学的兴趣;2.学会合作与分享,通过小组讨论和协作完成游戏设计;3.培养勇于尝试、不断探索的学习精神。

二、教学内容本课程的教学内容主要包括以下几个部分:1.贪吃蛇游戏的基本规则和原理;2.C语言的基本语法和数据结构;3.游戏编程的基本方法和技巧;4.贪吃蛇游戏的的设计与实现。

具体的教学大纲安排如下:第1-2课时:介绍贪吃蛇游戏的基本规则和原理,让学生了解游戏的设计思路;第3-4课时:学习C语言的基本语法和数据结构,为学生编写游戏打下基础;第5-6课时:讲解游戏编程的基本方法和技巧,让学生掌握如何实现游戏功能;第7-8课时:分组进行贪吃蛇游戏的设计与实现,让学生动手实践,培养实际编程能力。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用以下教学方法:1.讲授法:讲解贪吃蛇游戏的设计原理和C语言的基本语法;2.案例分析法:分析典型的游戏编程案例,让学生了解实际编程方法;3.实验法:让学生动手实践,分组设计和实现贪吃蛇游戏;4.讨论法:鼓励学生相互交流、讨论,培养合作意识和创新能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》;2.参考书:《游戏编程入门》;3.多媒体资料:PPT课件、贪吃蛇游戏案例视频等;4.实验设备:计算机、编程环境。

如何设计课程设计贪吃蛇

如何设计课程设计贪吃蛇

如何设计课程设计贪吃蛇一、教学目标本课程的设计目标是让学生了解并掌握“贪吃蛇”游戏的编程原理和设计方法。

通过本课程的学习,学生将能够:1.理解“贪吃蛇”游戏的规则和基本原理;2.掌握使用编程语言实现“贪吃蛇”游戏的基本技能;3.培养学生的逻辑思维能力和问题解决能力;4.增强学生对计算机编程的兴趣和热情。

二、教学内容本课程的教学内容将包括以下几个部分:1.“贪吃蛇”游戏的基本规则和原理;2.编程语言的基本概念和语法;3.“贪吃蛇”游戏的编程实现;4.游戏编程中常用的算法和数据结构。

三、教学方法为了达到上述教学目标,我们将采用以下教学方法:1.讲授法:用于讲解“贪吃蛇”游戏的基本规则和原理,以及编程语言的基本概念和语法;2.案例分析法:通过分析已有的“贪吃蛇”游戏代码,让学生了解并掌握游戏编程的方法;3.实验法:学生通过动手编写代码,实现自己的“贪吃蛇”游戏,培养问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《XXX编程语言教程》、《贪吃蛇游戏编程》等;2.参考书:《XXX编程语言参考手册》、《算法导论》等;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、编程软件等。

通过以上教学资源的使用,我们将帮助学生更好地掌握“贪吃蛇”游戏的编程方法,提高学生的编程能力和问题解决能力。

五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现来评估;2.作业:通过学生提交的编程练习和项目任务来评估;3.考试:通过期末考试来评估学生对课程内容的掌握程度。

评估方式将力求客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排如下:1.教学进度:按照教学大纲和教材的章节顺序进行教学;2.教学时间:每周安排2课时,共计10周;3.教学地点:计算机实验室。

教学安排将确保在有限的时间内完成教学任务,并考虑学生的实际情况和需要。

c语言贪吃蛇课程设计

c语言贪吃蛇课程设计

c语言贪吃蛇课程设计一、教学目标本课程旨在通过学习C语言实现贪吃蛇游戏,让学生掌握C语言编程的基本技能,培养学生的逻辑思维能力和问题解决能力。

具体的教学目标如下:1.理解C语言的基本语法和数据类型。

2.掌握C语言的运算符和表达式。

3.学习C语言的控制结构,包括条件语句和循环语句。

4.了解C语言的函数和数组。

5.能够使用C语言编写简单的程序。

6.能够使用C语言实现贪吃蛇游戏的基本功能,包括蛇的移动、食物的生成和 collision检测。

7.能够优化代码,提高游戏的性能和可读性。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成游戏项目。

2.培养学生的创新思维和问题解决能力,鼓励学生进行游戏的创意设计和优化。

3.培养学生的学习兴趣和自信心,通过完成游戏项目感受到编程的乐趣和成就感。

二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法和数据类型、运算符和表达式、控制结构、函数和数组。

具体的教学大纲如下:1.第一章:C语言概述•C语言的发展历史和特点•C语言的基本语法和结构2.第二章:数据类型和运算符•基本数据类型和变量•运算符和表达式3.第三章:控制结构4.第四章:函数和数组•函数的定义和调用•一维数组和多维数组5.第五章:贪吃蛇游戏实现•蛇的移动和食物的生成•collision检测和游戏结束条件•游戏界面的设计和美化三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。

1.讲授法:通过教师的讲解和演示,向学生传授C语言的基本语法和编程技巧。

2.讨论法:通过小组讨论和分享,培养学生的团队合作意识和沟通能力。

3.案例分析法:通过分析具体的贪吃蛇游戏案例,引导学生思考和解决问题。

4.实验法:通过编写代码和调试程序,培养学生的动手能力和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:《C语言程序设计》2.参考书:《C语言编程实例解析》3.多媒体资料:PPT课件、视频教程4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)通过以上教学资源的使用,将丰富学生的学习体验,提高学生的学习效果。

贪吃蛇游戏课程设计

贪吃蛇游戏课程设计

贪吃蛇游戏课程设计一、课程目标知识目标:1. 学生能理解贪吃蛇游戏的基本原理,掌握游戏设计中涉及的坐标、方向和移动等概念。

2. 学生能运用所学的编程知识,使用合适的数据结构和算法实现贪吃蛇游戏的主体功能。

3. 学生了解游戏设计中的用户界面设计原则,并能将其应用于贪吃蛇游戏的界面设计。

技能目标:1. 学生掌握运用编程语言进行游戏设计的基本技巧,提高编程实践能力。

2. 学生能够运用逻辑思维和问题分析能力,解决游戏设计过程中遇到的问题。

3. 学生通过团队协作,提高沟通能力和项目协作能力。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣,增强学习信息技术的积极性。

2. 学生在游戏设计过程中,培养创新意识和审美观念,提高对美的追求。

3. 学生通过课程学习,认识到编程对生活的影响,激发将所学知识应用于实际生活的意识。

课程性质:本课程为信息技术学科选修课程,适用于有一定编程基础的学生。

学生特点:学生具备基本的计算机操作能力,对编程有一定了解,对游戏设计感兴趣。

教学要求:结合学生特点,注重实践操作,鼓励学生创新和团队协作,提高学生的编程能力和审美观念。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 游戏设计基本原理:介绍游戏设计的基本概念、流程和原则,结合贪吃蛇游戏案例分析游戏设计中的核心要素。

- 课本章节:第三章“游戏设计概述”- 内容:游戏设计流程、游戏类型、游戏设计原则2. 编程语言和工具:复习巩固编程基础,介绍贪吃蛇游戏所需的基本编程知识和工具。

- 课本章节:第二章“编程基础”- 内容:变量、数据类型、运算符、流程控制、函数、数组3. 数据结构和算法:分析贪吃蛇游戏中涉及的数据结构(如链表、数组)和算法(如坐标计算、碰撞检测)。

- 课本章节:第四章“数据结构与算法”- 内容:链表、数组、坐标计算、碰撞检测4. 游戏界面设计:介绍用户界面设计原则,指导学生设计贪吃蛇游戏的界面。

贪吃蛇游戏教案大学课程

贪吃蛇游戏教案大学课程

授课对象:计算机科学与技术专业本科生课时: 4课时教学目标:1. 让学生了解贪吃蛇游戏的基本设计理念与实现方法。

2. 培养学生运用面向对象编程思想进行游戏开发的能力。

3. 提高学生使用图形用户界面(GUI)设计游戏界面的技能。

4. 增强学生解决实际问题的能力和团队协作能力。

教学内容:第一课时:游戏设计与需求分析1. 导入:以经典的贪吃蛇游戏为例,引入游戏设计的重要性。

2. 讲解:- 贪吃蛇游戏的基本规则与设计理念。

- 游戏的主要功能模块:蛇、食物、游戏界面、得分系统、游戏结束条件等。

3. 实践:- 学生分组讨论,明确各自在项目中的角色与职责。

- 制定游戏需求文档,包括功能需求、性能需求、界面需求等。

第二课时:面向对象设计与实现1. 讲解:- 面向对象编程的基本概念,如类、对象、继承、多态等。

- 贪吃蛇游戏中的主要类的设计与实现,如Snake类、Food类、GamePanel类等。

- 如何使用面向对象的方法解决贪吃蛇游戏中的问题。

2. 实践:- 学生根据设计文档,开始编写贪吃蛇游戏的核心代码。

- 指导学生使用Java或Python等编程语言进行开发。

第三课时:图形用户界面设计与实现1. 讲解:- 图形用户界面(GUI)的基本概念与设计原则。

- 使用Java Swing或Python Tkinter等库创建游戏界面。

- 界面元素的设计与布局,如按钮、标签、面板等。

2. 实践:- 学生根据游戏需求,设计并实现游戏界面。

- 指导学生使用GUI库进行界面布局和交互设计。

第四课时:游戏测试与优化1. 讲解:- 游戏测试的基本方法与技巧。

- 优化游戏性能,如提高游戏帧率、减少内存占用等。

- 游戏发布与推广的方法。

2. 实践:- 学生进行游戏测试,发现并修复潜在的错误。

- 优化游戏性能,提高用户体验。

- 分组展示游戏成果,并进行交流与评价。

教学评估:1. 学生参与度:通过课堂讨论、实践操作等方式,评估学生参与项目的积极性。

大学体育游戏贪吃蛇教案

大学体育游戏贪吃蛇教案

一、教学目标1. 通过贪吃蛇游戏,提高学生的身体协调性和灵活性。

2. 培养学生的团队合作精神和竞争意识。

3. 锻炼学生的反应能力,提高运动技能。

4. 增强学生之间的交流与合作,增进友谊。

二、教学内容1. 游戏规则介绍2. 游戏技巧讲解3. 实践操作与比赛三、教学对象大学体育课程学生四、教学时间2课时五、教学地点体育馆六、教学器材1. 游戏场地:长方形场地,分为若干小格2. 游戏道具:纸板、胶带、计时器、口哨、音乐播放器等七、教学过程第一课时:1. 导入(1)教师简要介绍贪吃蛇游戏,激发学生学习兴趣。

(2)讲解游戏规则,让学生了解游戏的基本玩法。

2. 游戏规则介绍(1)游戏场地:长方形场地,分为若干小格。

(2)游戏人数:4-6人一组,每组选出一个队长。

(3)游戏道具:纸板、胶带等。

(4)游戏目标:在规定时间内,吃掉更多食物,成为胜利者。

(5)游戏规则:队员需在游戏场地内通过移动纸板,将食物引导到自己的位置。

3. 游戏技巧讲解(1)队员需密切配合,统一行动。

(2)合理利用道具,如快速移动纸板、设置障碍等。

(3)观察对手行动,寻找机会吃掉食物。

4. 实践操作与比赛(1)学生分组,每组选出一个队长。

(2)队长组织队员熟悉游戏规则和技巧。

(3)进行小组比赛,记录每组得分。

(4)比赛结束后,教师点评,总结经验教训。

第二课时:1. 复习上节课内容,巩固游戏规则和技巧。

2. 提高难度,增加游戏道具和挑战项目。

(1)设置不同类型的食物,如快速消失的食物、特殊效果的道具等。

(2)增加游戏障碍,如墙壁、陷阱等。

(3)提高比赛时间,增加比赛激烈程度。

3. 学生分组,进行新一轮比赛。

(1)每组队长组织队员制定策略,应对挑战。

(2)比赛结束后,教师点评,总结经验教训。

4. 总结(1)教师总结贪吃蛇游戏的教学成果,强调团队合作和竞争意识的重要性。

(2)学生分享自己在游戏中的心得体会,互相鼓励,共同进步。

八、教学评价1. 学生对游戏规则和技巧的掌握程度。

贪吃蛇安卓课程设计

贪吃蛇安卓课程设计

贪吃蛇安卓课程设计一、课程目标知识目标:1. 学生能理解贪吃蛇游戏的原理和基本规则。

2. 学生能掌握安卓开发环境的基本操作和界面设计。

3. 学生能了解和运用Java编程语言实现贪吃蛇游戏的功能。

技能目标:1. 学生能运用安卓开发工具,独立设计和开发一款简易的贪吃蛇游戏。

2. 学生能通过调试和优化,提高贪吃蛇游戏的性能和用户体验。

3. 学生能运用所学的编程知识,解决开发过程中遇到的问题。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们的创新精神和探究欲望。

2. 培养学生的团队协作能力,学会在项目中分工合作、共同解决问题。

3. 培养学生面对挑战时的积极态度,提高他们克服困难的信心和决心。

本课程针对初中年级学生,结合他们好奇心强、动手能力强、善于合作等特点,设计具有挑战性和趣味性的贪吃蛇游戏开发课程。

课程旨在让学生在掌握编程知识的同时,提高实践能力和创新能力,培养他们良好的团队合作精神。

通过本课程的学习,学生能够将所学的编程知识运用到实际项目中,从而提升他们的综合素质。

二、教学内容1. 安卓开发环境搭建:介绍Android Studio的安装与配置,熟悉开发工具的使用。

- 章节关联:课本第二章《Android开发环境搭建》2. 简单的界面设计:学习并应用XML布局文件,设计贪吃蛇游戏的界面。

- 章节关联:课本第三章《Android界面设计基础》3. Java编程基础:回顾和巩固Java基本语法,为游戏编程打下基础。

- 章节关联:课本第四章《Java编程基础》4. 贪吃蛇游戏逻辑实现:学习游戏循环、碰撞检测、分数统计等核心功能。

- 章节关联:课本第五章《Android事件处理》与第六章《Android动画与游戏开发》5. 游戏调试与优化:介绍日志输出、性能分析及优化方法,提高游戏体验。

- 章节关联:课本第七章《Android性能优化》6. 项目实践:分组进行项目实践,将所学知识综合运用到贪吃蛇游戏的开发中。

关于贪吃蛇课程设计

关于贪吃蛇课程设计

关于贪吃蛇课程设计一、课程目标知识目标:1. 让学生掌握贪吃蛇游戏的规则和基本玩法。

2. 引导学生理解游戏背后的编程逻辑和算法。

3. 培养学生对计算机编程的兴趣,了解编程与数学、逻辑思维的关系。

技能目标:1. 培养学生运用编程语言(如Python)实现贪吃蛇游戏的能力。

2. 培养学生运用数学知识和逻辑思维解决问题的能力。

3. 提高学生的团队协作能力和沟通表达能力。

情感态度价值观目标:1. 培养学生对计算机科学的热爱,激发学生的创新精神。

2. 培养学生勇于尝试、克服困难的意志品质。

3. 培养学生遵守游戏规则,树立公平竞争的意识。

课程性质:本课程为信息技术与学科整合的实践课程,以贪吃蛇游戏为载体,培养学生的编程兴趣和逻辑思维能力。

学生特点:五年级学生对新鲜事物充满好奇心,具备一定的数学和逻辑思维基础,但编程经验尚浅。

教学要求:课程设计需兼顾趣味性与实用性,注重培养学生的动手实践能力和团队协作精神,将编程知识与实际操作相结合,使学生在实践中掌握知识。

通过分解课程目标为具体学习成果,便于后续教学设计和评估。

二、教学内容1. 游戏规则与玩法介绍:讲解贪吃蛇游戏的基本规则和操作方法,让学生了解游戏的核心玩法。

2. 编程语言基础:介绍Python编程语言的基本语法,如变量、数据类型、控制结构等,为学生编写贪吃蛇游戏打下基础。

3. 游戏编程逻辑:分析贪吃蛇游戏的编程逻辑,讲解如何使用Python实现游戏功能,包括蛇的移动、食物的生成、碰撞检测等。

4. 算法设计与优化:引导学生探讨贪吃蛇游戏中可能涉及的算法,如搜索算法、路径规划等,并针对游戏性能进行优化。

5. 实践操作:安排学生分组进行贪吃蛇游戏的编程实践,培养学生的动手能力和团队协作精神。

6. 作品展示与评价:组织学生展示各自的作品,进行互评和教师评价,总结优点与不足,提高学生的表达能力和批判性思维。

教学内容关联教材章节:1. 游戏规则与玩法介绍:教材第二章“计算机游戏概述”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、课程设计的目的和要求1.通过C#课程设计,使学生能将学到的面向对象的程序设计思想用到具体的工作和学习中,加深对类与对象的理解,要求学生能够对现实生活中许多具体的事物抽象出类,并掌握继承与派生,基类、虚方法和抽象方法和多态性的概念。

2.通过这次课程设计掌握《C#语言程序设计》的编程思想,为后续课程打下基础。

3.培养我们实际操作能力和实践能力,为以后的工作打下坚实的基础。

二、课程设计内容编写一个C# GUI版贪吃蛇小游戏程序我们的需求是:一条蛇在封闭的围墙内爬行,玩家可以通过方向键来控制蛇的运动方向,围墙内随机出现一食物,蛇头碰到食物时表示食物被吃掉,此时蛇身加长一节,同时游戏成绩加10分,接着又出现食物等待蛇吃周而复所,直到蛇撞墙或身体交叉而死游戏结束。

基本要求:1、要求利用C#完成游戏的设计2、要求在设计过程中建立清晰的类层次3、程序应具有容错功能4、程序界面美观,逻辑层次清楚,结构合理,文档清晰三、课程设计基本要求1) 要求利用面向对象的方法以及C#的编程思想来完成系统的设计;2) 要求在设计的过程中,建立清晰的类层次;3) 在系统中至少要定义四个类,每个类中要有各自的属性和方法;4) 在系统的设计中,至少要用到面向对象的一种机制。

5) 程序应具有容错功能。

6)程序运行结果正确,操作方便,界面美观,逻辑层次清楚,程序结构合理,文档规范清晰。

目录1:需求分析1.1程序功能说明1.2程序设计的分析2:系统的主要功能模块2.1程序功能图示3:程序的输入,输出和相应的算法3.1程序的输入3.2程序的输出3.3程序的一些重要方法的实现算法和方法4:程序的测试4.1程序测试的内容和结果5:程序运行效果图6:部分程序代码6.1 蛇类代码6.2 食物类代码7:程序的注意事项8:程序的不足之处一:需求分析1:程序的功能说明:一条蛇在封闭的围墙内爬行,玩家可以通过方向键来控制蛇的运动方向,围墙内随机出现一食物,蛇头碰到食物时表示食物被吃掉,此时蛇身加长一节,同时游戏成绩加10分,接着又出现食物等待蛇吃周而复所,直到蛇撞墙或身体交叉而死游戏结束。

2:程序设计的分析通过程序所要实现的功能可以看出,该程序中有,蛇,食物两个主要的对象,所以我们可以定义两个类:蛇类,和食物类;在蛇类中封装了蛇的所有的属性和操作。

蛇的属性有:蛇的长度,蛇的初始位置,蛇的运动方向,蛇的存活状态,蛇的运动速度。

蛇的操作有:蛇的移动,蛇吃食物,画出蛇所有的状态。

食物的属性有:食物的出现位置,食物的存活状态。

食物类的操作:创建一个新的食物,画出食物的位置。

在该程序中还有一个FROM类,用来画出和显示蛇和食物的状态和位置,该类提供给蛇和食物的运动平台,蛇和事物在该FORM的面板范围内运行。

程序中还有其他的功能要一一的实现。

如:在用户点击“开始”按钮后程序才能开始运行。

用户如果点击“暂停”按钮,则该程序暂停,但并不终止程序,在用户再次点击“开始”按钮后,程序继续运行。

如果程序运行结束,即程序出现“GAME OVER”,或用户点击“结束”按钮则程序结束,并且退出。

在程序运行过程中,用户控制的蛇,每吃到一个食物,那么该玩家的得分就加10,并且还要记录该玩家总共吃了多少食物。

如果玩家“GAME OVER ”则要判断该玩家的得分是否大于最高分,如果大于,则提示该玩家获得了最高分。

玩家可以查看最高分,玩家点击“显示”按钮则将显示最高分。

二:系统主要功能图示三:系统的输入,输出和相关算法. 1:输入:在该程序中几乎没有什么从键盘输入的数据,所有的程序所运用的数据都是有程序本身提供的,由用户来选择,程序将根据用户的选择来处理相应的数据.,如在玩家选择游戏级别的时候,程序会根据玩家选择的级别来调整蛇的速度. 2:输出:在该程序中,输出的数据有,玩家所得到的分数,蛇吃到的食物的个数,以及目前的最高得分.,当玩家所控制的蛇死亡后,要输出一个消息”GAME OVER”表示蛇的死亡,并且将蛇的生存状态改为false,如果在玩家控制的蛇死亡后,并且玩家的得分已经超过了之前的最高分,则输出一个消息”恭喜你,创了新的记录”并且将该分记录为最高分. 以上是程序的主要的输出.3:程序中的一些相关操作的实现方法和算法1:蛇的移动.蛇的移动主要通过的改变蛇的坐标位置,然后通过重绘蛇的位置,这样就实现了蛇的移动.具体的为:从构成蛇身的所有节点的最后一点开始,依次将前一个节点的坐标点赋值为后一个节点.这样就实现了蛇身的移动,接下来是蛇头的移动.蛇头的移动要根据蛇的运动方向来做出相应的移动.如果蛇是向右移动,则蛇头的Y坐标点不变,X坐标点加上相应的移动步长. 如果蛇是想左移动,则蛇头的Y坐标不变,X坐标点减去相应的步长. 如果蛇是向上移动的,则蛇头的X坐标不变,Y坐标减去相应的移动步长,如果蛇是向下移动的,则蛇头的X坐标不变,Y坐标点加上相应的步长..这样就构成了整个蛇的坐标点的变换,然后通过,重绘面板则实现了蛇的移动.2:蛇吃食物蛇吃食物是在蛇经过该食物时,并且蛇头的坐标位置和该食物的坐标位置是一致的那么,将该食物的坐标点,添加到该蛇的最后一位上.这样就实现了蛇吃食物并且蛇身加长.四:程序的测试该程序由于输入的数据几乎没有,所以在测试也相对比较简单,只要运行该程序,在执行程序的过程中发现错误,在程序完成的初期,该程序中的错误非常多,如在蛇运行的过程中,蛇移动的步长是程序所设定的步长的两倍,所以蛇在移动时的步长太大,无法吃到食物,.还有在蛇的移动正常时,但是蛇经过食物却不能够将食物”吃”掉..经过检查原来蛇的的坐标点和食物的坐标点不重合,相差几个单位,但是这几个单位是用眼睛看不出来的,所以对程序的代码进行了仔细的检查,才发现了这个错误.在点击”开始按钮后程序并不能够执行,经过仔细的分析和检查,终于发现,原来程序对”开始”按钮没有进行事件监听.所以点击”开始”按钮后程序不知道该做什么事情,所以没有响应..程序中的错误都是通过白盒和黑盒测试相结合的方法来进行测试,这样程序的错误才能够找的完全和查找方便.五:程序运行效果图:程序的界面:当程序运行,点击开始按钮后的截面图:当程序运行,蛇每吃到一个食物后,得分和个数都会增加.用户可以调节蛇的运动速度.当玩家点击了显示按钮后,将显示目前该游戏的最高分.当玩家所控制的蛇死亡后图当玩家控制的蛇死亡了后,如果玩家的得分大于最高分,则提示创了记录,如图:六:程序中部分重要代码1:蛇类的实现代码enum Direction//定义蛇的移动方向的枚举类型{UP,DOWN,LEFT,RIGHT}class Snake{int maxScore = 0; //最高分public const int side = 10; //蛇身每个节点的长度Point[] body=new Point[1000]; //蛇最大长度Direction direction; //蛇的初始移动方向Boolean live; //蛇的存活状态int number; //蛇身节点个数int score = 0;int speed =200; //蛇的移动速度public int MaxScore{get{return maxScore;}set{maxScore = value;}}public int Speed{get{return speed;}set{speed = value;}}public int Score{get{return (number-2)*10;}}public Direction Direction{get{return direction;}set{direction = value;}}public Boolean Live{get{return live;}}public int Number{get{return number;}}public Point[] Body{get{return body;}}public Snake() //蛇的初始化,长度为,方向为向右,存活状态为活{Point node1 = new Point(100,40);Point node2 = new Point(90,40);body[0] = node1;body[1] = node2;number = 2;direction = Direction.RIGHT;live = true;}public void Move(Size range) //蛇的移动方法,参数为蛇的移动范围{for (int i = this.number-1; i > 0; i--){body[i] = body[i - 1]; //从蛇尾开始将蛇身的每前一个节点坐标值赋给后一个坐标点}switch (this.direction) //根据蛇的移动方向来设定蛇头的移动方向{case Direction.UP:body[0].Y -= side; break;case Direction.DOWN:body[0].Y += side; break;case Direction.LEFT:body[0].X -= side; break;case Direction.RIGHT:body[0].X += side; break;}//如果蛇头的位置超过了参数的范围,则将蛇的存活状态设为false,即蛇死亡if(body[0].X<0||body[0].X>range.Width-side||body[0].Y<0||body[0].Y>range.Height-side){this.live = false;}for (int i = 1; i <= number - 1;i++ ) //蛇如果撞到自身,蛇也死亡{if(body[0].X==body[i].X && body[0].Y==body[i].Y){this.live = false;}}}//蛇吃食物的方法,参数传递的是蛇将要吃的食物public void Eat(Food food){body[number] =food.Position; //通过将要吃的食物的坐标点值赋给蛇的最后一位,以实现蛇吃食物this.number++; //蛇身的长度加}public void Draw(Graphics g) //画蛇的方法,传递的参数为画蛇所用的面板{Brush brush = Pens.DarkRed.Brush;g.DrawRectangle(Pens.DarkRed,body[0].X,body[0].Y,side,side);g.FillRectangle(brush,body[0].X,body[0].Y,side,side);for (int i = 1; i <= number - 1;i++ ){g.DrawRectangle(Pens.Red, body[i].X, body[i].Y, side, side);}if (this.live == false){g.DrawString("GAME OVER!", new Font("楷体_GB2312", 36, FontStyle.Bold), brush, new Point(120, 200));try{FileStream aFile = new FileStream(@"../../temp.txt", FileMode.Open);StreamReader sr = new StreamReader(aFile);this.maxScore = Int32.Parse(sr.ReadLine());sr.Close();}catch (IOException ex){ }if(this.Score>this.maxScore){g.DrawString("*恭喜你创造了新的记录!*", new Font("楷体_GB2312", 12, FontStyle.Bold), brush, new Point(120, 350));this.maxScore = this.Score ;try{FileStream aFile = new FileStream(@"../../temp.txt",FileMode.OpenOrCreate);StreamWriter sw=new StreamWriter(aFile);sw.WriteLine(this.maxScore.ToString());sw.Close();}catch(IOException ex){}}}}public void resetSnake() //重新设置蛇的状态{Point node1 = new Point(100, 40);Point node2 = new Point(90, 40);body[0] = node1;body[1] = node2;number = 2;direction = Direction.RIGHT;live = true;}}2:食物类代码class Food{Point position; //食物的出现位置Boolean exist; //食物的存在状态public Food(){position = this.creatFood() ;exist = true;}public Point Position{get{return position;}set{position = value;}}public Boolean Exist{get{return exist;}set{exist = value;}}public Point creatFood() //随机创建一个食物返回的值为食物的坐标点{Point position = new Point();Random ran = new Random();position.X = ran.Next(1, 33) * 10;position.Y = ran.Next(1, 30) * 10;return position;}public void Draw(Graphics g) //在传递过来的绘图面板中绘制一个食物{g.FillRectangle(Pens.Black.Brush, position.X, position.Y, 10, 10);}}七:程序的注意事项:本程序由于个人技术有限,所以在很多方面还没有完善,如,在用方向键控制蛇的运动方向时,不能够两个键一起按,或是两个键之间的时间间隔非常短,那样蛇会出现异常死亡的状况.所以在使用的时候还请注意.参考文献:<<C#入门经典>> ,<<C#编程宝点>>,<<C#GUI编程指南>>等。

相关文档
最新文档