做一个简单的java小游戏–贪吃蛇

贪吃蛇游戏博客链接:(方法一样,语言不一样)
c++贪吃蛇:https://blog.csdn.net/weixin_46791942/article/details/106850986
python贪吃蛇:https://blog.csdn.net/weixin_46791942/article/details/110383746
java贪吃蛇:https://blog.csdn.net/weixin_46791942/article/details/112095059

编写的是最简单的贪吃蛇游戏(实现最基本的功能)
效果图:

附上代码:
SnakeFrame.java

package javasnake;import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;import javax.swing.JFrame;
import javax.swing.WindowConstants;public class SnakeFrame extends JFrame{public static SnakeBoard snakeboard;public SnakeFrame(String title){setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setTitle(title);setVisible(true);setLocationRelativeTo(null);snakeboard = new SnakeBoard();add(snakeboard);pack();addKeyListener(new keylistener());}public static void main(String[] args) throws InterruptedException {SnakeFrame snakeframe = new SnakeFrame("java贪吃蛇");game();}public class keylistener implements KeyListener{public void keyTyped(KeyEvent e) {}public void keyPressed(KeyEvent e) {switch(e.getKeyCode()) {case KeyEvent.VK_DOWN: if(snakeboard.way!=4)snakeboard.way = 2;break;case KeyEvent.VK_UP: if(snakeboard.way!=2)snakeboard.way = 4; break;case KeyEvent.VK_LEFT: if(snakeboard.way!=1)snakeboard.way = 3;break;case KeyEvent.VK_RIGHT: if(snakeboard.way!=3)snakeboard.way = 1; break;}}public void keyReleased(KeyEvent e) {}}public static void game() throws InterruptedException{while(true) {Thread.sleep(100);if(snakeboard.way == 1)snakeboard.snake_x+=1;if(snakeboard.way == 2)snakeboard.snake_y+=1;if(snakeboard.way == 3)snakeboard.snake_x-=1;if(snakeboard.way == 4)snakeboard.snake_y-=1;if(snakeboard.board[snakeboard.snake_x][snakeboard.snake_y]>0 || snakeboard.snake_x<1 || snakeboard.snake_y >60)System.exit(0);snakeboard.board[snakeboard.snake_x][snakeboard.snake_y] = snakeboard.snake_lon;if ((snakeboard.snake_x == snakeboard.food_x) && (snakeboard.snake_y == snakeboard.food_y)) {snakeboard.snake_lon += 1;while (snakeboard.board[snakeboard.food_x][snakeboard.food_y] != 0) {snakeboard.food_x = (int)Math.round(Math.random()*59)+1;snakeboard.food_y = (int)Math.round(Math.random()*39)+1;}}snakeboard.board[snakeboard.food_x][snakeboard.food_y] = -1;snakeboard.draw();}}
}

SnakeBoard.java

package javasnake;import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JComponent;public class SnakeBoard extends JComponent{public int snake_lon = 3;public int[][] board = new int[62][42];public int food_x;public int food_y;public int snake_x = 10;public int snake_y = 10;public int size = 10;public int way = 1;public SnakeBoard() {food_x = (int)Math.round(Math.random()*59)+1;food_y = (int)Math.round(Math.random()*39)+1;board[food_x][food_y]=-1;}public void paint(Graphics g) {super.paint(g);for(int i = 1;i<=60;i++) {for(int j = 1;j<=40;j++) {if(board[i][j]==0) continue;if(board[i][j]>0) {board[i][j]-=1;g.setColor(Color.green);g.fillRect((i-1)*size, (j-1)*size, size, size);}else {g.setColor(Color.red);g.fillRect((i-1)*size, (j-1)*size, size, size);}}}}public void draw() {repaint();}public Dimension getPreferredSize() {return new Dimension(600,400);}
}

