init commit
This commit is contained in:
parent
d7e66da0bd
commit
74ef472dd4
83 changed files with 800 additions and 0 deletions
243
GridDialog.java
Normal file
243
GridDialog.java
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import javax.swing.*;
|
||||
|
||||
public class GridDialog {
|
||||
private JDialog dialog = new JDialog();
|
||||
|
||||
private JTextField name1 = new JTextField("Player 1"), name2 = new JTextField("Player 2");
|
||||
private SpinnerModel cards = new SpinnerNumberModel(12, 6, 100, 2);
|
||||
private JSpinner numCards = new JSpinner(cards);
|
||||
|
||||
public GridDialog(String str1, String str2, int cards) {
|
||||
name1.setText(str1);
|
||||
name2.setText(str2);
|
||||
numCards.setValue(cards);
|
||||
createDialog();
|
||||
}
|
||||
|
||||
public GridDialog() {
|
||||
/*try {
|
||||
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
|
||||
ex.printStackTrace();
|
||||
}*/
|
||||
createDialog();
|
||||
}
|
||||
|
||||
public void createDialog() {
|
||||
dialog.setLayout(new GridBagLayout());
|
||||
|
||||
SpinnerModel players = new SpinnerNumberModel(2, 1, 4, 1);
|
||||
JSpinner numPlayers = new JSpinner(players);
|
||||
|
||||
GridBagConstraints mainGBC = new GridBagConstraints();
|
||||
|
||||
mainGBC.gridy = 0;
|
||||
mainGBC.gridwidth = 2;
|
||||
mainGBC.fill = GridBagConstraints.BOTH;
|
||||
mainGBC.insets = new Insets(2, 5, 2, 5);
|
||||
JLabel numPlayerTitle = new JLabel("Player Picker", JLabel.CENTER);
|
||||
numPlayerTitle.setFont(new Font(numPlayerTitle.getFont().getName(), Font.BOLD, numPlayerTitle.getFont().getSize() + 2));
|
||||
dialog.add(numPlayerTitle, mainGBC);
|
||||
|
||||
mainGBC.gridy = 1;
|
||||
mainGBC.gridwidth = 1;
|
||||
dialog.add(new JLabel("# of Players:"), mainGBC);
|
||||
dialog.add(numPlayers, mainGBC);
|
||||
|
||||
mainGBC.gridy = 2;
|
||||
JButton playersOk = new JButton("Ok");
|
||||
playersOk.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
int players = (Integer)numPlayers.getValue();
|
||||
dialog.getContentPane().removeAll();
|
||||
|
||||
GridBagConstraints c = new GridBagConstraints();
|
||||
c.fill = GridBagConstraints.BOTH;
|
||||
c.gridy = 0;
|
||||
c.gridwidth = 2;
|
||||
c.weightx = 1;
|
||||
c.weighty = 1;
|
||||
c.insets = new Insets(2, 5, 10, 5);
|
||||
JLabel title = new JLabel("Board Size Picker", JLabel.CENTER);
|
||||
title.setFont(new Font(title.getFont().getName(), Font.BOLD, title.getFont().getSize() + 2));
|
||||
dialog.add(title, c);
|
||||
|
||||
c.gridy = 1;
|
||||
c.gridwidth = 1;
|
||||
c.insets = new Insets(2, 5, 2, 5);
|
||||
dialog.add(new JLabel("Name 1:", JLabel.RIGHT), c);
|
||||
dialog.add(name1, c);
|
||||
|
||||
if (players > 1) {
|
||||
c.gridy = 2;
|
||||
dialog.add(new JLabel("Name 2:", JLabel.RIGHT), c);
|
||||
dialog.add(name2, c);
|
||||
}
|
||||
|
||||
c.gridy = players + 1;
|
||||
dialog.add(new JLabel("# of Cards:", JLabel.RIGHT), c);
|
||||
dialog.add(numCards, c);
|
||||
|
||||
c.gridy = players + 2;
|
||||
JButton okButton = new JButton("Ok");
|
||||
okButton.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
dialog.getContentPane().removeAll();
|
||||
|
||||
GridBagConstraints gbc = new GridBagConstraints();
|
||||
|
||||
gbc.gridy = 0;
|
||||
gbc.gridwidth = 2;
|
||||
gbc.fill = GridBagConstraints.BOTH;
|
||||
gbc.insets = new Insets(2, 5, 2, 5);
|
||||
JLabel playerTitle = new JLabel("Game Mode Picker", JLabel.CENTER);
|
||||
playerTitle.setFont(new Font(playerTitle.getFont().getName(), Font.BOLD, playerTitle.getFont().getSize() + 2));
|
||||
dialog.add(playerTitle, gbc);
|
||||
|
||||
if (players > 1) {
|
||||
gbc.gridy = 1;
|
||||
JButton localMultiplayerButton = new JButton("Local Multiplayer");
|
||||
localMultiplayerButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new Main(name1.getText(), name2.getText(), factor((Integer)numCards.getValue())[0], factor((Integer)numCards.getValue())[1], players);
|
||||
dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
|
||||
}
|
||||
});
|
||||
dialog.add(localMultiplayerButton, gbc);
|
||||
|
||||
gbc.gridy = 2;
|
||||
JButton LANMultiplayerButton = new JButton("LAN Multiplayer");
|
||||
LANMultiplayerButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new Main(name1.getText(), name2.getText(), factor((Integer)numCards.getValue())[0], factor((Integer)numCards.getValue())[1], players);
|
||||
dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
|
||||
}
|
||||
});
|
||||
dialog.add(LANMultiplayerButton, gbc);
|
||||
|
||||
gbc.gridy = 3;
|
||||
JButton onlineMultiplayerButton = new JButton("Online Multiplayer");
|
||||
onlineMultiplayerButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
||||
dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
|
||||
}
|
||||
});
|
||||
dialog.add(onlineMultiplayerButton, gbc);
|
||||
} else {
|
||||
gbc.gridy = 1;
|
||||
JButton singleplayerButton = new JButton("Singleplayer");
|
||||
singleplayerButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new Main(name1.getText(), name2.getText(), factor((Integer)numCards.getValue())[0], factor((Integer)numCards.getValue())[1], players);
|
||||
dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
|
||||
}
|
||||
});
|
||||
dialog.add(singleplayerButton, gbc);
|
||||
|
||||
gbc.gridy = 2;
|
||||
JButton comButton = new JButton("Player v. COM");
|
||||
comButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
||||
dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
|
||||
}
|
||||
});
|
||||
dialog.add(comButton, gbc);
|
||||
}
|
||||
|
||||
if (players > 1) gbc.gridy = 4;
|
||||
else gbc.gridy = 3;
|
||||
gbc.gridwidth = 1;
|
||||
gbc.insets = new Insets(5, 5, 2, 5);
|
||||
JButton backPlayerButton = new JButton("Back");
|
||||
backPlayerButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
|
||||
new GridDialog(name1.getText(), name2.getText(), factor((Integer)numCards.getValue())[0] * factor((Integer)numCards.getValue())[1]);
|
||||
}
|
||||
});
|
||||
dialog.add(backPlayerButton, gbc);
|
||||
|
||||
JButton cancelPlayerButton = new JButton("Cancel");
|
||||
cancelPlayerButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
dialog.dispose();
|
||||
}
|
||||
});
|
||||
dialog.add(cancelPlayerButton, gbc);
|
||||
|
||||
dialog.revalidate();
|
||||
dialog.repaint();
|
||||
dialog.pack();
|
||||
}
|
||||
});
|
||||
dialog.add(okButton, c);
|
||||
|
||||
c.gridx = 1;
|
||||
JButton cancelButton = new JButton("Cancel");
|
||||
cancelButton.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
dialog.dispose();
|
||||
}
|
||||
});
|
||||
dialog.add(cancelButton, c);
|
||||
|
||||
dialog.revalidate();
|
||||
dialog.repaint();
|
||||
dialog.pack();
|
||||
}
|
||||
});
|
||||
|
||||
dialog.add(playersOk, mainGBC);
|
||||
dialog.add(new JButton("Cancel"), mainGBC);
|
||||
|
||||
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
|
||||
dialog.pack();
|
||||
dialog.setVisible(true);
|
||||
|
||||
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
|
||||
dialog.setLocation(dim.width/2-dialog.getSize().width/2, dim.height/2-dialog.getSize().height/2);
|
||||
}
|
||||
|
||||
private int[] factor(int num) {
|
||||
double fac1 = 1, fac2;
|
||||
double lowest = num;
|
||||
int ans[] = {0, 0};
|
||||
|
||||
while(fac1 <= Math.sqrt(num)) {
|
||||
fac2 = num/fac1;
|
||||
|
||||
if (trunc(fac2) == fac2) {
|
||||
if ((fac1 + fac2) < lowest) {
|
||||
lowest = fac1 + fac2;
|
||||
ans[0] = (int)fac1;
|
||||
ans[1] = (int)fac2;
|
||||
}
|
||||
}
|
||||
|
||||
fac1++;
|
||||
}
|
||||
|
||||
return ans;
|
||||
}
|
||||
|
||||
public static double trunc(double d) {
|
||||
return ((long)(d * 1)) / 1;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue