Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package battelships;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.util.Arrays;
- import javax.swing.JFrame;
- public class Game2 extends Canvas {
- final static int DIM = 5;
- final static int TRIES = 5;
- static int tryCount = TRIES;
- static int hitCount = 0;
- static int[] ships = { 2, 4, 6, 8, 12 }; // sorted!
- static Color[][] state = { //
- { null, null, null, null, null }, //
- { null, null, null, null, null }, //
- { null, null, null, null, null }, //
- { null, null, null, null, null }, //
- { null, null, null, null, null } };
- private static void resetGame() {
- tryCount = TRIES;
- hitCount = 0;
- for (int p = 0; p < DIM * DIM; ++p) {
- state[p % DIM][p / DIM] = null;
- }
- }
- public static void main(String[] args) {
- JFrame f = new JFrame("Battleships");
- Canvas c = new Game2();
- c.setSize(500, 500);
- c.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- int x = e.getX() / 100;
- int y = e.getY() / 100;
- if (Arrays.binarySearch(ships, y * DIM + x) < 0) {
- state[x][y] = Color.BLACK;
- } else {
- state[x][y] = Color.RED;
- ++hitCount;
- }
- if (--tryCount == 0) {
- System.out.println((hitCount == ships.length ? "Gewonnen" : "Game Over") + "!");
- resetGame();
- }
- c.repaint();
- }
- });
- f.add(c);
- f.pack();
- f.setVisible(true);
- }
- @Override
- public void paint(Graphics g) {
- for (int p = 0; p < DIM * DIM; ++p) {
- int x = p % DIM;
- int y = p / DIM;
- Color cbColor = p % 2 == 0 ? Color.GRAY : Color.DARK_GRAY;
- g.setColor(state[x][y] == null ? cbColor : state[x][y]);
- g.fillRect(x * 100, y * 100, 100, 100);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment