基于“贪吃蛇”游戏的C#大案例剖析 邓锐.

Slides:



Advertisements
Similar presentations
節能減碳的桃花源人 設計者:許又仁. 晉太元中,武陵人,捕魚為業。  車釣 一般來説,車釣出現于 晉代,主要産生於長江 流域。先人制一釣車, 將長線纏繞于車上,魚 兒上鈎膈,用釣車收線 取魚。這種車釣,是線 輪的始祖。 照片來源:
Advertisements

C# 程序设计实验. Your site here LOGO 实验一 实验一.NET Framework 编程入门 和控制语句编写 实验目的: 熟悉 visual studio2010 的开发环境,理解 C# 程序语法 结构,掌握顺序结构、选择结构和循环结构语法的程序 设计方法,编写控制语句和数组程序。
国家级工程实践教育中心建设进展 清华大学 孙宏斌 内 容 建设思路与概况 针对问题的若干举措 初步成效 3.
食品安全一起來 ! 佳祥餐盒食品廠 營養師 潘思融. 民以『食』為天 現代化的美食 滿足了人們對於色香味的需求 但過度人工化的結果 除了改變食物本身的價值 也會影響人體機能的正常運作 面對 美味 與 健康 的食字路口 你該如何選擇?
绝对成交的十大步骤.
饮食与健康 高一(4)班 组长;马智慧 组员:席朱一 高语馨 孟天池 孙啸 刘晓峰 虞泽权 林超超 徐昊 朱浩楠 尹文泰 王丹宇.
硕士论文开题报告 煤炭企业物流信息系统的 研究与设计 指导老师: 学生姓名: 学 号:
我們可以選擇食物? 可以選擇人生嗎? 美味的代價 Food Inc. 李昂,鴛鴦春膳
C#程序设计案例教程 第3章 程 序 结 构.
第一章 認識 Visual Basic 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
电子报刊的设计与制作.
一种权衡风险收益的推荐方法 北京大学 作者:王卓 主讲人:邱镇.
Mytrader一键通及套利 交易技术研究部 关怀远.
如果您是行政院長,您會如何建構一個讓人民安心的食品安全環境
讀書心得分享: 善待細胞, 可以活的更好.
感知学习 ——可视化学习平台.
1.了解VB6.0的功能特点 、集成环境。 2.理解面向对象程序设计的几个概念。 3.掌握VB应用程序设计的步骤。
建築與設計學群 運用空間的創意魔術師 講師:林秀茜.
课程整体设计 C#程序设计 学院精品课程 教育部十二五国家规划教材 教育部教指委2012年规划课题 省软件精品专业重点课程
单元八:元件软件测试 报告人:谢兆贤 2015/9/X.
組長:黃淑雅 組員:葉建佑 許家瑜 詹文榮 林莉雯 吳姿嫻 吳培雯 蔡承澍 黃寓筠 陳敬淳
14 繪圖與動畫 [我的小畫家][打磚塊遊戲] 14-1 繪圖的基礎 14-2 滑鼠事件與基本繪圖 14-3 在Bitmap物件繪圖
四、胚体的形成和胚层的分化 (二)胚体形成 扁形圆盘状胚盘形成圆柱形胚体。 头尾生长快于左右,头尾褶出现。 中部生长快于边缘,侧褶出现。
在线考试系统 答辩人: 朱允昌、朱碧云、张海燕 汇报时间: 指导老师: 任艳、徐怡 软件应用与开发类
在线考试系统 答辩人: 朱允昌、朱碧云、张海燕 汇报时间: 指导老师: 任艳、徐怡 软件应用与开发类
面向对象程序设计 (Visual C# .NET)
第二單元 食來運轉.
济 南 的 冬 天 济南的“市树”(柳)和“市花”(荷花) Aben Studio
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
Life with Food 生命与食品安全.
萬聖節的反思.
2048 第14組 謝子健 4a 陳啟霖 4a 畢順傑 4a
神 经 系 统 中枢神经系统(大脑、小脑、脊髓) 神经系统 周围神经系统(神经节、神经).
環保飯盒 佳膳食品公司 營養均衡 我們深信: 我們的理念 公 司 簡 介 我們的優點 飯盒的製作簡介: “保護已被破壞的地球” 餐款多元化
本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
第7章 表單的使用介面 7-1 表單的基礎 7-2 使用精靈建立表單 7-3 表單視窗的檢視模式 7-4 表單的基本使用
第ㄧ章 認識 VB 2008 與主控台應用程式 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
机械零部件质量检测分拣系统 常州机电职业技术学院 I Do IOT 团队
Windows 程式設計 (使用 C++ / C#)
第一章 Visual Studio、SQL Server介紹與開發環境
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
什么是C语言 编写HelloWorld程序 注释
代码风格 ACM Class 2016 范舟.
EVB Embedded Visual Basic.
ASP.NET 90分钟入门 第二课 王 翔.
視窗程式設計簡介-VB、Visual Studio
失智症老人:懷舊圖卡系統 指導老師:謝易錚 開發團隊:潘辰、楊雲翔 國立臺灣海洋大學電機工程學系 2018/6/8
Windows Form绘图类及其简介.
第2章 電腦硬體知識 2-1 電腦基本硬體結構 2-2 電腦的週邊設備 2-3 電腦的操作與保養
雁江信息技术10班 学习简报(第2期) 主编:尹龙燕 2017年11月3日.
指導老師:李佩君、王勝石 開發團隊:舒于臻、林宜臻、劉子麒、鄭皓謙 明新科技大學資訊管理系 2015/12/11
疾病预防控制绩效考核管理软件 开发思路 & 使用说明
Totoro大冒險 電腦遊戲設計 資三B 李沛儀 資三B 張家瑜.
Introduction 2012级ACM班 江川.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
物流作業簡介.
软件开发与软件工程简介 Brief Introduction To Software Development And Software Engineering
電腦軟體設計丙級 Visual Basic簡介 建國科技大學 資管系 饒瑞佶 2010年.
課程網站
計算機程式 Visual BASIC 程式設計
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
軟體工程期末報告 軟體生命週期管理的快速導入方法
中共上海国际港务(集团)股份有限公司委员会党校
道路交通標誌、標線、號誌 與駕駛行為的互動關係 屏東縣私立96駕訓班製作.
認識 Visual Studio 李明山
IT DNA- 微軟MVP、資深IT人胡百敬 資訊產業全攻略!IT知識工作者聯手推薦! 資訊新鮮人》 專業資訊人》 知識工作者》
主辦單位:永豐銀行電子金融處 合作學校/系所:東吳大學資管學系
網路資源的應用-抓圖 李俊賢.
7 年份 黃雅婷 個人 全端開發人員 任務聲明 在紐約居住 專長 簡歷 軟體 學歷 遠端專案 資料庫 前端 後端 電子郵件: Skype
7 年 康霓 个人 完整堆栈开发人员 使命宣言 居住地: 纽约(自 2015 年起) 专长 个人简介 软件 教育背景 远程项目 数据库 前端
Presentation transcript:

基于“贪吃蛇”游戏的C#大案例剖析 邓锐

贪吃蛇是一款经典游戏,既简单又耐玩。玩家通过上下左右键控制蛇头方向,寻找不同的食物,每吃一口就能得到相应的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,更不能咬自己的尾巴,等到了一定的分数,就能过关,然后继续玩下一关。游戏结束时记录最高分玩家分数。

1.界面友好,实现网格和显示提示等内容(10%) 2.实现蛇和食物的产生(10%) 3.实现蛇的移动(20%) 4.能按类处理以上功能,实现蛇类、食物类、障碍物类和Form类等(20%) 5.实现积分与加速,即玩家能随着积分增加而加速,并能按积分过关(10%) 6.用类和接口实现不同障碍物,如蛇遇到地雷则游戏结束,遇到普通障碍物则 减分或暂停等(5%) 7.通过事件实现食物与分值变化(5%) 8.按通过文件读取和保存记录(5%) 9.实现异常处理(5%) 10.可选扩展功能,如实现菜单、将蛇图片处理、实现玩家登录、实现数据库记录信息、实现截图功能等(每项功能加5%,上限10%)

项目一 设计贪吃蛇游戏界面 根据需求分析,设计贪吃蛇游戏界面。 1. 通过本节操作,熟悉Visual Studio的IDE环境和WinForm控件操作。 2. 通过界面设计,加深了解“贪吃蛇游戏”的基本功能。

项目二 实现随机画图 随机画图 (1)通过本案例的操作可以熟悉画图和语法的使用。 (2)学习GDI+初步知识,建立画板,设置画笔,实现画图功能。 (3)使用Timer控件实现动画功能,为随后游戏设计打下基础。

项目三 绘画游戏图形元素 利用分支结构、循环结构,画出“贪吃蛇”游戏相关画面,让大家看到贪吃蛇的真面目。 (1)通过循环结构创建游戏网格,学会循环结构的使用。 (2)通过GDI+画出蛇和食物,学会分支结构if语句的使用。 (3)通过对键的控制,学会分支结构switch语句的使用。

项目四 用方法升级游戏程序 利用方法让贪吃蛇运动起来。 (1)针对timer控件的Tick事件所对应的方法进行编程,初步体会事件机制。 (2)利用队列或链表让蛇在键的控制下运动起来,体会数据结构的作用。(3)通过建立DrawGrid()、GenerateSnake()、GenerateFood()、GameOver()、SnakeMove()和AddScores()等方法,实现画格子、创建蛇、产生食物、游戏结束、蛇移动和加分等功能,从而掌握方法的定义和使用,并体会方法的作用和重要性。

项目三 绘画游戏图形元素 利用分支结构、循环结构,画出“贪吃蛇”游戏相关画面,让大家看到贪吃蛇的真面目。 (1)通过循环结构创建游戏网格,学会循环结构的使用。 (2)通过GDI+画出蛇和食物,学会分支结构if语句的使用。 (3)通过对键的控制,学会分支结构switch语句的使用。

项目五 用类升级贪吃蛇游戏 用类重构贪吃蛇项目 (1)用类和对象来重新处理“贪吃蛇”项目,以便以后的功能扩展。 (2)掌握类之间的通信。

项目六 用继承实现同形不同质的物体 贪吃蛇项目分解——继承与派生 (1)用继承实现食物类和障碍物类。(2)实现“吃到食物得分,碰到障碍物游戏结束”的功能。

项目七 用数组设置游戏元素对应属性 创建一个二维数组来表示每一个格子的属性,同时实现随机产生食物和多个障碍物,并能在蛇遇到这些对象时作出相应的反应。例如,遇到食物加分,遇到障碍物就结束等。 (1)设置一个表示方格的色彩属性的二维数组,用于判断是否吃了食物还是碰到障碍物。 (2)产生一个食物和多个障碍物,它们的位置随机。

项目八 利用覆写减少游戏程序耦合 为了减少程序间的耦合,方便程序维护和扩展,本章将对GenerateSolid()方法进行改进。要求添加Initialize()和FinallyHandle()两个方法,前者用于处理初始化,后者用于处理程序结束工作。这两个方法都要求在派生类中覆写。同时,对项目Form1.cs中的两个方法OnPaint()和ProcessDialogKey()进行覆写。 (1)在Solid类中给GenerateSolid添加两个方法:Initialize()和FinallyHandle()。(2)在派生类Food和Barrier中覆写Initialize()方法,实现多态。

项目九 用接口实现多种食物 定义一种新食物,颜色为紫色,蛇吃到该种食物可得双倍分值(可以将先前的食物类想象成水果类,而新的食物是小动物类)。为了便于将来升级到更多的各类食物,要求它们共享一个接口,这样不管蛇吃到何种食物,均可通过接口类型来自动处理。 (1)利用接口定义新食物类。 (2)通过接口类型转换,自动处理实现了该接口的对象,减少耦合。

项目十 建立分值变化事件 通过事件机制来监测分值变化。当蛇吃到食物时,分值发生变化,通过事件机制使界面显示的分值也随之变化。 (1)通过事件机制监视分值,一旦分值有变化,就刷新界面显示分值。 (2)实现游戏中格子属性变化、速度变化等事件机制。

项目十一 保存玩家记录 游戏启动时读取文件,显示记录信息。结束时,如果当前玩家分值大于原记录,则更新文档数据。 (1)游戏启动时读取文件,显示记录信息。 (2)游戏结束时,若玩家分值大于原记录,则更新文件数据。

项目十二 处理游戏数据读写异常 但如果文件中开始是空的,那么读取时就会出现异常;如果文件是只读属性,那么当往文件中写入新记录信息时,也会出现异常。所以这里要对文件读写的语句进行改进。 (1)在对保存游戏分值的文件进行读写操作时进行异常处理。