华宇考试网

如何用java实现一个贪吃蛇小游戏,java中的贪吃蛇程序是什么

时间:2023-03-26来源:华宇网校作者:基金从业资格课程 基金从业视频网课
如何用java实现一个贪吃蛇小游戏

如何用java达到一个贪吃蛇小游戏?

1、设计游戏,第一就要设计界面。第一看看我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“成绩信息”和贪吃蛇的游戏区,右边控制区有“启动”“暂停”“停止”功能按钮,等级选择单选框还有游戏排行榜。

2、故此,我们需定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏时,我们要确切清楚游戏区的大小,故此,这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握并熟悉不够,故此,就先设置固定大小吧。

3、定义我们的游戏。贪吃蛇游戏实际上就是包含不少细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。故此我们需定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还要有添加键盘事件控制上下左右移动。

4、食物的位置信息是二维的,故此,我简单定义了一个类用来保存二维信息。

5、马上就是达到游戏的功能了。启动,暂停,停止功能按钮添加事件控制游戏启动。等级功能按钮定义游戏难度等。

6、启动游戏后,我们定义一个定时器。蛇身根据指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右功能按钮来控制。蛇身是连续的位置信息,保存到队列中,故此,蛇身的移动就是队首增多一个位置,队尾减少位置,然后重新绘画游戏区完全就能够了。

java中的贪吃蛇程序?

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.*;

public class SnakeGame extends JFrame implements KeyListener{

private int stat=1,direction=0,bodylen=6,headx=7,heady=8,

tailx=1,taily=8,tail,foodx,foody,food;//初始化定义变量

public final int EAST=1,WEST=2,SOUTH=3,NORTH=4;//方向常量

int [][] fillblock=new int [20][20];//定义蛇身所占位置

public SnakeGame() {//构造函数

super("贪吃蛇");

setSize(510,510);

setVisible(true);//设定窗口属性

addKeyListener(this);//添加监听

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

for(int i=1;i=7;i++) fillblock[i][8]=EAST;//初始化蛇身属性

direction=EAST;//方向初始化的设置

FoodLocate(); //定位食物

while (stat==1){

fillblock[headx][heady]=direction;

switch(direction){

case 1:headx++;break;

case 2:headx-;break;

case 3:heady++;break;

case 4:heady-;break;

}//蛇头的前进

if(heady19||headx19||tailx19||taily19||heady0||headx0||tailx0||taily0||fillblock[headx][heady]!=0){

stat=0;

break;

} //判断游戏是不是结束

try{

Thread.sleep(150); }

catch(InterruptedException e){}//推后

fillblock[headx][heady]=direction;

if(headx==foodxheady==foody){//吃到食物

FoodLocate();

food=2;

try{

Thread.sleep(100); }

catch(InterruptedException e){}//推后

}

if(food!=0)food-;

else{tail=fillblock[tailx][taily];

fillblock[tailx][taily]=0;//蛇尾的消除

switch(tail){

case 1:tailx++;break;

case 2:tailx-;break;

case 3:taily++;break;

case 4:taily-;break;

}//蛇尾的前进

}

repaint();

}

if(stat==0)

JOptionPane.showMessageDialog(null,"GAME OVER","Game Over",JOptionPane.INFORMATION_MESSAGE);

}

public void keyPressed(KeyEvent e) {//按键响应

int keyCode=e.getKeyCode();

if(stat==1) switch(keyCode){

case KeyEvent.VK_UP:if(direction!=SOUTH) direction=NORTH;break;

case KeyEvent.VK_DOWN:if(direction!=NORTH)direction=SOUTH;break;

case KeyEvent.VK_LEFT:if(direction!=EAST)direction=WEST;break;

case KeyEvent.VK_RIGHT:if (direction!=WEST)direction=EAST;break;

}

}

public void keyReleased(KeyEvent e){}//空函数

public void keyTyped(KeyEvent e){} //空函数

public void FoodLocate(){//定位食物坐标

do{

Random r=new Random();

foodx=r.nextInt(20);

foody=r.nextInt(20);

}while (fillblock[foodx][foody]!=0);

}

public void paint(Graphics g){//画图

super.paint(g);

g.setColor(Color.BLUE);

for(int i=0;i20;i++)

for(int j=0;j20;j++)

if (fillblock[i][j]!=0)

g.fillRect(25*i+5,25*j+5,24,24);

g.setColor(Color.RED);

g.fillRect(foodx*25+5,foody*25+5,24,24);

}

public static void main(String[] args) {//主程序

SnakeGame application=new SnakeGame();

}

}

