学习Java有那么一个月了,兴趣还是挺高的。然而最近老师布置的一个迷宫问题,着实让我头疼了一两个礼拜,以至于身心疲惫,困扰不安。无奈,暂且先放下这个迷宫问题,写个简单点的贪吃蛇程序,以此来提高低落的情绪。

在脑中构思了一下贪吃蛇的大概思路之后,便开始动手写程序了(这也是我一贯的作风,然而也是有让自己多走弯路的),写写停停,一天下来,程序倒是写出来了,然而问题也是很多的,一个主要的问题就是蛇的拐弯,不能一节一节的改变方向,而是吃到食物变长后直接整个身体的拐弯,蛮横,霸道。找了好久还是没能改掉这个问题,无奈只能上网查找资料。资料显示,关于蛇拐弯的问题,主要有两种思路,一种就是蛇身跟随蛇头移动,比如拿一个数组储存蛇身,就是令a[i]=a[i-1];数组里面储存的是蛇身坐标;另一种算法就是当蛇吃到食物时,去掉尾部,增加头部,此时用LinkedList<Point> snakeBody储存蛇身,当吃到食物后,snakeBody.removeLast(),  snakeBody.addFirst();可以看出此算法更高效。至于我自己一开始是用前一种方法的。后来用第二中方法去改,越改越乱,索性重新去设计程序,折腾了一两天,今天终于可以看见一条温驯的蛇慢慢游动了。

高兴之余,写篇文章纪念第一个游戏的测试通过。虽然还有些小问题,还是留着慢慢改吧。至于源码就不贴了,资源分享吧。回头还得解决迷宫问题,还是头大,大神们如若有好的建议,还望不吝赐教。。。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于用Java写的贪吃蛇游戏的一些感想的更多相关文章

  1. Python写的贪吃蛇游戏例子

    第一次用Python写这种比较实用且好玩的东西,权当练手吧 游戏说明: * P键控制“暂停/开始”* 方向键控制贪吃蛇的方向 源代码如下: 复制代码代码如下: from Tkinter import ...

  2. 用最少的JS代码写出贪吃蛇游戏---迷你版

    游戏进行页面展示 GAME  OVER 页面展示  代码如下: <!doctype html> <html>   <body>   <canvas id=&q ...

  3. python 写一个贪吃蛇游戏

    #!usr/bin/python #-*- coding:utf-8 -*- import random import curses s = curses.initscr() curses.curs_ ...

  4. Java GUI学习,贪吃蛇小游戏

    JAVA GUI练习 贪吃蛇小游戏 前几天虽然生病了,但还是跟着狂神学习了GUI的方面,跟着练习了贪吃蛇的小项目,这里有狂神写的源码点我下载,还有我跟着敲的点我下载,嘿嘿,也就注释了下重要的地方,这方 ...

  5. 原生js写的贪吃蛇网页版游戏特效

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <bo ...

  6. Java贪吃蛇游戏

    package snake.game; import java.awt.CardLayout; import java.awt.Color; import java.awt.Graphics;   i ...

  7. 「JavaScript」手起刀落-一起来写经典的贪吃蛇游戏

    回味 小时候玩的经典贪吃蛇游戏我们印象仍然深刻,谋划了几天,小时候喜欢玩的游戏,长大了终于有能力把他做出来(从来都没有通关过,不知道自己写的程序,是不是能通关了...),好了,闲话不多谈,先来看一下效 ...

  8. 用Java开发贪吃蛇游戏

    贪吃蛇游戏的设计步骤: Part 1: 设计游戏图纸 画出900*700的白色窗口 在窗口上添加画布 在画布上添加标题 在画布上添加黑色游戏区 Part 2: 放置静态的蛇:一个头.两个身体 加上开始 ...

  9. 使用Java的GUI技术实现 “ 贪吃蛇 ” 游戏

    详细教程: 使用Java的GUI技术实现 " 贪吃蛇 " 游戏_IT打工酱的博客-CSDN博客

随机推荐

  1. ios swift(1)冒泡排序

    //冒泡排序  稳定性最高  时间复杂度高 O(n(2)) ,交换次数太多, 一次交换等于三次赋值    最简单 var count = 0 func sortInts(inout data : [I ...

  2. iOS开发中遇到的一些问题及解决方案【转载】

    iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // //  MyScrollView.m //  Creat ...

  3. unity 之2D游戏简单操作

    unity 做2D项目也很方便.  首先要调整camera的模式,camera 的检视面板参数如下: perspective 模式就是平时用的 模式.摄像机到游戏物体是有角度的张开, 而 orthog ...

  4. 从字节理解Unicode(UTF8/UTF16)

    如果你不知道或者不了解什么是Unicode/UTF8/UTF16,请详细阅读这篇文章(这也是这篇博文的先决条件): 学点编码知识又不会死:Unicode的流言终结者和编码大揭秘 但是如果你看完以上文章 ...

  5. 第一次写博客,关于前端开发deMVC在js中的应用

    对前端MVC MVC分别是model.view.controller的缩写,模型.视图.控制器.这些更加偏向于后台,在以前MVC是只属于后台的.当然随着技术的进步,前端的大牛们将后台的一些东西应用于前 ...

  6. JavaScript的数据类型转换

    首先,由于JavaScript是弱类型语言(弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也 ...

  7. hdu1054 树状dp

    B - 树形dp Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:10000KB     64bit ...

  8. hdu1520 第一道树形DP,激动哇咔咔!

    A - 树形dp Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  9. C#按键打开文件选择对话框,并把选择好的路径保存/显示到textBox

    1.选择文件夹 FolderBrowserDialog fbd = new FolderBrowserDialog(); fbd.SelectedPath = "D:";//默认路 ...

  10. show,hide与fadeIn、fadeOu的区别

    show,hide——>是通过改变height,width,opacity来实现动画的显示与隐藏的 fadeIn.fadeOut——>只通过opacity来实现动画的显示与隐藏的 它们两个 ...