用Java写贪吃蛇小游戏

LVGL 源码分析大全 LVGL 是一款流行的免费和开源嵌入式图形库,为纯C的轻量级GUI框架,支持framebuffer直接渲染图层,因此LVGL能更容易为 MCU、MPU等显示设备开发漂亮的UI。可视化的 UI 编辑器官方上有推荐使用工具。当然,也可以选择 NXP(恩智浦半导体) 提供的工具。........................ 阅读详情

贪吃蛇游戏的设计步骤:

Part 1:  

  设计游戏图纸

  画出900*700的白色窗口

  在窗口上添加画布

  在画布上添加标题

  在画布上添加黑色游戏区

 

Part 2:

  放置静态的蛇:一个头、两个身体

  加上开始提示:按空格键开始游戏

  让蛇动起来:监听Timer事件,平移数据

  实现游戏暂停

  实现转向功能

 

Part 3:

  添加食物

  吃掉食物

  添加死亡条件

  实现“重新开始”功能

  添加分数和长度

 

游戏图纸如下:

 

蛇及游戏框的素材如下:

                                 

 

 图片下载地址     链接:https://pan.baidu.com/s/1jH6xnXc 密码:hqze

Snake主类:

 

复制代码
 1 package snake;
 2 
 3 import javax.swing.JFrame;
 4 import javax.swing.JPanel;
 5 
 6 public class Snake {
 7 
 8     public static void main(String[] args) {
 9         
10         JFrame frame = new JFrame(); // 创建一个游戏界面的框架
11         frame.setBounds(10, 10, 900, 720); // 设置框架的大小
12         frame.setResizable(false); // 设置框架大小为不能改变
13         // 点击关闭按钮 关闭游戏界面
14         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
15         
16         SnakePanel panel = new SnakePanel();  //添加画布
17         frame.add(panel); // 刚添加时画布是空的看不到
18         
19         frame.setVisible(true); // 允许显示游戏界面
20     }
21 
22 }
复制代码

 

SnakePanel类:

