starting the GUI - grid

This commit is contained in:
Antonin Boyon 2021-04-06 12:22:46 +02:00
parent 1fc316b132
commit d0a517efe3
4 changed files with 38 additions and 17 deletions

View File

@ -13,7 +13,7 @@ public abstract class Player {
protected ArrayList<Ship> ships = new ArrayList<>(); protected ArrayList<Ship> ships = new ArrayList<>();
protected ArrayList<Triplet<Integer,Integer,Boolean>> moves = new ArrayList<>(); protected ArrayList<Triplet<Integer,Integer,Boolean>> moves = new ArrayList<>();
protected int id; protected int id;
protected final int[] bato = { 5, 4, 3, 3, 2}; protected final static int[] bato = { 5, 4, 3, 3, 2};
public boolean setShips(Ship ship){ public boolean setShips(Ship ship){
for(int i = 0; i < ship.getSize(); i++){ for(int i = 0; i < ship.getSize(); i++){
@ -92,7 +92,7 @@ public abstract class Player {
return id; return id;
} }
public void placeShipRandomly(Player player) { public static void placeShipRandomly(Player player) {
Random rand = new Random(); Random rand = new Random();
for(int i : bato) { for(int i : bato) {
Ship ship = null; Ship ship = null;

View File

@ -54,7 +54,7 @@ public class Terminal extends View {
} }
} else { } else {
// Random // Random
placeShipRandomly(player); Player.placeShipRandomly(player);
} }

View File

@ -7,6 +7,7 @@ import battleship.model.player.Player;
import battleship.utils.Pair; import battleship.utils.Pair;
import battleship.utils.Triplet; import battleship.utils.Triplet;
import java.awt.Graphics;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Random; import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
@ -23,17 +24,9 @@ public abstract class View {
public abstract void setShips(Player player); public abstract void setShips(Player player);
public abstract void displayBoard();
public void placeShipRandomly(Player player) { public abstract void displayBoard();
Random rand = new Random(); public abstract void displayBoard(Graphics g);
for(int i : ships) {
Ship ship = null;
while(ship == null || !player.setShips(ship)) {
ship = new Ship(new Pair<>(rand.nextInt(10), rand.nextInt(10)), i, Direction.values()[rand.nextInt(Direction.values().length)]);
}
}
}
@Override @Override
public String toString() { public String toString() {

View File

@ -3,18 +3,24 @@ package battleship.view;
import battleship.model.Game; import battleship.model.Game;
import battleship.model.player.Player; import battleship.model.player.Player;
import java.awt.Color;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import javax.swing.*; import javax.swing.*;
public class Window extends View { public class Window extends View {
private JFrame frame; private JFrame frame;
private final int hauteur = 750;
private final int largeur = 1250;
public Window(Game game) { public Window(Game game) {
super(game); super(game);
this.frame = new JFrame("Battleship"); this.frame = new JFrame("Battleship");
frame.setSize(600,400); frame.setSize(largeur,hauteur);
frame.setContentPane(new Draw());
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true); frame.setVisible(true);
} }
@ -25,11 +31,33 @@ public class Window extends View {
} }
@Override @Override
public void displayBoard() { public void displayBoard(Graphics g) {
}
class Draw extends JPanel {
public void paintComponent(Graphics g) {
/*JTextArea area = new JTextArea();
area.setBounds(20,10,400,20);
//area.append("A B C D E F G H I J");
frame.add(area);*/
//23 - 12
for (int i=100; i<largeur; i+=largeur/23) {
g.drawLine(i, largeur/12, i, largeur-(largeur/12));
if (i > (largeur / 23) * 10 && i < (largeur / 23) * 12 - (largeur/40)) i += largeur/23 ;
}
for (int j=100; j<hauteur; j+=hauteur/10) {
g.drawLine(hauteur/10, j, hauteur - (hauteur/10), j);
}
}
} }
public void designBoard(Graphics g) { public void designBoard(Graphics g) {
//super.paintComponent(g); frame.paintComponents(g);
}
@Override
public void displayBoard() {
// TODO Auto-generated method stub
} }
} }