<> one . Engineering documents

<> two .Main.java
package com.company; import javax.swing.*; public class Main { public static
void main(String[] args) { // Create a form object JFrame frame = new JFrame(); // Create form parameters ()
frame.setBounds(10,10,900,720); // Setting does not allow size changes //frame.setResizable(false);
// Set closing mode frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Add topic logical framework frame.
add(new Mpanel()); // Set form visible frame.setVisible(true); } }
<> three .Mpanel.java
package com.company; import javax.imageio.ImageIO; import javax.sound.sampled.*
; 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.io.BufferedInputStream; import java.io.
IOException; import java.io.InputStream; import java.util.Random;
// Basic Routine , inherit JPanel, realization KeyListener, ActionListener Interface public class Mpanel extends
JPanel implements KeyListener, ActionListener { // Define the required picture elements // title ImageIcon
title; // Body parts of snakes ImageIcon body; // Snake's head up ImageIcon up; // Snake's head down ImageIcon down
; // Snake's head to the left ImageIcon left; // Snake's head to the right ImageIcon right; // Food elements ImageIcon food;
// Define initial length int len = 3; // Define initial score int score = 0; // An array for storing the position coordinates of snakes int[] snakex = new
int[750]; int[] snakey = new int[750]; // Define direction String fx = "R"; // Define whether the game starts or not
Boolean isStart= false; // Define whether the game fails or not Boolean isFailed = false;
// Defining the game clock , Here you can set the speed of the snake , default 100ms Timer timer = new Timer(100,this); // Define the coordinates of the food int
foodx; int foody; // Introducing random numbers , Random positions used to generate food Random random = new Random(); // Defining background music
Clip bgm; // Construction method public Mpanel(){ // Loading picture elements loadImages(); // Initialization data initSnake();
// Set focus this.setFocusable(true); // Set keyboard monitoring this.addKeyListener(this); // Time starts timer
.start(); // Loading background music loadBGM(); } // Set drawing elements public void paintComponent(Graphics g){
// Call parent class method super.paintComponent(g); // Set the background color to white this.setBackground(Color.white);
// Set title element location title.paintIcon(this,g,25,11); // Set white background fill position g.fillRect(25,75,850,600)
; // Set the brush color to white g.setColor(Color.white); // Set length display g.drawString("Len: " + len,750,
35); // Set score display g.drawString("Score: " + score,750,50); // Call the corresponding snakehead element according to the direction if(fx ==
"R"){ right.paintIcon(this,g,snakex[0],snakey[0]); } else if(fx == "L"){ left.
paintIcon(this,g,snakex[0],snakey[0]); } else if(fx == "U"){ up.paintIcon(this,g
,snakex[0],snakey[0]); } else if(fx == "D"){ down.paintIcon(this,g,snakex[0],
snakey[0]); } for(int i=1;i<len;i++){ body.paintIcon(this,g,snakex[i],snakey[i])
; } // Call food element food.paintIcon(this,g,foodx,foody); // How to deal with the beginning of the game if(isStart == false){
// Set brush color g.setColor(Color.white); // Set font g.setFont(new Font("arial",Font.BOLD,40
)); // Set specific text g.drawString("Press Space To Start",250,300); } // How to deal with the game failure if(
isFailed){ // Set brush color g.setColor(Color.red); // Set font g.setFont(new Font("arial",
Font.BOLD,40)); // Set specific text g.drawString("Failed: Press Space To Start",250,300); }
} // Initialization data public void initSnake(){ len = 3; snakex[0] = 100; snakey[0] = 100;
snakex[1] = 75; snakey[1] = 100; snakex[2] = 50; snakey[2] = 100;
// Set the initial randomly generated position of the food foodx = 25 + 25 * random.nextInt(34); foody = 75 + 25 * random.
nextInt(24); // Set initial value fx = "R"; score = 0; } // Implementation of interface requirements @Override public void
keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { // Get keyboard monitor
int keyCode = e.getKeyCode(); // Space if(keyCode == KeyEvent.VK_SPACE){ // If it fails, reset the information
if(isFailed){ isFailed = !isFailed; // restart initSnake(); } // Set start else { isStart
= !isStart; } // After judging the start, loop back the background music if(isStart){ bgm.loop(Clip.LOOP_CONTINUOUSLY); }
// No background music will be played before start and pause else { bgm.stop(); } // Redraw repaint(); } // Right click processing and set not to go back else if(
keyCode== KeyEvent.VK_LEFT && fx != "R"){ fx = "L"; } // Left key else if(keyCode ==
KeyEvent.VK_RIGHT && fx != "L"){ fx = "R"; } // Up key else if(keyCode == KeyEvent.
VK_UP&& fx != "D"){ fx = "U"; } // Next key else if(keyCode == KeyEvent.VK_DOWN && fx
!= "U"){ fx = "D"; } } // Implementation of interface requirements @Override public void keyReleased(KeyEvent e)
{ } // event listeners @Override public void actionPerformed(ActionEvent e) { // Start without failure
if(isStart && !isFailed){ // Move the snake in a circle for(int i=len-1;i>0;i--){ snakex[i]=snakex[i-
1]; snakey[i]=snakey[i-1]; } // Move to the right and judge if it hit the wall , Hitting the wall is a failure if(fx == "R"){ snakex[0]=snakex
[0]+25; if(snakex[0]>825)isFailed=true; } // Move to the left and judge if it hit the wall , Hitting the wall is a failure else if(fx == "L")
{ snakex[0]=snakex[0]-25; if(snakex[0]<50)isFailed=true; } // Move up and judge if it hit the wall , Hitting the wall is a failure
else if(fx == "U"){ snakey[0]=snakey[0]-25; if(snakey[0]<100)isFailed=true; }
// Move down and judge if it hit the wall , Hitting the wall is a failure else if(fx == "D"){ snakey[0]=snakey[0]+25; if(snakey[0]>625
)isFailed=true; } // The judgment of eating food if(snakex[0]==foodx&&snakey[0]==foody){
// Body lengthening , More points , And randomly generate new foods len++; score += 10; foodx = 25 + 25 * random.nextInt(34);
foody= 75 + 25 * random.nextInt(24); } // How to deal with the collision for(int i=1;i<len;i++){ if(
snakex[i]==snakex[0] && snakey[i]==snakey[0]){ isFailed = true; } } // Redraw
repaint(); } // Event refresh timer.start(); } // Loading background music public void loadBGM(){ try {
// Import from the file where the class is located bgm = AudioSystem.getClip(); InputStream is = this.getClass().
getClassLoader().getResourceAsStream("com/company/sound/bgm.wav");
AudioInputStream ais= AudioSystem.getAudioInputStream(new BufferedInputStream(is
)); bgm.open(ais); //bgm.loop(Clip.LOOP_CONTINUOUSLY); } // Corresponding exception handling catch (
LineUnavailableException e) { e.printStackTrace(); } catch (
UnsupportedAudioFileException e) { e.printStackTrace(); } catch (IOException e)
{ e.printStackTrace(); } } // Load picture public void loadImages(){ InputStream is; try
{ // Add response elements in turn is = getClass().getClassLoader().getResourceAsStream(
"com/company/img/title.jpg"); title = new ImageIcon(ImageIO.read(is)); is =
getClass().getClassLoader().getResourceAsStream("com/company/img/body.png");
body= new ImageIcon(ImageIO.read(is)); is = getClass().getClassLoader().
getResourceAsStream("com/company/img/up.png"); up = new ImageIcon(ImageIO.read(
is)); is = getClass().getClassLoader().getResourceAsStream(
"com/company/img/down.png"); down = new ImageIcon(ImageIO.read(is)); is =
getClass().getClassLoader().getResourceAsStream("com/company/img/left.png");
left= new ImageIcon(ImageIO.read(is)); is = getClass().getClassLoader().
getResourceAsStream("com/company/img/right.png"); right = new ImageIcon(ImageIO.
read(is)); is = getClass().getClassLoader().getResourceAsStream(
"com/company/img/food.png"); food = new ImageIcon(ImageIO.read(is)); } catch (
IOException e) { e.printStackTrace(); } } }
<> four . effect

Technology
©2020 ioDraw All rights reserved
0.96OLED display -4 Line SPI explain C++11 of std::function,std::bind,std::placeholdersJavaScript study ( Function declaration and parameters )QTabWidget Style sheet settings The project passed idea Package and publish to tomcat The server postman Interface test get timestamp and MD5 encryption react Background management configuration route and sidebar :python Simple game code -10 Minutes Python Write a snake game , simple You know? Python What does the foundation include ? Learn something ?10 individual Python Introduction to crawler