复制代码
  1 package snake;
  2 
  3 import java.awt.Color;
  4 import java.awt.Font;
  5 import java.awt.Graphics;
  6 import java.awt.event.ActionEvent;
  7 import java.awt.event.ActionListener;
  8 import java.awt.event.KeyEvent;
  9 import java.awt.event.KeyListener;
 10 import java.util.Random;
 11 
 12 import javax.swing.ImageIcon;
 13 import javax.swing.JPanel;
 14 import javax.swing.Timer;
 15 
 16 public class SnakePanel extends JPanel implements KeyListener,ActionListener{
 17 
 18     // 定义七个图片变量,代表七张图片
 19     ImageIcon up = new ImageIcon("up.png"); // 向上的蛇头
 20     ImageIcon down = new ImageIcon("down.png"); // 向下的蛇头
 21     ImageIcon left = new ImageIcon("left.png"); // 向左的蛇头
 22     ImageIcon right = new ImageIcon("right.png"); // 向右的蛇头
 23     ImageIcon food = new ImageIcon("food.png");  // 食物
 24     ImageIcon body = new ImageIcon("body.png");  // 蛇的身体
 25     ImageIcon title = new ImageIcon("title.jpg"); // 游戏界面的主题
 26     
 27     // 蛇的每一部分
 28     int[] snakex = new int [750];
 29     int[] snakey = new int [750];
 30     
 31     // 随机生成食物
 32     Random rand = new Random();
 33     int foodx = rand.nextInt(34)*25+25; //此处的数值根据自己设计的游戏界面的大小来确定
 34     int foody = rand.nextInt(24)*25+75;
 35     
 36     // 设置游戏的默认属性
 37     int len = 3;
 38     int score = 0;
 39     String direction = "R"; // U上 D下 L左 R右
 40     
 41     boolean isStarted = false; // 判断游戏是否开始
 42     boolean isFailed = false; // 判断游戏是否结束
 43     
 44     Timer timer = new Timer(100,this); // 每100毫秒调用一次ActionPerformed
 45     
 46     
 47     public SnakePanel() { // 建造画布的构造函数
 48         this.setFocusable(true);  // 获取焦点
 49         this.addKeyListener(this); // 监听键盘事件
 50         setup();
 51         timer.start();
 52     }
 53     
 54     public void paint(Graphics g) { // Graphics 画笔
 55         
 56         this.setBackground(Color.BLACK); // 设置画布背景颜色
 57         title.paintIcon(this, g, 25, 11);// 放置主题图片
 58         g.fillRect(25, 75, 850, 650); // 用画笔设置游戏方框
 59         
 60         // 画蛇头(注意判断蛇头的方向)
 61         if (direction.equals("R")) 
 62             right.paintIcon(this, g, snakex[0], snakey[0]);
 63         else if (direction.equals("L")) 
 64             left.paintIcon(this, g, snakex[0], snakey[0]);
 65         else if (direction.equals("U")) 
 66             up.paintIcon(this, g, snakex[0], snakey[0]);
 67         else if (direction.equals("D")) 
 68             down.paintIcon(this, g, snakex[0], snakey[0]);
 69         
 70         // 画蛇的身体
 71         for(int i = 1; i < len; i ++)
 72             body.paintIcon(this, g, snakex[i], snakey[i]);
 73         
 74         // 判断如果游戏没开始显示。。。
 75         if (!isStarted){ 
 76             g.setColor(Color.WHITE);
 77             g.setFont(new Font("arial",Font.BOLD, 30));
 78             g.drawString("Press Space to start / pause", 200, 300);
 79         }
 80         
 81         // 判断如果游戏结束显示。。。
 82         if (isFailed){
 83             g.setColor(Color.WHITE); 
 84             g.setFont(new Font("arial",Font.BOLD, 30));
 85             g.drawString("Game Over ! Press space to restart", 200, 300);
 86         }
 87         
 88         // 显示食物
 89         food.paintIcon(this, g, foodx, foody);
 90         
 91         // 设置分数和蛇的长度
 92         g.setColor(Color.WHITE);
 93         g.setFont(new Font("arial",Font.PLAIN,15));
 94         g.drawString("Score : "+score, 650, 37);
 95         g.drawString("Len :"+len, 650, 57);
 96     }
 97     
 98     public void setup() { // 游戏初始化
 99         isStarted = false;
100         isFailed = false;
101         len = 3;
102         score = 0;
103         snakex[0] = 100; snakex[1] = 75; snakex[2] = 50;
104         snakey[0] = 100; snakey[1] = 100; snakey[2] = 100;
105     }
106 
107     @Override
108     public void keyPressed(KeyEvent e) {
109         
110         //实现键盘响应 
111         int KeyCode = e.getKeyCode();
112         if (KeyCode == KeyEvent.VK_SPACE){ // 敲击空格现实/消除提示信息
113             if (isFailed){
114 //                isStarted = false;  // 可以将这两行放入setup中
115 //                isFailed = false;
116                 setup();
117             }else 
118                 isStarted = !isStarted;
119         } else if (KeyCode ==  KeyEvent.VK_UP && direction != "D")
120                 direction = "U";
121           else if (KeyCode ==  KeyEvent.VK_DOWN && direction != "U" )
122                 direction = "D";
123           else if (KeyCode ==  KeyEvent.VK_RIGHT && direction != "L")
124                 direction = "R";
125           else if (KeyCode ==  KeyEvent.VK_LEFT && direction != "R")
126                 direction = "L";
127     }
128 
129     @Override
130     public void actionPerformed(ActionEvent e) {
131         // 1. 再定义一个闹钟
132         timer.start();
133                 
134         // 2. 移动数据
135         if (isStarted && !isFailed){
136             // 移动身体
137         for (int i = len; i>0; i--){
138             snakex[i] = snakex[i-1];
139             snakey[i] = snakey[i-1];
140         }
141         // 移动头
142         if (direction.equals("R")){
143             snakex[0] = snakex[0] + 25;
144             if(snakex[0] > 850) snakex[0] = 25;
145             }else if (direction.equals("L")){
146                 snakex[0] = snakex[0] - 25;
147                 if(snakex[0] < 25) snakex[0] = 850;
148             }else if (direction.equals("U")){
149                 snakey[0] = snakey[0] - 25;
150                 if (snakey[0] < 75) snakey[0] = 650;
151             }else if (direction.equals("D")){
152                 snakey[0] = snakey[0] + 25;
153                 if (snakey[0] > 650) snakey[0] = 75;
154             }
155                     
156             if (snakex[0] == foodx && snakey[0] == foody){  // 吃食物
157                     len ++;
158                     score ++;
159                     foodx = rand.nextInt(34)*25+25;
160                     foody = rand.nextInt(24)*25+75;
161             }
162                     
163             for (int i = 1; i < len; i ++){  // 如果蛇头碰到自己的身体游戏结束
164                 if (snakex[0] == snakex[i] && snakey[0] == snakey[i]){
165                     isFailed = true;
166                 }
167             }
168                     
169         }
170         // 3. repaint()
171             repaint();
172     }
173     
174     @Override 
175     public void keyTyped(KeyEvent e) {
176         
177     }
178 
179     @Override
180     public void keyReleased(KeyEvent e) {
181         
182     }
183 }
复制代码

 游戏效果如下:

 

 

 

