Question: In this code when I select the menu item of new game I want it to delete the current game board and repaint new gameboard

In this code when I select the menu item of new game I want it to delete the current game board and repaint new gameboard tiles. how is this down ?

import java.awt.*;

import java.util.Collections;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Random;

import java.awt.*;

import java.awt.event.*;

import javax.imageio.ImageIO;

import javax.swing.*;

import MahJongTest.TestPanel;

import javax.swing.*;

public class MahJongTest extends JFrame {

public boolean restartIt= false;

int gameSeed;

public boolean sound, tournament;

JMenuItem soundItem, tournamentItem, undo, reset, load, redo;

private final int X_AXIS = 15,

Y_AXIS = 8,

Z_AXIS = 5,

TOTAL_TILES = 144;

ArrayList tiles = new ArrayList();

Tile[][][] board = new Tile[5][15][8];

ArrayList removed = new ArrayList();

ArrayList lastGame = new ArrayList();

private Tile first = null; // first image in swapping pair

private Tile second = null;

Tile selected;

TestPanel panel,panel2;

public MahJongTest() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(1200, 800);

panel = new TestPanel();

add(panel);

this.remove(add(panel));

//this.remove(new TestPanel());

this.revalidate();

this.repaint();

//Menu

JMenuBar menu = new JMenuBar();

setJMenuBar(menu);

//Main item

JMenu game = new JMenu("Game");

menu.add(game);

//New Game

JMenuItem newGame = new JMenuItem("New Game");

newGame.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

int confirm = JOptionPane.showConfirmDialog(null,

"Start a new game (discards this one)?",

"Message",

JOptionPane.YES_NO_OPTION);

if(confirm == 0){

//OK

remove(panel);

// add(panel);

repaint();

revalidate();

add(new TestPanel());

}

}

});

game.add(newGame);

setVisible(true);

}

private void newGame(){

remove(panel);

panel = new TestPanel();

add(panel);

repaint();

}

@SuppressWarnings("unchecked")

public void MahJongModel(){

if(restartIt)

{

restartGame();

}else {

restartIt = false;

//initiate tiles

for(int i = 0; i

tiles.add(new Bamboo1Tile());

tiles.add(new CharacterTile(Character.forDigit(1, 10)));

tiles.add(new CircleTile(1));

for(int j = 2; j

tiles.add(new CharacterTile(Character.forDigit(j, 10)));

tiles.add(new CircleTile(j));

tiles.add(new BambooTile(j));

}

tiles.add(new CharacterTile('N'));

tiles.add(new CharacterTile('E'));

tiles.add(new CharacterTile('W'));

tiles.add(new CharacterTile('S'));

tiles.add(new CharacterTile('C'));

tiles.add(new CharacterTile('F'));

tiles.add(new WhiteDragonTile());

}

tiles.add(new FlowerTile("Chrysanthemum"));

tiles.add(new FlowerTile("Orchid"));

tiles.add(new FlowerTile("Plum"));

tiles.add(new FlowerTile("Bamboo"));

tiles.add(new SeasonTile("Spring"));

tiles.add(new SeasonTile("Summer"));

tiles.add(new SeasonTile("Fall"));

tiles.add(new SeasonTile("Winter"));

Collections.shuffle(tiles);

lastGame = (ArrayList) tiles.clone();

//Collections.copy(lastGame, tiles);

//place tiles

//layer 0, row 0

for(int i = 1; i

positionTile(tiles.remove(0), 0, i, 0);

}

//layer 0, row 1

for(int i = 3; i

positionTile(tiles.remove(0), 0, i, 1);

}

//layer 0, row 2

for(int i = 2; i

positionTile(tiles.remove(0), 0, i, 2);

}

//layer 0, row 3

for(int i = 1; i

positionTile(tiles.remove(0), 0, i, 3);

}

//layer 0, row 4

for(int i = 0; i

positionTile(tiles.remove(0), 0, i, 4);

}

//layer 0, row 5

for(int i = 2; i

positionTile(tiles.remove(0), 0, i, 5);

}

//layer 0, row 6

for(int i = 3; i

positionTile(tiles.remove(0), 0, i, 6);

}

//layer 0, row 7

for(int i = 1; i

positionTile(tiles.remove(0), 0, i, 7);

}

//layer 1

for(int i = 1; i

for(int j = 4; j

positionTile(tiles.remove(0), 1, j, i);

}

}

//layer 2

for(int i = 2; i

for(int j = 5; j

positionTile(tiles.remove(0), 2, j, i);

}

}

//layer 3

for(int i = 3; i

for(int j = 6; j

positionTile(tiles.remove(0), 3, j, i);

}

}

//layer 4

positionTile(tiles.remove(0), 4, 7, 4);

}

}

public void positionTile(Tile t, int z, int x, int y){

board[z][x][y] = t;

t.setPosition(x, y, z);

}

public boolean isTileOpen(Tile t){

return (onTop(t) && (openRight(t) || openLeft(t)));

}

Tile getTile(int z, int x, int y){

return board[z][x][y];

}

