Loading jeuAssemblage/maps.tetriste +7 −1 Changes for jeuAssemblage/maps.tetriste: 7 added lines, 1 removed line. Original line number Diff line number Diff line 0;0;0;0;shesh10;10 10;10;3;0;shesh10;10 15;12;7;7950305377179271168;Jean;143 10;14;6;1270873474421636096;Nul;96 13;11;7;493101277235170304;Test;77 14;12;7;5761360446297763840;zdqzd;117 15;13;7;5544433734978013184;Shesh;121 17;15;9;8065871849407982592;Test;224 jeuAssemblage/src/model/PlayBoard.java +3 −2 Changes for jeuAssemblage/src/model/PlayBoard.java: 3 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -458,6 +458,7 @@ public class PlayBoard extends AbstractListenableHM implements Listener, IPlayBo } public Map<Integer, Piece> getPieces() { return new HashMap<>(piecesMap); } public int getPiecesCount() { return this.piecesMap.size(); } public Point getLowerRightPieceCorner() { return new Point(getUpperPieceX(), getUpperPieceY()); } public Point getUpperLeftPieceCorner() { return new Point(getLowerPieceX(), getLowerPieceY()); } Loading @@ -472,11 +473,11 @@ public class PlayBoard extends AbstractListenableHM implements Listener, IPlayBo public int getBoardHeight() { return this.board.length; } public int[][] getBoardArray() { return this.board.clone(); } public int getWidth() { return this.sizeX; } public int getHeight() { return this.sizeY; } public long getSeed() { return this.seed; } // ----------------- // STATIC METHODS Loading jeuAssemblage/src/model/arrangement/Arrangement.java +5 −4 Changes for jeuAssemblage/src/model/arrangement/Arrangement.java: 5 added lines, 4 removed lines. Original line number Diff line number Diff line package model.arrangement; public class Arrangement { private int sizeX; private int sizeY; private int pieceCount; private long seed; protected int sizeX; protected int sizeY; protected int pieceCount; protected long seed; protected String username; protected int score; Loading jeuAssemblage/src/model/arrangement/ArrangementList.java +107 −3 Changes for jeuAssemblage/src/model/arrangement/ArrangementList.java: 107 added lines, 3 removed lines. Original line number Diff line number Diff line package model.arrangement; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; import model.PlayBoard; import javax.swing.table.AbstractTableModel; import java.util.List; import java.util.ArrayList; import java.util.Scanner; Loading @@ -9,15 +17,98 @@ import java.io.*; import java.nio.file.Path; import java.nio.file.Paths; public class ArrangementList { public class ArrangementList implements TableModel { private static List<Arrangement> arrangements; private static String[] headersName; static { arrangements = ArrangementList.getArrangementList(); headersName = new String[] { "X", "Y", "NB PIECE", "SEED", "USERNAME", "SCORE" }; } private List<TableModelListener> listeners; public ArrangementList() { this.listeners = new ArrayList<TableModelListener>(); } // tableModel Methods @Override public int getRowCount() { return ArrangementList.arrangements.size(); } @Override public int getColumnCount() { return headersName.length; } @Override public String getColumnName(int columnIndex) { return headersName[columnIndex]; } @Override public Class<?> getColumnClass(int columnIndex) { if (this.getRowCount() == 0) return Object.class; static { return this.getValueAt(0, columnIndex).getClass(); } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } @Override public Object getValueAt(int rowIndex, int columnIndex) { Object val = "No"; Arrangement selected = arrangements.get(rowIndex); switch (columnIndex) { case 0 -> val = selected.sizeX; case 1 -> val = selected.sizeY; case 2 -> val = selected.pieceCount; case 3 -> val = selected.seed; case 4 -> val = selected.username; case 5 -> val = selected.score; } return val; } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { ArrangementList.arrangements = ArrangementList.getArrangementList(); throw new IllegalStateException("Impossible"); } @Override public void addTableModelListener(TableModelListener l) { this.listeners.add(l); } @Override public void removeTableModelListener(TableModelListener l) { this.listeners.remove(l); } // Static methods public static List<Arrangement> getArrangements() { return ArrangementList.arrangements; Loading @@ -41,6 +132,19 @@ public class ArrangementList { } public static void addArrangement(PlayBoard playboard, String name) { addArrangement( new Arrangement( playboard.getBoardWidth(), playboard.getBoardHeight(), playboard.getPiecesCount(), playboard.getSeed(), name, playboard.getArea() ) ); } private static Arrangement exist(Arrangement arrangement) { for (Arrangement a : ArrangementList.arrangements) { Loading jeuAssemblage/src/view/screen/SoloGameCreation.java +41 −8 Changes for jeuAssemblage/src/view/screen/SoloGameCreation.java: 41 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -2,18 +2,12 @@ package view.screen; import static view.utils.SwingUtils.*; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.JTextField; import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.JCheckBox; import javax.swing.SpinnerNumberModel; import model.PlayBoard; import model.SeedUtils; import model.arrangement.ArrangementList; import utils.EDifficulty; import view.MainFrame; import view.component.Separator; Loading Loading @@ -44,6 +38,10 @@ public class SoloGameCreation extends JPanel { private final JLabel lblDifficulty = new JLabel("Difficulté :"); private final JList<String> difficultyList = new JList<String>(EDifficulty.getDifficultysName()); private final JLabel lblArrangement = new JLabel("Parties Enregistrées :"); private final JTable tableArrangement = new JTable(new ArrangementList()); private final JScrollPane scrollArrangement = new JScrollPane(tableArrangement); protected final JSpinner nbMinutesSpinner = new JSpinner(new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1)); private final JSpinner nbSecondsSpinner = new JSpinner(new SpinnerNumberModel(0, -1, 60, 1)); private final JCheckBox timeLimitCheckBox = new JCheckBox("Temps limité"); Loading Loading @@ -88,6 +86,9 @@ public class SoloGameCreation extends JPanel { this.add(nbSecondsSpinner); this.add(timeLimitCheckBox); this.add(lblArrangement); this.add(scrollArrangement); this.add(gridPreview); this.add(btnPlay); Loading Loading @@ -161,6 +162,11 @@ public class SoloGameCreation extends JPanel { } }); tableArrangement.getSelectionModel().addListSelectionListener(e->{ if (e.getValueIsAdjusting()) return; SoloGameCreation.this.setParams(tableArrangement.getSelectedRow()); }); updateGridPreview(); revalidate(); Loading Loading @@ -275,6 +281,20 @@ public class SoloGameCreation extends JPanel { BTN_CANCEL_HEIGHT * 3 ); lblArrangement.setBounds( PADDING_LEFT, difficultyList.getY() + difficultyList.getHeight() + BTN_CANCEL_HEIGHT, LBL_WIDTH, BTN_CANCEL_HEIGHT ); scrollArrangement.setBounds( PADDING_LEFT, difficultyList.getY() + difficultyList.getHeight() + BTN_CANCEL_HEIGHT * 2, getWidthTimesPourcent(this, .35f), BTN_CANCEL_HEIGHT * 3 ); nbMinutesSpinner.setBounds( PADDING_LEFT + getWidthTimesPourcent(this, .3f), PADDING_TOP_LBL_SEED + BTN_CANCEL_HEIGHT * 7, Loading Loading @@ -323,6 +343,19 @@ public class SoloGameCreation extends JPanel { nbPiecesSpinner.setValue(PlayBoard.getPiecesCountBySeedAndDifficulty(seed, difficulty)); } private void setParams(int index) { int sizeX = (Integer) this.tableArrangement.getValueAt(index, 0); int sizeY = (Integer) this.tableArrangement.getValueAt(index, 1); int pieceCount = (Integer) this.tableArrangement.getValueAt(index, 2); long seed = (Long) this.tableArrangement.getValueAt(index, 3); this.txtSeed.setText(seed + ""); this.txtSizeX.setText(sizeX + ""); this.txtSizeY.setText(sizeY + ""); this.nbPiecesSpinner.setValue(pieceCount); } private void updateGridPreview() { JPanel temp = null; Loading Loading
jeuAssemblage/maps.tetriste +7 −1 Changes for jeuAssemblage/maps.tetriste: 7 added lines, 1 removed line. Original line number Diff line number Diff line 0;0;0;0;shesh10;10 10;10;3;0;shesh10;10 15;12;7;7950305377179271168;Jean;143 10;14;6;1270873474421636096;Nul;96 13;11;7;493101277235170304;Test;77 14;12;7;5761360446297763840;zdqzd;117 15;13;7;5544433734978013184;Shesh;121 17;15;9;8065871849407982592;Test;224
jeuAssemblage/src/model/PlayBoard.java +3 −2 Changes for jeuAssemblage/src/model/PlayBoard.java: 3 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -458,6 +458,7 @@ public class PlayBoard extends AbstractListenableHM implements Listener, IPlayBo } public Map<Integer, Piece> getPieces() { return new HashMap<>(piecesMap); } public int getPiecesCount() { return this.piecesMap.size(); } public Point getLowerRightPieceCorner() { return new Point(getUpperPieceX(), getUpperPieceY()); } public Point getUpperLeftPieceCorner() { return new Point(getLowerPieceX(), getLowerPieceY()); } Loading @@ -472,11 +473,11 @@ public class PlayBoard extends AbstractListenableHM implements Listener, IPlayBo public int getBoardHeight() { return this.board.length; } public int[][] getBoardArray() { return this.board.clone(); } public int getWidth() { return this.sizeX; } public int getHeight() { return this.sizeY; } public long getSeed() { return this.seed; } // ----------------- // STATIC METHODS Loading
jeuAssemblage/src/model/arrangement/Arrangement.java +5 −4 Changes for jeuAssemblage/src/model/arrangement/Arrangement.java: 5 added lines, 4 removed lines. Original line number Diff line number Diff line package model.arrangement; public class Arrangement { private int sizeX; private int sizeY; private int pieceCount; private long seed; protected int sizeX; protected int sizeY; protected int pieceCount; protected long seed; protected String username; protected int score; Loading
jeuAssemblage/src/model/arrangement/ArrangementList.java +107 −3 Changes for jeuAssemblage/src/model/arrangement/ArrangementList.java: 107 added lines, 3 removed lines. Original line number Diff line number Diff line package model.arrangement; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; import model.PlayBoard; import javax.swing.table.AbstractTableModel; import java.util.List; import java.util.ArrayList; import java.util.Scanner; Loading @@ -9,15 +17,98 @@ import java.io.*; import java.nio.file.Path; import java.nio.file.Paths; public class ArrangementList { public class ArrangementList implements TableModel { private static List<Arrangement> arrangements; private static String[] headersName; static { arrangements = ArrangementList.getArrangementList(); headersName = new String[] { "X", "Y", "NB PIECE", "SEED", "USERNAME", "SCORE" }; } private List<TableModelListener> listeners; public ArrangementList() { this.listeners = new ArrayList<TableModelListener>(); } // tableModel Methods @Override public int getRowCount() { return ArrangementList.arrangements.size(); } @Override public int getColumnCount() { return headersName.length; } @Override public String getColumnName(int columnIndex) { return headersName[columnIndex]; } @Override public Class<?> getColumnClass(int columnIndex) { if (this.getRowCount() == 0) return Object.class; static { return this.getValueAt(0, columnIndex).getClass(); } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } @Override public Object getValueAt(int rowIndex, int columnIndex) { Object val = "No"; Arrangement selected = arrangements.get(rowIndex); switch (columnIndex) { case 0 -> val = selected.sizeX; case 1 -> val = selected.sizeY; case 2 -> val = selected.pieceCount; case 3 -> val = selected.seed; case 4 -> val = selected.username; case 5 -> val = selected.score; } return val; } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { ArrangementList.arrangements = ArrangementList.getArrangementList(); throw new IllegalStateException("Impossible"); } @Override public void addTableModelListener(TableModelListener l) { this.listeners.add(l); } @Override public void removeTableModelListener(TableModelListener l) { this.listeners.remove(l); } // Static methods public static List<Arrangement> getArrangements() { return ArrangementList.arrangements; Loading @@ -41,6 +132,19 @@ public class ArrangementList { } public static void addArrangement(PlayBoard playboard, String name) { addArrangement( new Arrangement( playboard.getBoardWidth(), playboard.getBoardHeight(), playboard.getPiecesCount(), playboard.getSeed(), name, playboard.getArea() ) ); } private static Arrangement exist(Arrangement arrangement) { for (Arrangement a : ArrangementList.arrangements) { Loading
jeuAssemblage/src/view/screen/SoloGameCreation.java +41 −8 Changes for jeuAssemblage/src/view/screen/SoloGameCreation.java: 41 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -2,18 +2,12 @@ package view.screen; import static view.utils.SwingUtils.*; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.JTextField; import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.JCheckBox; import javax.swing.SpinnerNumberModel; import model.PlayBoard; import model.SeedUtils; import model.arrangement.ArrangementList; import utils.EDifficulty; import view.MainFrame; import view.component.Separator; Loading Loading @@ -44,6 +38,10 @@ public class SoloGameCreation extends JPanel { private final JLabel lblDifficulty = new JLabel("Difficulté :"); private final JList<String> difficultyList = new JList<String>(EDifficulty.getDifficultysName()); private final JLabel lblArrangement = new JLabel("Parties Enregistrées :"); private final JTable tableArrangement = new JTable(new ArrangementList()); private final JScrollPane scrollArrangement = new JScrollPane(tableArrangement); protected final JSpinner nbMinutesSpinner = new JSpinner(new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1)); private final JSpinner nbSecondsSpinner = new JSpinner(new SpinnerNumberModel(0, -1, 60, 1)); private final JCheckBox timeLimitCheckBox = new JCheckBox("Temps limité"); Loading Loading @@ -88,6 +86,9 @@ public class SoloGameCreation extends JPanel { this.add(nbSecondsSpinner); this.add(timeLimitCheckBox); this.add(lblArrangement); this.add(scrollArrangement); this.add(gridPreview); this.add(btnPlay); Loading Loading @@ -161,6 +162,11 @@ public class SoloGameCreation extends JPanel { } }); tableArrangement.getSelectionModel().addListSelectionListener(e->{ if (e.getValueIsAdjusting()) return; SoloGameCreation.this.setParams(tableArrangement.getSelectedRow()); }); updateGridPreview(); revalidate(); Loading Loading @@ -275,6 +281,20 @@ public class SoloGameCreation extends JPanel { BTN_CANCEL_HEIGHT * 3 ); lblArrangement.setBounds( PADDING_LEFT, difficultyList.getY() + difficultyList.getHeight() + BTN_CANCEL_HEIGHT, LBL_WIDTH, BTN_CANCEL_HEIGHT ); scrollArrangement.setBounds( PADDING_LEFT, difficultyList.getY() + difficultyList.getHeight() + BTN_CANCEL_HEIGHT * 2, getWidthTimesPourcent(this, .35f), BTN_CANCEL_HEIGHT * 3 ); nbMinutesSpinner.setBounds( PADDING_LEFT + getWidthTimesPourcent(this, .3f), PADDING_TOP_LBL_SEED + BTN_CANCEL_HEIGHT * 7, Loading Loading @@ -323,6 +343,19 @@ public class SoloGameCreation extends JPanel { nbPiecesSpinner.setValue(PlayBoard.getPiecesCountBySeedAndDifficulty(seed, difficulty)); } private void setParams(int index) { int sizeX = (Integer) this.tableArrangement.getValueAt(index, 0); int sizeY = (Integer) this.tableArrangement.getValueAt(index, 1); int pieceCount = (Integer) this.tableArrangement.getValueAt(index, 2); long seed = (Long) this.tableArrangement.getValueAt(index, 3); this.txtSeed.setText(seed + ""); this.txtSizeX.setText(sizeX + ""); this.txtSizeY.setText(sizeY + ""); this.nbPiecesSpinner.setValue(pieceCount); } private void updateGridPreview() { JPanel temp = null; Loading