C++设计模式之观察者模式 观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式通常用于实现分布式事件处理系统,当一个对象(称为“主题”或“发布者”)改变状态时,所有注册的观察者都会收到通知。 阅读详情

相关推荐

海康视觉通讯配置

本文介绍了海康通讯管理中TCP和Modbus协议的配置方法。TCP通讯时,视觉系统作为服务器接收PLC客户端发送的触发信号,需注意十进制与十六进制字符串的转换。Modbus配置需填写PLC的IP地址和寄存器首地址,并预先定义整型变量。TCP通讯需开启16进制发送模式以避免数据格式问题。文章重点说明了不同通讯方式下的数据格式转换和参数设置要点。

A567852的博客 2242

JavaGUI 简易贪吃蛇代码详解+图片素材

简易贪吃蛇 运行截图 图片素材 代码详解 package com.du.snake; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Random;

weixin_46799925的博客 4479

Windows 11安装 SQLServer 2008 R2 失败问题处理

Windows 11安装SQL Server 2008 R2失败解决方案 由于Windows 11移除了对PowerShell 2.0的支持,导致SQL Server 2008 R2安装失败。经过多次尝试,最终通过**方案六(修改注册表模拟PowerShell 2.0环境)**成功安装。其他可行方案包括: 使用SP3集成版安装包 通过命令行跳过检查(/SUPPRESSPOWERShellCHECK参数) 创建特殊配置文件 替代方案建议: 使用Docker容器运行 在虚拟机中安装 升级到新版SQL Serve

oDengWei的博客 7146

java贪吃蛇素材png_贪吃蛇 - java代码库 - 云代码

[java]代码库package 贪吃蛇;import java.applet.Applet;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.aw...

weixin_29081101的博客 1295

TNS-12516及ORA-12516错误解决

在客户端进行sqlplus连接报错如下: ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序 在/home/oracle/product/10.2.0/db_1/network/log/listener.log中查看到错误如下: TNS-12516: TNS:listener could not find available handler with matchin

KEL 2万+

保姆级教程:在RK3588开发板上用CMake交叉编译ZLMediaKit(附完整toolchain配置)

本文提供了一份详细的RK3588开发板上使用CMake交叉编译ZLMediaKit的教程,包括完整的toolchain配置和实战避坑指南。从环境准备、工具链配置到依赖处理、编译部署,手把手指导开发者完成ARM64架构的流媒体服务搭建,特别适合嵌入式开发新手。

weixin_28681255的博客 383

java jpanel添加图片_JAVA-给Jpanel添加背景图片详解与匿名内部类

昨天在写一个网络五子棋小游戏的时候碰到了一个问题,就是给Jpanel添加背景图片,并且能使得背景图片可以跟随窗口的变化而变化。 看了很多网络上大神的博客,大家给出了很多很好的解决方案,但是大部分给出的都是在本地成功的案例,我自己实践起来还是碰到了各种各样的BUG,现在我就分享一下我所碰到的问题和怎样去解决这些问题 首先,最重要的一点,重写JPanel的重绘方法public void pai...

weixin_39611275的博客 4645

十五、SAP-物料需求计划(MRP)

业务逻辑、功能讲解、图文解析、章节总结

m0_72403327的博客 1089

java 贪吃蛇 源码+图片

## java 贪吃蛇 源码+图片 本人也是个初学者,有什么不对的地方,请大佬指点!!! 一、涉及到的知识点如下: 循环,分支 方法的抽取 数组的使用 面向对象 继承,子类方法的重写 接口,接口的实现 二、游戏图形化界面编程----》GUI图形化界面编程 注意:GUI 已经被很少使用 主要是理解监听思维 帮助刚学java的同学提升兴趣。 GUI的组件: 窗口 弹窗 面板 文本框 列表框 按钮 交互的时间:监听事件(鼠标事件,键盘事件) 里面的代码 随着学习 随着使用 不必再去细扣每个代码是什么意

柒柒柒柒 4592

利用自己的域名和cloudflare实现邮件转发(无限邮箱注册cursor使用账号) 保姆级图文

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!发现你走远了@mzh原创作品,转载必须标注原文链接欢迎关注『发现你走远了』 专栏,持续更新中欢迎关注『发现你走远了』 专栏,持续更新中『未完待续』