java编程贪吃蛇游戏的原理和用到了什么内容知识,能介绍一下吗?

把蛇身体的每一块看成一个对象(对象存储该块的坐标和有关信息),作为节点存储在线性链表中,再设置一个变量标志蛇的方向(通过按键可以改变)。大多数情况下人都是让每一个节点等于他指向的下一个节点,并让头节点改变位置来达到转弯和移动,这个算法复杂度太高(O(n)),其实只要做两步操作,插入一个头节点,删除一个尾节点完全就能够了,新插入的头节点位置按照蛇现目前的方向决定。

java swing,java2d 图形化编程,主要就是这两块重要内容及核心考点

java达到贪吃蛇游戏答辩会问什么问题啊?

贪吃蛇主要是控制一只小蛇移动吃物品后持续性变长的游戏。

答辩会大多数情况下会问,如何达到小蛇移动的,假设达到变长,如何随机产生物品等等问题。

基金从业资格考试学习资料及辅导课程

注册网校会员免费领取学习资料

©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

名师培训辅导课程

会计考试培训视频课程

以上就是本文如何用java实现一个贪吃蛇小游戏,java中的贪吃蛇程序是什么的全部内容

本文链接:https://www.china-share.com/jijincongye/kecheng/202303261321723.html

发布于:华宇考试网(https://www.china-share.com/)>>> 基金从业资格课程栏目(https://www.china-share.com/jijincongye/kecheng/)

投稿人:网友投稿

说明:因政策和内容的变化,上文内容可供参考,终以官方公告内容为准!

声明:该文观点仅代表作者本人,华宇考试网系信息发布平台,仅提供信息存储空间服务。对内容有建议或侵权投诉请联系邮箱:e8548113@foxmail.com

关注本站了解更多关于文如何用java实现一个贪吃蛇小游戏,java中的贪吃蛇程序是什么和基金从业资格课程的相关信息。

基金从业资格考试备考资料免费下载

考试资料领取

    基金从业资格课程热门资讯

  • 如何用java实现一个贪吃蛇小游戏,java中的贪吃蛇程序是什么

    如何用java达到一个贪吃蛇小游戏? 1、设计游戏,第一就要设计界面。第一看看我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“成绩信息”和贪吃蛇的游戏区,右边控制区有“启动”“暂停”“停止”功...

    2023-03-26

  • 无锡少年宫有哪些课程,广州少年宫有哪些课程

    无锡少年宫有什么课程? 大多数情况下少年宫培训课程有:电子动画 课、科技制作课、英语课、乐高机器人课、绘画课、中国画课、美术 课、软笔书法课、摄影课、舞蹈课、小提琴课、朗诵表演课、声乐课、 快板课等等。 无锡少...

    2023-03-25

  • 有道脑力开发记忆课有用吗,环球记忆培训课程有用吗

    有道脑力开发记忆课有用吗? 1 有用2 因为有道脑力开发记忆课是一种帮提升记忆力的培训课程,通过系统化的训练可以提升学生的记忆能力,帮学生更好地学习和工作。3 除开这点记忆力是一项可以通过训练和锻炼来提升的能力,...

    2023-03-24

  • 英文版课程表怎么做,英国国家课程有哪些课程体系

    英文版课程表怎么做? 自制一张英语的课程表: 第一,统计下一周上几天课,每天有几节课。 然后,打开excel表格,每周上课的天数如星期一,为列标题,每天上课的节数如一,为行的第一格,后面,再把英语课填在对应的格子...

    2023-03-24

  • 谁知道高联数学的讲师张宇冯海讲得怎么样,张宇高联事件

    谁清楚高联数学的讲师张宇冯海讲得怎么样? 上一天刚听完张宇的线性代数。总结历次经验来说张宇讲的挺好,把课本的知识结构总结的很好,而且,知识串联的夜很好,张宇上课的课堂气氛比较活跃,不会犯困,不过就是高联的...

    2023-03-23