做一个简单的java小游戏--贪吃蛇相关推荐

  1. 用pygame做一个简单的python小游戏---贪吃蛇

    用pygame做一个简单的python小游戏-贪吃蛇 贪吃蛇游戏博客链接:(方法一样,语言不一样) c++贪吃蛇:https://blog.csdn.net/weixin_46791942/artic ...

  2. 做一个简单的java小游戏--单机版五子棋

    做一个简单的java小游戏–单机版五子棋 学了java有一段时间了,今天就来搞一个简单的单机版五子棋游戏. 实现功能:那必须能进行基础的输赢判断.还有重新开始的功能,悔棋的功能,先手设置的功能和退出的 ...

  3. 用pygame做一个简单的python小游戏---七彩同心圆

    用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便加强一下pygame库的学习. 玩法:每次点击鼠标时,会以鼠标 ...

  4. 用pygame做一个简单的python小游戏---生命游戏

    用pygame做一个简单的python小游戏-生命游戏 生命游戏(Game of Life) 生命游戏(Game of Life)是剑桥大学约翰·何顿·康威(John Horton Conway)教授 ...

  5. python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆

    用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...

  6. Java小游戏——贪吃蛇

    Java小游戏之贪吃蛇 系统目标 贪吃蛇是一个益智类游戏,通过本游戏的设计和实现,可以提升Java技术能力,提升自己独立开发的能力及掌握项目的开发流程. 开发环境 系统环境:Windows 开发工具: ...

  7. 用所学JS的知识做一个简单的坦克小游戏

    代码如下: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF- ...

  8. java小游戏贪吃蛇

    开发工具 :eclips 运行主要代码截图 实现的功能: (1)播放bgm并且可以通过空格暂停 (2)空格实现游戏暂停,再次空格可以继续游戏 (3)头碰到尾巴会结束游戏 (4)右上角可以记录贪吃蛇的长 ...

  9. 《游戏学习》教你上手一个简单的java小游戏《打纸飞机》附源码

    源码下载地址: https://download.csdn.net/download/weixin_40986713/20701376 项目结构目录 部分代码展示 import java.awt.Fo ...

最新文章

  1. python中choicebox_学习python的第四天笔记
  2. 在Ubuntu kylin 14 64位上flashplayer 插件
  3. 算法与数据结构(归并排序)
  4. OCS 2007 R2将前端加入到企业版池
  5. 【Java网络编程(四)】手写TCP聊天室——控制台版
  6. XCTF_Web_新手练习区:view_source
  7. .NET 6 中的 Logging Source Generator
  8. Win32动态库 Lib文件哪去了
  9. aspiration定义_志愿者的定义、理念与精神核心
  10. sqlserver复制表的结构、内容到另一个数据库
  11. 模拟退火算法求解超市布局问题
  12. 匿名邮件实现的方式及原理
  13. 高盛区块链79页完整报告:从理论到实践!
  14. 【随笔记】做事要讲究轻重缓急,一定要把握主次轻重。
  15. pool(二)——动手入门
  16. android 模拟自动点击,自动点击模拟器app
  17. 用python制作一张简单的节日贺卡
  18. 双下划线一粗一细怎么加_为什么下划线粗细不一样
  19. ak和sk的意思及用法
  20. 存储空间都去哪了?占用空间比文件大太多?可能是文件系统和默认簇大小惹的祸

热门文章

  1. 【数据挖掘】数据清洗——空缺值全局替换代码实现
  2. BZOJ 3027 Sweets 生成函数,容斥
  3. C#RichTextBox与TextBox换行区别
  4. redis 分布式集群部署
  5. C# 中TextBox控件如何限制输入的字数?
  6. 考研英语 长难句训练day77
  7. 短视频运营技巧合集(上)
  8. 迷信中台是一种病,得治
  9. 已经发车的票还能取出来吗_我买了张高铁票(已付过钱),但是车已经开了,我没上车,票也没取,还能在取出票吗?...
  10. 爬取123粉丝网明星数据榜单,看看你的爱豆现在排名变化情况