MZH 413

【BUG已解决】RuntimeError: CUDA error: no kernel image is available for execution on the device 解决方案

方案适用场景推荐指数精确匹配官方版本绝大多数场景(大众消费卡+主流数据中心卡)⭐⭐⭐⭐⭐安装历史旧版本Pascal/Maxwell等老显卡⭐⭐⭐⭐安装Nightly版本刚发布的最新架构显卡⭐⭐⭐⭐源码编译官方各版本均不支持的特殊硬件⭐⭐Docker官方镜像追求省心、避免版本排查⭐⭐⭐⭐⭐的核心是PyTorch 预编译包不包含你显卡对应的计算能力架构先确认显卡真实计算能力),而不是盲目重装驱动对比 PyTorch 支持的架构列表),定位是否真的不匹配精确匹配官方版本。

博客 1万+

java 简单实现贪吃蛇 (Greedy-Snake)图形界面,含切换窗口

Greedy-Snake 先看效果图吧,开始游戏界面 点击 开始 按钮后的效果 上代码啦 先定义一个启动程序开始我们的代码好吧。 // StartMyGreedySnake.java public class StartMyGreedySnake { public static void main(String[] args) { new StartView(); // 启动游戏界面 } } 首先设计一个进入游戏的窗口 用 StartView 类实现 //

嘟嘟的博客 5420

AI 编程工具面试题(Claude Code、Codex 等)基础篇(一)

文章摘要: 本文整理了20道AI编程工具基础面试题,涵盖Claude Code、Codex CLI、GitHub Copilot等主流工具的核心概念与实操技巧。内容分为工具分类(代码补全/对话式/自主代理)、安装配置(静默部署/API管理)、关键命令(上下文加载/token监控)、调试策略(错误处理/提示优化)及对比选型(Tabnine vs Copilot)。重点解析了终端工具与模型能力的差异,并针对实际场景(如长代码生成/私有化部署)提供解决方案。附追问环节,深入探讨工具边界问题(如上下文溢出处理)和成

篮球界最会写bug的人;程序猿中打球最菜的人。 336

Java 用java GUI写一个贪吃蛇小游戏

目录主要用到 swing 包下的一些类上代码游戏启动类游戏数据类游戏面板类代码地址 主要用到 swing 包下的一些类 JFrame 窗口类 JPanel 面板类 KeyListener 键盘接口 ActionListener 监听接口 上代码 游戏启动类 package com.snake; import javax.swing.*; // 游戏的启动类 public class StartGame { public static void main(String[

weixin_44953227的博客 5185

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

用java写一个贪吃蛇小游戏(源码在最后)

涉及技能:GUI中的组件: 7.1 窗口 7.2 弹窗 7.3 面板 7.4 文本框 7.5 列表框 7.6 按钮 7.7 图片 7.8 交互的事件:监听事件(鼠标事件,键盘事件)GUI技术,不流行了!!!界面太简单粗糙!!已经被淘汰了,为什么还学?注意: 学的是 思想!!!小蛇素材图像素为25*25,因此在对应xy轴上的数值也以25为步长。 1.打开IDEA工具,新建一个模块module。 2.选择java,点next。 3.取一个名字叫TestSnake,然后点击finish。 4.打开新建好的T

weixin_47678894的博客 2万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java写贪吃蛇小游戏

