这里写目录标题

  • 一级目录
  • 二级目录
  • 三级目录
  • 程序设计工具:
  • 实验要求:
  • 实验准备部分
  • 一、util包的简介
  • 二、 LinkedList类 的1简介
  • 三、Java观察者模式
  • 四、随机数类Random
  • 五、线程问题:
  • 六、Random类
  • 七、Java按键事件KeyEvent对应的字符
  • 八、Java中的键盘监听事件KeyListener
  • 九、Java消息提示框JOptionPane
  • 十、由于线程操作得对象状态更改反馈
  • 十一、BorderLayout是Frame的默认的布局管理器
  • 十二、其余部分内容:


一级目录

二级目录

三级目录

程序设计工具:

1、语言:JAVA
  2、开发环境:IntelliJ IDEA Community Edition 2020

实验要求:

实现贪吃蛇游戏基本功能,屏幕上随机出现一个“食物”,称为豆子,上下左右控制“蛇”的移动,吃到“豆子”以后“蛇”的身体加长一点,得分增加,“蛇”碰到边界或,蛇头与蛇身相撞,蛇死亡,游戏结束。为游戏设计初始欢迎界面,游戏界面,游戏结束界面。

实验准备部分

//实验准备部分是我在学习过程中遇到的一些麻烦或者是太不理解的部分把这些问题的我觉得能解决问题并且还不错的链接附在文章中。

一、util包的简介

util包链接 java.util是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包。

util包的主要类的详解链接

二、 LinkedList类 的1简介

LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。 注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:

List list = Collections.synchronizedList(new LinkedList(...));

三、Java观察者模式

Java提供了对观察者模式的支持接口和实现类。其中接口 java.util.Observer 用来指定观察者,观察者必须实现 void update(Observable o, Object arg) 方法。而 java.util.Observable 用来指定观察物(被观察者、可被观察的),并且提供了一系列的方法。读者可以很轻易的使用这个接口和实现类来实现观察者模式。
观察者相关学习链接

四、随机数类Random

Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机数。

五、线程问题:

1、在对一个不断变化的动画来说,就会容易出现线程同步问题.

new Thread(new Runnable(){})

2、Thread 是类,且实现了Runnable接口。
通过Thread类建立线程对象

Java中的Runnable

六、Random类

Random类,提供功能 , 名字  nextInt() 产生一个随机数, 结果是int类型
  出现随机数的范围, 在功能nextInt(写一个整数), 整数: 随机出来的范围
  随机数的范围在  0 - 指定的整数之间的随机数   nextInt(100)   [0,99]

七、Java按键事件KeyEvent对应的字符

Java按键事件KeyEvent对应的字符表示链接 此处举出一些常用的按键常量:

按键常量:
              
VK_UP           上箭头                            
VK_DOWN         下箭头                         
VK_LEFT         左箭头                          
VK_RIGHT        右箭头
VK_ENTER        回车键                       
KeyReleased(e: KeyEvent)       在源组件上释放一个键后被调用;
KeyTyped(e: KeyEvent)           在源组件上按下一个键然后释放该键后被调用;

按键事件可以利用键盘来控制和执行一些动作,或者从键盘上获取输入,只要按下,释放一个键或者在一个组件上敲击,就会触发按键事件。KeyEvent对象描述事件的特性(按下,放开,或者敲击一个键)和对应的值。java提供KeyListener接口处理按键事件。

八、Java中的键盘监听事件KeyListener

Java中的键盘监听事件KeyListener

九、Java消息提示框JOptionPane

Java消息提示框JOptionPane的使用方法:

十、由于线程操作得对象状态更改反馈

setChanged()方法用于将此Observable对象状态设置为已更改。

当对象已更改时, notifyObservers()方法用于通知列表中的所有观察者。


十一、BorderLayout是Frame的默认的布局管理器

  • 是上下左右中形式的,用add方法添加Component时
  • 第二个参数指定位置
  • 不指定加入部位,默认放入center区
  • 同一部位只能放一组件,放多个会覆盖以前的

java awt 简单示例 BorderLayout 链接里的代码执行过就是这种样式,大家只要知道是这么添加就好。
如果测试改段代码记得添加语句:

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

否则窗口无法关闭;

java 贪吃蛇游戏开发 java贪吃蛇游戏设计与实现_Java


主要操作如下几步;

Frame f = new Frame("My Frame");
  		Button b1 = new Button("BN");
  		f.setLayout(new BorderLayout());
		f.add(b1, BorderLayout.NORTH);

十二、其余部分内容:

1、在学习中也有一些小问题比如下面突然想到Java中的类的构造函数中习惯用的this指针,之前一这是习惯性的使用,但是这次就去特地查了一下;以下是参考链接:

2、Java中try catch语句:
try语句块中的代码可能会引发多种类型的异常,当引发异常时,会桉顺序查看每个catch语句,并执行与之异常类型相匹配的第一个catch语句,后面的catch语句被忽略。

3、控件得设置相关参考链接:

setSize(int width, int height):其实就是定义控件的大小,有两个参数,分别对应宽度和高度;

setLocation(int x, int y):将组件移到新位置,用x 和 y 参数来指定新位置的左上角
setBounds(int x, int y, int width, int height):四个参数,既定义组件的位置,也定义控件的大小; 其实它就是上面两个函数的功能的组合

正文部分下一篇。