code java territoire
🧩 Syntax:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
class Territory {
private int x;
private int y;
private int size;
private Color color;
public Territory(int x, int y, int size) {
this.x = x;
this.y = y;
this.size = size;
this.color = generateRandomColor();
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public int getSize() {
return size;
}
public Color getColor() {
return color;
}
public void setSize(int size) {
this.size = size;
}
public void setColor(Color color) {
this.color = color;
}
private Color generateRandomColor() {
Random random = new Random();
int r = random.nextInt(256);
int g = random.nextInt(256);
int b = random.nextInt(256);
return new Color(r, g, b);
}
}
class GamePanel extends JPanel implements KeyListener {
private static final long serialVersionUID = 1L;
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final int TERRITORY_SIZE = 20;
private List<Territory> territories;
private boolean[] keys;
public GamePanel() {
setPreferredSize(new java.awt.Dimension(WIDTH, HEIGHT));
setBackground(Color.WHITE);
setFocusable(true);
addKeyListener(this);
territories = new ArrayList<>();
keys = new boolean[256];
}
public void addTerritory(Territory territory) {
territories.add(territory);
}
public void updateTerritories() {
for (Territory territory : territories) {
if (keys[KeyEvent.VK_SPACE]) {
// Augmenter la taille des territoires lorsque la touche Espace est enfoncée
territory.setSize(territory.getSize() + 1);
}
}
}
public void drawTerritories(Graphics g) {
for (Territory territory : territories) {
int x = territory.getX();
int y = territory.getY();
int size = territory.getSize();
Color color = territory.getColor();
g.setColor(color);
g.fillRect(x, y, size, size);
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
drawTerritories(g);
}
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode >= 0 && keyCode < keys.length) {
keys[keyCode] = true;
}
}
@Override
public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode >= 0 && keyCode < keys.length) {
keys[keyCode] = false;
}
}
@Override
public void keyTyped(KeyEvent e) {
// Ne fait rien
}
}
public class TerritoryGame extends JFrame {
private static final long serialVersionUID = 1L;
private static final int NUM_TERRITORIES = 10;
private GamePanel gamePanel;
public TerritoryGame() {
setTitle("Jeu de territoire");
setDefaultCloseOperation(EXIT_ON_CLOSE);
gamePanel = new GamePanel();
add(gamePanel);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public void initializeTerritories() {
Random random = new Random();
for (int i = 0; i < NUM_TERRITORIES; i++) {
int x = random.nextInt(GamePanel.WIDTH - TERRITORY_SIZE);
int y = random.nextInt(GamePanel.HEIGHT - TERRITORY_SIZE);
int size = random.nextInt(50) + 10;
Territory territory = new Territory(x, y, size);
gamePanel.addTerritory(territory);
}
}
public void gameLoop() {
while (true) {
gamePanel.updateTerritories();
gamePanel.repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
TerritoryGame game = new TerritoryGame();
game.initializeTerritories();
game.gameLoop();
}
}