根据遇见狂神说的视频编写的贪吃蛇小程序,在代码部分做了一些改变,添加了详细的注释,感兴趣的朋友们可以看看。 视频教程地址:一小时搞定Java贪吃蛇 下面是个人代码,源码包见地址:贪吃蛇源码 启动类 public class StartGame { public static void main(String[] args) { //1.绘制一个静态窗口 JFrame // 设置标题 JFrame jf = new JFrame("叶剑军的贪吃蛇");

lunatic__的博客 872

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java写小游戏贪吃蛇

效果图 首先用java写贪吃蛇,思路要清晰 第一步:窗口 初始化一个蛇,一个食物 第二步: 动起来(移动)吃食物; 第三步:添加控制 :显示分数;速度;开始暂停等; 难点1设置继承jpanl时添加到窗口时,不知如何设置背景颜色; 难点2如何控制一条蛇的长度,并且上下移动; 难点3线程的运用以及线程启动时机; 以下仅给部分关键的代码; 窗口要用JFrame类,用来实现游戏窗

u014469691的专栏 912

JFrame写的一个java贪吃蛇小游戏

JFrame写的一个java贪吃蛇小游戏只是一个小练手项目(大体思路初始化窗体参数(initFrame())初始化游戏棋盘(initGamePanel())初始化蛇( initSnake())初始化食物( inifFood())初始化定时器( iniTimer())设置键盘监听,让蛇随着上下左右方向移动(setKeyListener())大体思路结束,下面是具体代码MainFrame.javaDirection.java(枚举类)Node.java(节点类,构成蛇和食物的基础)Snake.java(蛇类)

weixin_47037778的博客 517

一起用Java写一个贪吃蛇小游戏

分析一个游戏应该有的需求,逻辑。贪吃蛇无非就是等待键盘操作,根据操作更改画面。其实不管是什么游戏都少不了这两个步骤,所以我们可以把这两个操作抽象出来定义一个规则,这就是经常听说的游戏引擎。一个java实现的简易游戏引擎文章用到该游戏引擎。来完成一个简单的贪吃蛇游戏。JavaSE GUI游戏中的元素:蛇,苹果,地图。 接下来需要考虑怎么把这些元素画出来?毫无疑问需要用到java中的gui技术。问题一:我们可以把蛇看成一个有多个节点组成的链表。这样就可以通过的加和减少链表中的节点数来控制蛇的长度动态的变化。问题

指针指指针 599

用java写的贪吃蛇小游戏

重新开始</button><button id="pause">暂停游戏

w789852123的专栏 267

java写小游戏_java写的贪吃蛇小游戏

游戏的主启动类importjavax.swing.*;//游戏的主启动类publicclassStarGame{publicstaticvoidmain(String[]args){JFramejFrame=newJFrame();jFrame.add(newGamePanel());//窗口的坐标与大小jFrame.setBounds(10,10,900,720);/...

weixin_36376765的博客 117

java写的贪吃蛇小游戏

贪吃蛇小游戏 游戏的主启动类 import javax.swing.*; //游戏的主启动类 public class StarGame { public static void main(String[] args) { JFrame jFrame = new JFrame(); jFrame.add(new GamePanel()); //窗口的坐标与大小 jFrame.setBounds(10,10,900,720);

weixin_45672607的博客 242

用Java写一个贪吃蛇小游戏

贪吃蛇是一款经典的俄罗斯方块游戏,可以用Java语言编写。下面是一个简单的实现: 首先,我们需要创建一个窗口,可以使用Java的 JFrame 和 JPanel 来实现。接着,我们需要实现贪吃蛇的移动,可以使用Java的 Thread 来实现。然后,我们需要实现吃食物的功能,当贪吃蛇的头碰到食物的位置时,可以增加贪吃蛇的长度。 最后,我们需要处理贪吃蛇碰到边界或者碰到自己的身体时的游戏结束的情况。...

weixin_42593549的博客 183

Java+AWT写的简易版《贪吃蛇》小游戏

小编今天又给大家带来福利了,java版《贪吃蛇》小游戏,相信所有人对这个游戏都不陌生把,但是真正的写出来,对于java初学者们来说,还是有点难度的。最近,小编在想,给大家写一点啥好玩的东西好呢?发现手机上面还有个《蛇蛇大作战》游戏,于是就突发奇想,不如写一个小小的《贪吃蛇》小游戏送给大家玩玩把,代码也一并送给在座的各位童鞋们,希望大家喜欢哦其实,我写这个小游戏,花的时间还比较短,下面就正式介绍下这...

小付同学的博客 1313

java怎么做贪吃蛇_有没有大佬知道怎么用java写一个贪吃蛇小游戏啊?

1. 实现效果:2. 游戏玩法该游戏用上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的尾巴,等到了一定的分数,就能过关,然后继续玩下一关。这次我们以一关的实现为例,关卡控制交给读者自行添加。3. 需求分析方向控制首先我们需要实现的是通过按键实现控制蛇的运动方向,需要注意的有3点:1.蛇运动的...

weixin_28988985的博客 213

贪吃蛇小游戏---手把手教你会你写贪吃蛇(java)第一期

> 总结---虽然现在swing编程很low了,但是该学习的地方还是有的--- > 1,要学会将外部对象导入到程序中并封装成相应的类 > 2,练习监听器的思想 > 3,检测自己学过的基础知识--数组,循环以及逻辑思维; > 4,重要的是游戏的开发思维---

Gavin 175
上一篇: poj推荐题目
下一篇: 递归深究
Geoooo
博客等级 码龄9年 41粉丝 39原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值