关于用Java写的贪吃蛇游戏的一些感想
学习Java有那么一个月了,兴趣还是挺高的。然而最近老师布置的一个迷宫问题,着实让我头疼了一两个礼拜,以至于身心疲惫,困扰不安。无奈,暂且先放下这个迷宫问题,写个简单点的贪吃蛇程序,以此来提高低落的情绪。
在脑中构思了一下贪吃蛇的大概思路之后,便开始动手写程序了(这也是我一贯的作风,然而也是有让自己多走弯路的),写写停停,一天下来,程序倒是写出来了,然而问题也是很多的,一个主要的问题就是蛇的拐弯,不能一节一节的改变方向,而是吃到食物变长后直接整个身体的拐弯,蛮横,霸道。找了好久还是没能改掉这个问题,无奈只能上网查找资料。资料显示,关于蛇拐弯的问题,主要有两种思路,一种就是蛇身跟随蛇头移动,比如拿一个数组储存蛇身,就是令a[i]=a[i-1];数组里面储存的是蛇身坐标;另一种算法就是当蛇吃到食物时,去掉尾部,增加头部,此时用LinkedList<Point> snakeBody储存蛇身,当吃到食物后,snakeBody.removeLast(), snakeBody.addFirst();可以看出此算法更高效。至于我自己一开始是用前一种方法的。后来用第二中方法去改,越改越乱,索性重新去设计程序,折腾了一两天,今天终于可以看见一条温驯的蛇慢慢游动了。
高兴之余,写篇文章纪念第一个游戏的测试通过。虽然还有些小问题,还是留着慢慢改吧。至于源码就不贴了,资源分享吧。回头还得解决迷宫问题,还是头大,大神们如若有好的建议,还望不吝赐教
。。。。。
版权声明:本文为博主原创文章,未经博主允许不得转载。
关于用Java写的贪吃蛇游戏的一些感想的更多相关文章
- Python写的贪吃蛇游戏例子
		
第一次用Python写这种比较实用且好玩的东西,权当练手吧 游戏说明: * P键控制“暂停/开始”* 方向键控制贪吃蛇的方向 源代码如下: 复制代码代码如下: from Tkinter import ...
 - 用最少的JS代码写出贪吃蛇游戏---迷你版
		
游戏进行页面展示 GAME OVER 页面展示 代码如下: <!doctype html> <html> <body> <canvas id=&q ...
 - python 写一个贪吃蛇游戏
		
#!usr/bin/python #-*- coding:utf-8 -*- import random import curses s = curses.initscr() curses.curs_ ...
 - Java GUI学习,贪吃蛇小游戏
		
JAVA GUI练习 贪吃蛇小游戏 前几天虽然生病了,但还是跟着狂神学习了GUI的方面,跟着练习了贪吃蛇的小项目,这里有狂神写的源码点我下载,还有我跟着敲的点我下载,嘿嘿,也就注释了下重要的地方,这方 ...
 - 原生js写的贪吃蛇网页版游戏特效
		
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <bo ...
 - Java贪吃蛇游戏
		
package snake.game; import java.awt.CardLayout; import java.awt.Color; import java.awt.Graphics; i ...
 - 「JavaScript」手起刀落-一起来写经典的贪吃蛇游戏
		
回味 小时候玩的经典贪吃蛇游戏我们印象仍然深刻,谋划了几天,小时候喜欢玩的游戏,长大了终于有能力把他做出来(从来都没有通关过,不知道自己写的程序,是不是能通关了...),好了,闲话不多谈,先来看一下效 ...
 - 用Java开发贪吃蛇游戏
		
贪吃蛇游戏的设计步骤: Part 1: 设计游戏图纸 画出900*700的白色窗口 在窗口上添加画布 在画布上添加标题 在画布上添加黑色游戏区 Part 2: 放置静态的蛇:一个头.两个身体 加上开始 ...
 - 使用Java的GUI技术实现 “ 贪吃蛇 ” 游戏
		
详细教程: 使用Java的GUI技术实现 " 贪吃蛇 " 游戏_IT打工酱的博客-CSDN博客
 
随机推荐
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
			
当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产品可供参考,同时很多团队也会选择自主开发实现,而不管是选 ...
 - WCF入门教程系列五
			
一.概述 WCF在通信过程中有三种模式:请求与答复.单向.双工通信.以下我们一一介绍. 二.请求与答复模式 描述: 客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务 ...
 - c++11-bind的用法
			
bind函数 在c++11之前,要绑定某个函数.函数对象或者成员函数的不同参数值需要用到不同的转换器,如bind1st.bind2nd.fun_ptr.mem_fun和mem_fun_ref等.在c+ ...
 - Struts+Spring+Hibernate进阶开端(一)
			
入行就听说SSH,起初还以为是一个东西,具体内容就更加不详细了,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本原理与思想,总算接 ...
 - C# txt文件读写
			
//读取文件内容 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出. ]; ]; public void Read() { try { FileStream fil ...
 - 织梦dedecms返回上一级链接代码
			
如题:织梦dede手机页面,如果我进入了下一级页面,想回上一级,<a href="xx">该用什么标签? 用JS实现,代码如下 <a href="jav ...
 - 小试牛刀——爬topit.me的图片,附github简易上传教程
			
接触了scrapy ,发现爬虫效率高了许多,借鉴大神们的文章,做了一个爬虫练练手: 我的环境是:Ubuntu14.04 + python 2.7 + scrapy 0.24 目标 topit.me 一 ...
 - Google Chrome源码剖析【序】
			
[序(本人什么都没做,完全转载)] 开源是口好东西,它让这个充斥着大量工业垃圾代码和教材玩具代码的行业,多了一些艺术气息和美的潜质.它使得每个人,无论你来自米国纽约还是中国铁岭,都有机会站在巨人的肩膀 ...
 - java.lang.NoSuchMethodError: main Exception in thread "main"
			
java.lang.NoSuchMethodError: main Exception in thread "main" 一般是主函数出问题 检查核对一下 public stati ...
 - Unity3D使用NGUI做个弹窗
			
主要函数: NGUITools.AddChild(gameobj, prefab);//gameobj为父对象,prefab为要显示的窗体对象预制 然后写个方法,限制出现多个即可