Skip to content

Menu feature for JavaCheckers #33

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,8 @@
/build
.gradle
/gameCache
JavaCheckers.jar
JavaCheckers.jar
.classpath
.project
.settings/
bin/
2 changes: 2 additions & 0 deletions src/main/java/pl/nogacz/checkers/Checkers.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import javafx.stage.Stage;
import pl.nogacz.checkers.application.Design;
import pl.nogacz.checkers.board.Board;
import pl.nogacz.checkers.application.Menu;

/**
* @author Dawid Nogacz on 17.05.2019
Expand All @@ -28,5 +29,6 @@ public void start(Stage primaryStage) {
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
Menu menu = new Menu(board);
}
}
80 changes: 80 additions & 0 deletions src/main/java/pl/nogacz/checkers/application/Menu.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package pl.nogacz.checkers.application;

import pl.nogacz.checkers.board.Board;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;

public class Menu extends JFrame implements ActionListener {
private static final int WIDTH = 500;
private static final int HEIGHT = 500;
private Board startBoard;
private JButton startGameButton = new JButton(Board.Commands.START.name());
private JButton quitButton = new JButton(Board.Commands.EXIT.name());
private boolean menuOpen;

public JButton getStartGameButton() {
return startGameButton;
}

public void setStartGameButton(JButton startGameButton) {
this.startGameButton = startGameButton;
}

public Board getStartBoard() {
return startBoard;
}

public boolean isMenuOpen() {
return menuOpen;
}

public void setStartBoard(Board startBoard) {
this.startBoard = startBoard;
}

public JButton getquitButton() {
return quitButton;
}

public void setQuitButton(JButton quitButton) {
this.quitButton = quitButton;
}

public Menu(Board board) {
super("Menu");
startBoard = board;
startBoard.setMenuActive(true);
menuOpen = true;
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setUndecorated(true);
this.setBackground(new Color(102, 51, 0, 200));
this.add(startGameButton);
this.add(quitButton);
startGameButton.setIcon(board.getImageIconForFileName("start-game.png"));
quitButton.setIcon(board.getImageIconForFileName("quit-game.png"));
startGameButton.setBounds(150, 125, 190, 50);
quitButton.setBounds(150, 300, 180, 50);
startGameButton.addActionListener(this);
quitButton.addActionListener(this);
setLocationRelativeTo(null);
setLayout(null);
setVisible(true);
}

@Override
public void actionPerformed(ActionEvent actionEvent) {
String command = actionEvent.getActionCommand();
if (command.equalsIgnoreCase(Board.Commands.START.name())) {
startBoard.setMenuActive(false);
menuOpen = false;
this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
} else if (command.equalsIgnoreCase(Board.Commands.EXIT.name())) {
System.exit(7777);
}
}
}
55 changes: 55 additions & 0 deletions src/main/java/pl/nogacz/checkers/application/RestartGame.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package pl.nogacz.checkers.application;

import pl.nogacz.checkers.board.Board;
import pl.nogacz.checkers.board.Coordinates;
import pl.nogacz.checkers.pawns.Pawn;
import pl.nogacz.checkers.pawns.PawnClass;
import pl.nogacz.checkers.pawns.PawnColor;
import javafx.application.Platform;
import java.util.Map;

public class RestartGame {
public static Design design;
public static Board board;
public Design testDesign;
public Board testBoard;

public RestartGame() {

}

public RestartGame(Board board,Design design){
this.design = design;
this.board = board;
this.testBoard = board;
this.testDesign = design;
}

public static void restartGame() {
Platform.runLater(() -> {
for (Map.Entry<Coordinates, PawnClass> entry : board.getBoard().entrySet()) {
design.removePawn(entry.getKey());
}
board.getBoard().clear();
for (int i = 1; i <= 7; i += 2) {
for (int j = 0; j <= 2; j += 2) {
board.getBoard().put(new Coordinates(i, j), new PawnClass(Pawn.PAWN, PawnColor.BLACK));
}
}
for (int i = 0; i <= 6; i += 2) {
board.getBoard().put(new Coordinates(i, 1), new PawnClass(Pawn.PAWN, PawnColor.BLACK));
}
for (int i = 0; i <= 6; i += 2) {
for (int j = 5; j <= 7; j += 2) {
board.getBoard().put(new Coordinates(i, j), new PawnClass(Pawn.PAWN, PawnColor.WHITE));
}
}
for (int i = 1; i <= 7; i += 2) {
board.getBoard().put(new Coordinates(i, 6), new PawnClass(Pawn.PAWN, PawnColor.WHITE));
}
for (Map.Entry<Coordinates, PawnClass> entry : board.getBoard().entrySet()) {
design.addPawn(entry.getKey(), entry.getValue());
}
});
}
}
Loading