public void removeTile(Tile t){

int z = t.z;

int x = t.x;

int y = t.y;

removed.add(board[z][x][y]);

board[z][x][y] = null;

}

public boolean openUp(Tile t){

int z = t.z;

int x = t.x;

int y = t.y;

if(z == 4)

return true;

if(board[z + 1][x][y] == null)

return true;

return false;

}

public boolean openRight(Tile t){

int z = t.z;

int x = t.x;

int y = t.y;

if(z == 4)

return true;

if(x == 14)

return true;

if(z == 0){

if(x == 0){

if(board[0][1][4] == null && board[0][1][3] == null)

return true;

else

return false;

}

if(x == 12 && y == 4){

if(board[0][13][3] == null)

return true;

else

return false;

}

}

if(board[z][x + 1][y] == null)

return true;

return false;

}

public boolean openLeft(Tile t){

int z = t.z;

int x = t.x;

int y = t.y;

if(z == 4)

return true;

if(x == 0)

return true;

if (z == 0){

if (x == 1 && y == 3){

if (board[0][0][4] == null)

return true;

else

return false;

}

}

if(board[z][x - 1][y] == null)

return true;

return false;

}

public boolean onTop(Tile t){

int z = t.z;

int x = t.x;

int y = t.y;

if(z == 4)

return true;

if(z == 3){

if(board[4][7][4] == null)

return true;

else

return false;

}

if(board[z + 1][x][y] == null)

return true;

return false;

}

public void restartGame(){

//initiate tiles

//place tiles

//layer 0, row 0

for(int i = 1; i

positionTile(lastGame.remove(0), 0, i, 0);

}

//layer 0, row 1

for(int i = 3; i

positionTile(lastGame.remove(0), 0, i, 1);

}

//layer 0, row 2

for(int i = 2; i

positionTile(lastGame.remove(0), 0, i, 2);

}

//layer 0, row 3

for(int i = 1; i

positionTile(lastGame.remove(0), 0, i, 3);

}

//layer 0, row 4

for(int i = 0; i

positionTile(lastGame.remove(0), 0, i, 4);

}

//layer 0, row 5

for(int i = 2; i

positionTile(lastGame.remove(0), 0, i, 5);

}

//layer 0, row 6

for(int i = 3; i

positionTile(lastGame.remove(0), 0, i, 6);

}

//layer 0, row 7

for(int i = 1; i

positionTile(lastGame.remove(0), 0, i, 7);

}

//layer 1

for(int i = 1; i

for(int j = 4; j

positionTile(lastGame.remove(0), 1, j, i);

}

}

//layer 2

for(int i = 2; i

for(int j = 5; j

positionTile(lastGame.remove(0), 2, j, i);

}

}

//layer 3

for(int i = 3; i

for(int j = 6; j

positionTile(lastGame.remove(0), 3, j, i);

}

}

//layer 4

positionTile(lastGame.remove(0), 4, 7, 4);

}

public void drawTiles(){

for(int z = 4; z >= 0; z--){

for(int y = 7; y >= 0; y--){

for(int x = 0; x

if (board[z][x][y] != null){

Tile t = board[z][x][y];

t.setLocation(x * 70 + z * 20 + 76, y * 70 - z * 20 + 20);

if (x == 0 && z == 0){

t.setLocation(x * 70 + 76, (y * 70) - 38 + 20);

}

if(x == 14 && z == 0){

t.setLocation(x * 70 + 76, (y * 70) + 38 + 20);

}

if(x == 13 && z == 0){

t.setLocation(x * 70 + 76, (y * 70) + 38 + 20);

}

if(z == 4){

t.setLocation(x * 70 + z * 20 - 38 + 76, y * 70 - z * 20 - 38 + 20);

}

t.addMouseListener(new MouseListener() {

public void mousePressed(MouseEvent e) {

Tile tile = (Tile)e.getSource();

if(isTileOpen(tile)){

if(selected == null){

selected = tile;

selected.selected = true;

}

else if(tile.x == selected.x &&

tile.y == selected.y &&

tile.z == selected.z){

selected.selected = false;

selected = null;

}

else if(tile.matches(selected)){

selected.selected = false;

removeTile(tile);

remove(tile);

removeTile(selected);

remove(selected);

selected = null;

}

else {

selected.selected = false;

selected = null;

}

}

repaint();

}

@Override

public void mouseClicked(MouseEvent e) {}

@Override

public void mouseEntered(MouseEvent e) {}

@Override

public void mouseExited(MouseEvent e) {}

@Override

public void mouseReleased(MouseEvent e) {}

});

add(t);

}

}

}

}

repaint();

}

public class TestPanel extends JPanel

{

public TestPanel()

{

//setLayout(null); // requires a setSize in Tile!!!!!!!!!!!

MahJongModel();

drawTiles();

}

}

public static void main(String[] args) {

new MahJongTest();

}

}

 In this code when I select the menu item of new

t1 Circle 5 ?1? t1 Circle 5 ?1

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!