用Java生成贪吃蛇代码,可以运行的
时间: 2023-05-10 20:56:07 浏览: 57
非常感谢您的提问!以下是一个简单的Java贪吃蛇代码,您可以在Java环境中运行它:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SnakeGame extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JPanel gamePanel;
private JLabel statusLabel;
private Timer timer;
private int delay = 100;
private int width = 300;
private int height = 300;
private int x = 0;
private int y = 0;
private int dx = 0;
private int dy = 0;
private int foodX = 0;
private int foodY = 0;
private int score = 0;
private boolean gameOver = false;
private boolean paused = false;
private boolean[][] snake = new boolean[width][height];
public SnakeGame() {
setTitle("Snake Game");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(width, height + 20);
setResizable(false);
gamePanel = new JPanel();
gamePanel.setBackground(Color.BLACK);
gamePanel.setLayout(null);
add(gamePanel);
statusLabel = new JLabel("Score: 0");
statusLabel.setForeground(Color.WHITE);
statusLabel.setBounds(10, height, 100, 20);
gamePanel.add(statusLabel);
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT && dx == 0) {
dx = -1;
dy = 0;
} else if (key == KeyEvent.VK_RIGHT && dx == 0) {
dx = 1;
dy = 0;
} else if (key == KeyEvent.VK_UP && dy == 0) {
dx = 0;
dy = -1;
} else if (key == KeyEvent.VK_DOWN && dy == 0) {
dx = 0;
dy = 1;
} else if (key == KeyEvent.VK_SPACE) {
paused = !paused;
}
}
});
timer = new Timer(delay, this);
timer.start();
}
public void actionPerformed(ActionEvent e) {
if (!paused) {
x += dx;
y += dy;
if (x < 0 || x >= width || y < 0 || y >= height) {
gameOver = true;
} else if (snake[x][y]) {
gameOver = true;
} else if (x == foodX && y == foodY) {
score++;
statusLabel.setText("Score: " + score);
foodX = (int) (Math.random() * width);
foodY = (int) (Math.random() * height);
}
snake[x][y] = true;
gamePanel.repaint();
}
}
public void paint(Graphics g) {
super.paint(g);
if (!gameOver) {
g.setColor(Color.RED);
g.fillRect(foodX, foodY, 10, 10);
g.setColor(Color.GREEN);
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
if (snake[i][j]) {
g.fillRect(i, j, 1, 1);
}
}
}
} else {
g.setColor(Color.WHITE);
g.drawString("Game Over!", width / 2 - 30, height / 2);
}
}
public static void main(String[] args) {
new SnakeGame().setVisible(true);
}
}
```
希望这个代码对您有所帮助!
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)