/**
* @author hakvago
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
public class MGrafika {
public static MGrafika instanceMGrafika = new MGrafika();
public static MGrafika getInstance () {
return instanceMGrafika;
}
private MGrafika() {
}
Frame f = new Frame("Turecká Mangala");
int [] deska = new int[15];
int [][] deskakeep2 = new int[28][540001];
int [][] tahy = new int[250][26]; // zápis tahů a pozice po každém tahu
int tah = 0;
boolean hrajeJih = true;
boolean gameMode = false; // true=hrát proti PC, false přehrávat
boolean nastaveni = false; // nastavení libovolné pozice na desce
boolean plus10 = false;
boolean minus10 = false;
boolean plus1 = false;
boolean minus1 = false;
JLabel labelHracJih = new JLabel(" Hrac Jih ");
JLabel labelHracSever = new JLabel(" Hrac Sever ");
JLabel labelHracJih2 = new JLabel(" Jih - Jmeno hrace, země ");
JLabel labelHracSever2 = new JLabel(" Sever - Jmeno hrace, země ");
JLabel labelStulKolo = new JLabel(" Stul, kolo ");
JLabel labelVysledek = new JLabel(" Vysledek: ");
JLabel labelButton1 = new JLabel(" 1 ");
JLabel labelButton2 = new JLabel(" 2 ");
JLabel labelButton3 = new JLabel(" 3 ");
JLabel labelButton4 = new JLabel(" 4 ");
JLabel labelButton5 = new JLabel(" 5 ");
JLabel labelButton6 = new JLabel(" 6 ");
JLabel labelButton8 = new JLabel(" 1 ");
JLabel labelButton9 = new JLabel(" 2 ");
JLabel labelButton10 = new JLabel(" 3 ");
JLabel labelButton11 = new JLabel(" 4 ");
JLabel labelButton12 = new JLabel(" 5 ");
JLabel labelButton13 = new JLabel(" 6 ");
JLabel labelToguz = new JLabel("© Hana Kotinova Dalsi hry na www.mankala.cz");
JLabel labelPCHral = new JLabel("PC: ");
JLabel labelNaTahu = new JLabel("Hraje: Jih ");
JLabel labelTah = new JLabel("Tah: ");
JButton button1 = new JButton("4");
JButton button2 = new JButton("4");
JButton button3 = new JButton("4");
JButton button4 = new JButton("4");
JButton button5 = new JButton("4");
JButton button6 = new JButton("4");
JButton button8 = new JButton("4");
JButton button9 = new JButton("4");
JButton button10 = new JButton("4");
JButton button11 = new JButton("4");
JButton button12 = new JButton("4");
JButton button13 = new JButton("4");
JButton buttonKazanSever = new JButton("0");
JButton buttonKazanJih = new JButton("0");
JButton buttonReset9 = new JButton(" 444 reset ");
JButton buttonReset0 = new JButton(" 000 reset ");
JButton buttonWriteGame = new JButton(" Ulozit hru - diagram standard ");
JButton buttonWriteGameDb = new JButton(" Ulozit hru - pro db (.csv) ");
JButton buttonWriteGameHtml = new JButton(" Ulozit hru - tabulka ");
JButton buttonWritePositionHtml = new JButton(" Ulozit pozici ");
JButton buttonWriteGameCapture = new JButton(" Uloz hru (.txt) ");
JButton buttonWriteGameDiagram = new JButton(" Uloz hru - diagram luxury ");
JButton buttonRules = new JButton(" Pravidla ");
JButton buttonNavod = new JButton(" Navod ");
JButton buttonPlay = new JButton(" HRAT ");
JButton buttonRePlay = new JButton(" PREHRAVAT ");
JButton buttonNastav = new JButton(" Nastavit pozici ");
JButton button10plus = new JButton(" 10+ ");
JButton button10minus = new JButton(" 10- ");
JButton button1plus = new JButton(" 1+ ");
JButton button1minus = new JButton(" 1- ");
JButton buttonNaTahu = new JButton(" Sever-Jih ");
JTextField txtfJmenoSever = new JTextField("");
JTextField txtfJmenoJih = new JTextField("");
JTextField txtfStatSever = new JTextField("");
JTextField txtfStatJih = new JTextField("");
JTextField txtfTurnaj = new JTextField("World Nomad Games - Mangala");
JTextField txtfStul = new JTextField("");
JTextField txtfKolo = new JTextField("");
JTextField txtfSkoreSever = new JTextField("");
JTextField txtfSkoreJih = new JTextField("");
public void init() {
for (int i = 1; i <= 13; i++) {
deska[i] = 4;
tahy[0][i+7] = 4;
}
deska[7] = 0;
deska[14] = 0;
tahy[0][7+7] = 0;
tahy[0][14+7] = 0;
}
public void makeLayout() {
f.addWindowListener(new WindowAdapter ()
{
@Override
public void windowClosing (WindowEvent e) {
System.exit(0);
}
});
f.setLayout(new GridBagLayout());
makeComponent(f, buttonRules, 10, 1, 1, 1, 0.0, 0.0);
makeComponent(f, buttonNavod, 11, 1, 1, 1, 0.0, 0.0);
makeComponent(f, buttonReset9, 10, 9, 1, 1, 0.0, 0.0);
makeComponent(f, buttonReset0, 11, 9, 1, 1, 0.0, 0.0);
makeComponent(f, buttonWriteGame, 10, 12, 1, 1, 0.0, 0.0);
makeComponent(f, buttonWriteGameHtml, 10, 11, 1, 1, 0.0, 0.0);
makeComponent(f, buttonWriteGameDb, 11, 10, 1, 1, 0.0, 0.0);
makeComponent(f, buttonWritePositionHtml, 10, 10, 1, 1, 0.0, 0.0);
makeComponent(f, buttonWriteGameCapture, 11, 11, 1, 1, 0.0, 0.0);
makeComponent(f, buttonWriteGameDiagram, 11, 12, 1, 1, 0.0, 0.0);
makeComponent(f, buttonRePlay, 10, 2, 2, 1, 0.0, 0.0);
makeComponent(f, buttonPlay, 10, 3, 2, 1, 0.0, 0.0);
makeComponent(f, buttonNastav, 10, 4, 2, 1, 0.0, 0.0);
makeComponent(f, button10plus, 10, 5, 1, 1, 0.0, 0.0);
makeComponent(f, button10minus, 11, 5, 1, 1, 0.0, 0.0);
makeComponent(f, button1plus, 10, 6, 1, 1, 0.0, 0.0);
makeComponent(f, button1minus, 11, 6, 1, 1, 0.0, 0.0);
makeComponent(f, buttonNaTahu, 10, 8, 2, 1, 0.0, 0.0);
makeComponent(f, button1, 2, 6, 1, 1, 0.0, 0.0);
makeComponent(f, button2, 3, 6, 1, 1, 0.0, 0.0);
makeComponent(f, button3, 4, 6, 1, 1, 0.0, 0.0);
makeComponent(f, button4, 5, 6, 1, 1, 0.0, 0.0);
makeComponent(f, button5, 6, 6, 1, 1, 0.0, 0.0);
makeComponent(f, button6, 7, 6, 1, 1, 0.0, 0.0);
makeComponent(f, button8, 7, 2, 1, 1, 0.0, 0.0);
makeComponent(f, button9, 6, 2, 1, 1, 0.0, 0.0);
makeComponent(f, button10, 5, 2, 1, 1, 0.0, 0.0);
makeComponent(f, button11, 4, 2, 1, 1, 0.0, 0.0);
makeComponent(f, button12, 3, 2, 1, 1, 0.0, 0.0);
makeComponent(f, button13, 2, 2, 1, 1, 0.0, 0.0);
makeComponent(f, buttonKazanSever, 0, 2, 1, 5, 0.0, 0.0);
makeComponent(f, buttonKazanJih, 8, 2, 1, 5, 0.0, 0.0);
makeComponent(f, labelButton1, 2, 7, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton2, 3, 7, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton3, 4, 7, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton4, 5, 7, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton5, 6, 7, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton6, 7, 7, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton8, 7, 1, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton9, 6, 1, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton10, 5, 1, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton11, 4, 1, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton12, 3, 1, 1, 1, 0.0, 0.0);
makeComponent(f, labelButton13, 2, 1, 1, 1, 0.0, 0.0);
makeComponent(f, labelHracJih, 9, 6, 1, 1, 0.0, 0.0);
makeComponent(f, labelToguz, 1, 4, 6, 1, 0.0, 0.0);
makeComponent(f, labelHracSever, 9, 2, 1, 1, 0.0, 0.0);
makeComponent(f, labelPCHral, 8, 4, 1, 1, 0.0, 0.0);
makeComponent(f, labelNaTahu, 9, 4, 1, 1, 0.0, 0.0);
makeComponent(f, txtfJmenoJih, 0, 10, 3, 1, 0.0, 0.0);
makeComponent(f, txtfJmenoSever, 5, 10, 3, 1, 0.0, 0.0);
makeComponent(f, labelHracJih2, 0, 9, 3, 1, 0.0, 0.0);
makeComponent(f, labelHracSever2, 5, 9, 3, 1, 0.0, 0.0);
makeComponent(f, txtfStatJih, 3, 10, 1, 1, 0.0, 0.0);
makeComponent(f, txtfStatSever, 8, 10, 1, 1, 0.0, 0.0);
makeComponent(f, labelStulKolo, 0, 11, 1, 1, 0.0, 0.0);
makeComponent(f, txtfStul, 2, 11, 1, 1, 0.0, 0.0);
makeComponent(f, txtfKolo, 3, 11, 1, 1, 0.0, 0.0);
makeComponent(f, txtfTurnaj, 5, 11, 4, 1, 0.0, 0.0);
makeComponent(f, labelVysledek, 0, 12, 1, 1, 0.0, 0.0);
makeComponent(f, txtfSkoreJih, 2, 12, 1, 1, 0.0, 0.0);
makeComponent(f, txtfSkoreSever, 3, 12, 1, 1, 0.0, 0.0);
button1.addActionListener(new OvlButton1());
button2.addActionListener(new OvlButton2());
button3.addActionListener(new OvlButton3());
button4.addActionListener(new OvlButton4());
button5.addActionListener(new OvlButton5());
button6.addActionListener(new OvlButton6());
button8.addActionListener(new OvlButton8());
button9.addActionListener(new OvlButton9());
button10.addActionListener(new OvlButton10());
button11.addActionListener(new OvlButton11());
button12.addActionListener(new OvlButton12());
button13.addActionListener(new OvlButton13());
buttonRules.addActionListener(new OvlButtonRules());
buttonReset9.addActionListener(new OvlButtonReset9());
buttonReset0.addActionListener(new OvlButtonReset0());
buttonWriteGame.addActionListener(new OvlButtonWriteGame());
buttonWriteGameHtml.addActionListener(new OvlButtonWriteGameHtml());
buttonWriteGameDb.addActionListener(new OvlButtonWriteGameDb());
buttonWritePositionHtml.addActionListener(new OvlButtonWritePositionHtml());
buttonPlay.addActionListener(new OvlPlay());
buttonRePlay.addActionListener(new OvlRePlay());
buttonNastav.addActionListener(new OvlNastav());
button10plus.addActionListener(new Ovl10plus());
button10minus.addActionListener(new Ovl10minus());
button1plus.addActionListener(new Ovl1plus());
button1minus.addActionListener(new Ovl1minus());
buttonNaTahu.addActionListener(new OvlNaTahu());
buttonKazanSever.addActionListener(new OvlKazanSever());
buttonKazanJih.addActionListener(new OvlKazanJih());
buttonWriteGameDiagram.addActionListener(new OvlButtonWriteGameDiagram());
buttonWriteGameCapture.addActionListener(new OvlButtonWriteGameCapture());
buttonKazanSever.setEnabled(false);
buttonKazanJih.setEnabled(false);
buttonPlay.setEnabled(true);
buttonRePlay.setEnabled(false);
buttonNavod.setEnabled(false);
nastavTlacitka(true);
f.pack();
f.setSize(1200,500);
f.setLocation(100,100);
f.setVisible(true);
}
private void makeComponent(Container cont, Object arg, int x, int y, int w, int h, double weightx, double weighty) {
GridBagLayout gbl = (GridBagLayout)cont.getLayout();
GridBagConstraints c = new GridBagConstraints();
Component comp;
c.fill = GridBagConstraints.BOTH;
c.gridx = x;
c.gridy = y;
c.gridwidth = w;
c.gridheight = h;
c.weightx = weightx;
c.weighty = weighty;
if (arg instanceof String) {
comp = new Button((String)arg);
}
else {
comp = (Component)arg;
}
cont.add(comp);
gbl.setConstraints(comp, c);
}
class OvlButton1 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[1]=deska[1]+10;}
if (plus1) {deska[1]=deska[1]+1;}
if (minus10) {deska[1]=deska[1]-10;}
if (minus1) {deska[1]=deska[1]-1;}
button1.setText("" + deska[1]);
}
else {
rozdejDulek(1);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton2 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[2]=deska[2]+10;}
if (plus1) {deska[2]=deska[2]+1;}
if (minus10) {deska[2]=deska[2]-10;}
if (minus1) {deska[2]=deska[2]-1;}
button2.setText("" + deska[2]);
}
else {
rozdejDulek(2);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton3 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[3]=deska[3]+10;}
if (plus1) {deska[3]=deska[3]+1;}
if (minus10) {deska[3]=deska[3]-10;}
if (minus1) {deska[3]=deska[3]-1;}
button3.setText("" + deska[3]);
}
else {
rozdejDulek(3);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton4 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[4]=deska[4]+10;}
if (plus1) {deska[4]=deska[4]+1;}
if (minus10) {deska[4]=deska[4]-10;}
if (minus1) {deska[4]=deska[4]-1;}
button4.setText("" + deska[4]);
}
else {
rozdejDulek(4);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton5 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[5]=deska[5]+10;}
if (plus1) {deska[5]=deska[5]+1;}
if (minus10) {deska[5]=deska[5]-10;}
if (minus1) {deska[5]=deska[5]-1;}
button5.setText("" + deska[5]);
}
else {
rozdejDulek(5);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton6 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[6]=deska[6]+10;}
if (plus1) {deska[6]=deska[6]+1;}
if (minus10) {deska[6]=deska[6]-10;}
if (minus1) {deska[6]=deska[6]-1;}
button6.setText("" + deska[6]);
}
else {
rozdejDulek(6);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton13 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[13]=deska[13]+10;}
if (plus1) {deska[13]=deska[13]+1;}
if (minus10) {deska[13]=deska[13]-10;}
if (minus1) {deska[13]=deska[13]-1;}
button13.setText("" + deska[13]);
}
else {
rozdejDulek(13);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton8 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[8]=deska[8]+10;}
if (plus1) {deska[8]=deska[8]+1;}
if (minus10) {deska[8]=deska[8]-10;}
if (minus1) {deska[8]=deska[8]-1;}
button8.setText("" + deska[8]);
}
else {
rozdejDulek(8);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton9 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[9]=deska[9]+10;}
if (plus1) {deska[9]=deska[9]+1;}
if (minus10) {deska[9]=deska[9]-10;}
if (minus1) {deska[9]=deska[9]-1;}
button9.setText("" + deska[9]);
}
else {
rozdejDulek(9);
seberm();
randomPlayer(gameMode);
nastavTlacitka(gameMode);
}
}
};
class OvlButton10 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[10]=deska[10]+10;}
if (plus1) {deska[10]=deska[10]+1;}
if (minus10) {deska[10]=deska[10]-10;}
if (minus1) {deska[10]=deska[10]-1;}
button10.setText("" + deska[10]);
}
else {
rozdejDulek(10);
seberm();
nastavTlacitka(gameMode);
}
}
};
class OvlButton11 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[11]=deska[11]+10;}
if (plus1) {deska[11]=deska[11]+1;}
if (minus10) {deska[11]=deska[11]-10;}
if (minus1) {deska[11]=deska[11]-1;}
button11.setText("" + deska[11]);
}
else {
rozdejDulek(11);
seberm();
nastavTlacitka(gameMode);
}
}
};
class OvlButton12 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[12]=deska[12]+10;}
if (plus1) {deska[12]=deska[12]+1;}
if (minus10) {deska[12]=deska[12]-10;}
if (minus1) {deska[12]=deska[12]-1;}
button12.setText("" + deska[12]);
}
else {
rozdejDulek(12);
seberm();
nastavTlacitka(gameMode);
}
}
};
class OvlButtonRules implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
String help = "Kazde tlacitko predstavuje dulek, cislice na tlacitku pocet kulicek v dulku. Stiskem tlacitka" + "\n";
help = help + "rozdelime kulicky. "+ "\n";
help = help + "Vyhraje ten, kdo do sve pokladnice nasbira vic. ";
JOptionPane.showMessageDialog(f, "" + help, "Pravidla", JOptionPane.INFORMATION_MESSAGE);
}
};
class OvlButtonReset9 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
for (int i = 1; i <= 13; i++) {
deska[i] = 4;
}
deska[7] = 0;
deska[14] = 0;
tah = 0;
for (int i = 1; i <= 249; i++) {
for (int j = 1; j <= 25; j++) {
tahy[i][j] = 0;
}
}
labelPCHral.setText("PC : ");
nastavTlacitka(gameMode);
}
};
class OvlButtonReset0 implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
for (int i = 1; i <= 14; i++) {
deska[i] = 0;
}
tah = 0;
for (int i = 1; i <= 249; i++) {
for (int j = 1; j <= 25; j++) {
tahy[i][j] = 0;
}
}
labelPCHral.setText("PC : ");
nastavTlacitka(gameMode);
}
};
class OvlButtonWriteGameDiagram implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
/*
Calendar datumCas = Calendar.getInstance();
String soubor = "Hra-" + datumCas.get(Calendar.YEAR) + "-";
soubor = soubor + datumCas.get(Calendar.MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.DAY_OF_MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.HOUR_OF_DAY) + "-";
soubor = soubor + datumCas.get(Calendar.MINUTE) + "-";
soubor = soubor + datumCas.get(Calendar.SECOND) + ".html";
*/
String soubor = "" + txtfJmenoJih.getText() + "-" + txtfJmenoSever.getText() + "-";
soubor = soubor + txtfTurnaj.getText() + ".html";
try {
try (PrintWriter vystup = new PrintWriter(new FileWriter(soubor))) {
vystup.println("
" + txtfTurnaj.getText() + "
");
vystup.println("Round: " + txtfKolo.getText() + ", Table: " + txtfStul.getText() + "
");
vystup.println("LIGHT (1): " + txtfJmenoJih.getText() + ", " + txtfStatJih.getText()+ "
");
vystup.println("DARK (0): " + txtfJmenoSever.getText() + ", " + txtfStatSever.getText() + "
");
vystup.println("Result: " + txtfSkoreJih.getText() + " - " + txtfSkoreSever.getText() + "
");
for (int i = 0; i <= 249; i++) {
if (tahy[i][1] > 0 || tahy[i][14] > 0 || tahy[i][21] > 0) {
vystup.print("Move " + (i+1) + " .. " + tahy[i][7] + " played from " + tahy[i][1] + " |
");
vystup.print("
" + tahy[i][21] + " | " + tahy[i][20] + " | " + tahy[i][19] + " | " + tahy[i][18] + " | " + tahy[i][17] + " | " + tahy[i][16] + " | " + tahy[i][15] + " | " + tahy[i][14] + " |
");
vystup.print(" " + tahy[i][8] + " | " + tahy[i][9] + " | " + tahy[i][10] + " | " + tahy[i][11] + " | " + tahy[i][12] + " | " + tahy[i][13] + " | ");
}
}
vystup.print("
");
}
}
catch (IOException ee) {
System.out.println ("Chyba na vystupu souboru" + ee);
}
JOptionPane.showMessageDialog(null, "Ulozeno do souboru " + soubor, "Ulozeno", JOptionPane.INFORMATION_MESSAGE);
}
};
class OvlButtonWriteGameCapture implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
/*
Calendar datumCas = Calendar.getInstance();
String soubor = "Hra-" + datumCas.get(Calendar.YEAR) + "-";
soubor = soubor + datumCas.get(Calendar.MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.DAY_OF_MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.HOUR_OF_DAY) + "-";
soubor = soubor + datumCas.get(Calendar.MINUTE) + "-";
soubor = soubor + datumCas.get(Calendar.SECOND) + ".txt";
*/
String soubor = "" + txtfJmenoJih.getText() + "-" + txtfJmenoSever.getText() + "-";
soubor = soubor + txtfTurnaj.getText() + ".txt";
try {
try (PrintWriter vystup = new PrintWriter(new FileWriter(soubor))) {
vystup.println("" + txtfTurnaj.getText());
vystup.println("Round: " + txtfKolo.getText() + ", Table: " + txtfStul.getText());
vystup.println("LIGHT (1): " + txtfJmenoJih.getText() + ", " + txtfStatJih.getText());
vystup.println("DARK (0): " + txtfJmenoSever.getText() + ", " + txtfStatSever.getText());
vystup.println("Result: " + txtfSkoreJih.getText() + " - " + txtfSkoreSever.getText());
vystup.println();
for (int i = 0; i <= 249; i++) {
if (tahy[i][1] != 0) {
vystup.println("" + (i+1) + ". " + tahy[i][7]+ " played from " + tahy[i][1] + " .. (" + tahy[i][14] + ")-(" + tahy[i][21] + ")");
}
}
}
}
catch (IOException ee) {
System.out.println ("Chyba na vystupu souboru" + ee);
}
JOptionPane.showMessageDialog(null, "Ulozeno do souboru " + soubor, "Ulozeno", JOptionPane.INFORMATION_MESSAGE);
}
};
class OvlButtonWriteGameDb implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
/*
Calendar datumCas = Calendar.getInstance();
String soubor = "Hra-" + datumCas.get(Calendar.YEAR) + "-";
soubor = soubor + datumCas.get(Calendar.MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.DAY_OF_MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.HOUR_OF_DAY) + "-";
soubor = soubor + datumCas.get(Calendar.MINUTE) + "-";
soubor = soubor + datumCas.get(Calendar.SECOND) + ".csv";
*/
String soubor = "" + txtfJmenoJih.getText() + "-" + txtfJmenoSever.getText() + "-";
soubor = soubor + txtfTurnaj.getText() + ".csv";
try {
try (PrintWriter vystup = new PrintWriter(new FileWriter(soubor))) {
vystup.print("" + txtfTurnaj.getText() + ";LIGHT (1): " + txtfJmenoJih.getText() + ", " + txtfStatJih.getText() + ";DARK (0): " + txtfJmenoSever.getText() + ", " + txtfStatSever.getText() + ";Result: " + txtfSkoreJih.getText() + " - " + txtfSkoreSever.getText() + ";");
vystup.print("Round: " + txtfKolo.getText() + ";Table: " + txtfStul.getText() + ";");
for (int i = 0; i <= 249; i++) {
if (tahy[i][1] > 0) {
vystup.print("" + tahy[i][1] + "(" + tahy[i][7] + ");");
}
}
}
}
catch (IOException ee) {
System.out.println ("Chyba na vystupu souboru" + ee);
}
JOptionPane.showMessageDialog(null, "Ulozeno do souboru " + soubor, "Ulozeno", JOptionPane.INFORMATION_MESSAGE);
}
};
class OvlButtonWriteGameHtml implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
Calendar datumCas = Calendar.getInstance();
String soubor = "Hra-" + datumCas.get(Calendar.YEAR) + "-";
soubor = soubor + datumCas.get(Calendar.MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.DAY_OF_MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.HOUR_OF_DAY) + "-";
soubor = soubor + datumCas.get(Calendar.MINUTE) + "-";
soubor = soubor + datumCas.get(Calendar.SECOND) + ".html";
try {
try (PrintWriter vystup = new PrintWriter(new FileWriter(soubor))) {
vystup.println("" + txtfTurnaj.getText() + "
");
vystup.println("LIGHT (1): " + txtfJmenoJih.getText() + ", " + txtfStatJih.getText() + "
");
vystup.println("DARK (0): " + txtfJmenoSever.getText() + ", " + txtfStatSever.getText() + "
");
vystup.println("Round: " + txtfKolo.getText() + " - - - Table: " + txtfStul.getText() + "
");
vystup.println();
vystup.print("Tah | Kdo-odkud-pokladnice |
");
for (int i = 0; i <= 249; i++) {
if (tahy[i][1] > 0 || tahy[i][14] > 0 || tahy[i][21] > 0) {
vystup.println("" + (i+1) + ". | " + tahy[i][7] + " hral z " + tahy[i][1] + " .. (" + tahy[i][14] + ")-(" + tahy[i][21] + ") |
");
}
}
vystup.println("
");
vystup.println("");
}
}
catch (IOException ee) {
System.out.println ("Chyba na vystupu souboru" + ee);
}
JOptionPane.showMessageDialog(null, "Ulozeno do souboru " + soubor, "Ulozeno", JOptionPane.INFORMATION_MESSAGE);
}
};
class OvlButtonWritePositionHtml implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
Calendar datumCas = Calendar.getInstance();
String soubor = "Pozice-" + datumCas.get(Calendar.YEAR) + "-";
soubor = soubor + datumCas.get(Calendar.MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.DAY_OF_MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.HOUR_OF_DAY) + "-";
soubor = soubor + datumCas.get(Calendar.MINUTE) + "-";
soubor = soubor + datumCas.get(Calendar.SECOND) + ".html";
try {
try (PrintWriter vystup = new PrintWriter(new FileWriter(soubor))) {
vystup.print("Mangala:
");
vystup.print("" + deska[13] + " | " + deska[12] + " | " + deska[11] + " | " + deska[10] + " | " + deska[9] + " | " + deska[8] + " | " + deska[14] + " |
");
vystup.print("" + deska[1] + " | " + deska[2] + " | " + deska[3] + " | " + deska[4] + " | " + deska[5] + " | " + deska[6] + " | " + deska[7] + " |
");
vystup.print("
");
}
}
catch (IOException ee) {
System.out.println ("Chyba na vystupu souboru" + ee);
}
JOptionPane.showMessageDialog(null, "Ulozeno do souboru " + soubor, "Ulozeno", JOptionPane.INFORMATION_MESSAGE);
}
};
class OvlButtonWriteGame implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
Calendar datumCas = Calendar.getInstance();
String soubor = "Hra-" + datumCas.get(Calendar.YEAR) + "-";
soubor = soubor + datumCas.get(Calendar.MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.DAY_OF_MONTH) + "-";
soubor = soubor + datumCas.get(Calendar.HOUR_OF_DAY) + "-";
soubor = soubor + datumCas.get(Calendar.MINUTE) + "-";
soubor = soubor + datumCas.get(Calendar.SECOND) + ".html";
try {
try (PrintWriter vystup = new PrintWriter(new FileWriter(soubor))) {
vystup.println("" + txtfTurnaj.getText() + "
");
vystup.println("LIGHT (1): " + txtfJmenoJih.getText() + ", " + txtfStatJih.getText() + "
");
vystup.println("DARK (0): " + txtfJmenoSever.getText() + ", " + txtfStatSever.getText() + "
");
vystup.println("Round: " + txtfKolo.getText() + " - - - Table: " + txtfStul.getText() + "
");
vystup.println();
for (int i = 0; i <= 249; i++) {
if (tahy[i][1] > 0 || tahy[i][14] > 0 || tahy[i][21] > 0) {
vystup.print("" + i + " .. " + tahy[i][7] + " hral z " + tahy[i][1] + " |
");
vystup.print("
" + tahy[i][20] + " | " + tahy[i][19] + " | " + tahy[i][18] + " | " + tahy[i][17] + " | " + tahy[i][16] + " | " + tahy[i][15] + " | " + tahy[i][21] + " |
");
vystup.print(" " + tahy[i][8] + " | " + tahy[i][9] + " | " + tahy[i][10] + " | " + tahy[i][11] + " | " + tahy[i][12] + " | " + tahy[i][13] + " | " + tahy[i][14] + " |
");
}
}
vystup.print("
");
}
}
catch (IOException ee) {
System.out.println ("Chyba na vystupu souboru" + ee);
}
JOptionPane.showMessageDialog(null, "Ulozeno do souboru " + soubor, "Ulozeno", JOptionPane.INFORMATION_MESSAGE);
}
};
class OvlPlay implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
gameMode = true;
nastaveni = false;
buttonPlay.setEnabled(false);
buttonRePlay.setEnabled(true);
buttonNastav.setEnabled(true);
button10plus.setEnabled(false);
button10minus.setEnabled(false);
button1plus.setEnabled(false);
button1minus.setEnabled(false);
buttonKazanSever.setEnabled(false);
buttonKazanJih.setEnabled(false);
nastavTlacitka(gameMode);
}
};
class OvlRePlay implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
gameMode = false;
if (nastaveni) {
if (hrajeJih) {
tahy[tah][7]=1;
}
else {
tahy[tah][7]=0;
}
for (int i = 1; i <= 14; i++) {
tahy[tah][i+7]=deska[i];
}
}
nastaveni = false;
buttonPlay.setEnabled(true);
buttonRePlay.setEnabled(false);
buttonNastav.setEnabled(true);
button10plus.setEnabled(false);
button10minus.setEnabled(false);
button1plus.setEnabled(false);
button1minus.setEnabled(false);
buttonKazanSever.setEnabled(false);
buttonKazanJih.setEnabled(false);
nastavTlacitka(gameMode);
}
};
class OvlNastav implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
gameMode = false;
buttonNastav.setEnabled(false);
buttonPlay.setEnabled(true);
buttonRePlay.setEnabled(true);
nastaveni = true;
button10plus.setEnabled(true);
button10minus.setEnabled(true);
button1plus.setEnabled(true);
button1minus.setEnabled(true);
tah++;
nastavTlacitka(gameMode);
}
};
class Ovl10plus implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
nastaveni = true;
plus10 = true;
plus1 = false;
minus1 = false;
minus10 = false;
button10plus.setEnabled(false);
button10minus.setEnabled(true);
button1plus.setEnabled(true);
button1minus.setEnabled(true);
}
};
class Ovl10minus implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
nastaveni = true;
minus10 = true;
plus10 = false;
plus1 = false;
minus1 = false;
button10plus.setEnabled(true);
button10minus.setEnabled(false);
button1plus.setEnabled(true);
button1minus.setEnabled(true);
}
};
class Ovl1plus implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
nastaveni = true;
plus10 = false;
plus1 = true;
minus1 = false;
minus10 = false;
button10plus.setEnabled(true);
button10minus.setEnabled(true);
button1plus.setEnabled(false);
button1minus.setEnabled(true);
}
};
class Ovl1minus implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
nastaveni = true;
plus10 = false;
plus1 = false;
minus1 = true;
minus10 = false;
button10plus.setEnabled(true);
button10minus.setEnabled(true);
button1plus.setEnabled(true);
button1minus.setEnabled(false);
}
};
class OvlNaTahu implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
hrajeJih = !hrajeJih;
nastavTlacitka(gameMode);
}
};
class OvlKazanSever implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[14]=deska[14]+10;}
if (plus1) {deska[14]=deska[14]+1;}
if (minus10) {deska[14]=deska[14]-10;}
if (minus1) {deska[14]=deska[14]-1;}
buttonKazanSever.setText("Sever sebral: " + deska[14]);
}
}
};
class OvlKazanJih implements ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
if (nastaveni) {
if (plus10) {deska[7]=deska[7]+10;}
if (plus1) {deska[7]=deska[7]+1;}
if (minus10) {deska[7]=deska[7]-10;}
if (minus1) {deska[7]=deska[7]-1;}
buttonKazanJih.setText("Jih sebral: " + deska[7]);
}
}
};
public void rozdejDulek(int dulek2) {
int dulek = dulek2;
tahy[tah][1] = dulek2;
if (tahy[tah][1] > 7) {
tahy[tah][1] = tahy[tah][1] - 7;
}
int vRuce = deska[dulek];
boolean ruka1 = false; // pro případy, kdy rozdáváme důlek s jedou kuličkou
if (vRuce == 1) {
ruka1 = true;
}
deska[dulek] = 0;
while (vRuce > 1) {
deska[dulek] = deska[dulek] + 1;
dulek++;
if ( ((dulek == 14) & hrajeJih) || ((dulek == 7) & !hrajeJih)) {
dulek++;
}
if (dulek > 14) {
dulek = 1;
}
vRuce--;
}
if (vRuce == 1) {
if ( ((dulek == 13) & hrajeJih) || ((dulek == 6) & !hrajeJih)) {
dulek++;
dulek++;
}
if (ruka1) {
dulek++;
}
if (dulek > 14) {
dulek = 1;
}
deska[dulek] = deska[dulek] + 1;
vRuce--;
}
deska[0] = dulek; // posledni kulicka
} // rozdej
public void seberm() {
int posledni = deska[0];
if (hrajeJih && posledni > 7 && posledni < 14 && (deska[posledni] % 2 != 1)) {
deska[7] = deska[7] + deska[posledni];
deska[posledni] = 0;
}
if (!hrajeJih && posledni < 7 && posledni > 0 && (deska[posledni] % 2 != 1)) {
deska[14] = deska[14] + deska[posledni];
deska[posledni] = 0;
}
if (hrajeJih && posledni < 7 && posledni > 0 && deska[posledni] == 1 && deska[7+7-posledni] > 0) {
deska[7] = deska[7] + deska[7+7-posledni] + deska[posledni];
deska[7+7-posledni] = 0;
deska[posledni]=0;
}
if (!hrajeJih && posledni > 7 && posledni < 14 && deska[posledni] == 1 && deska[7+7-posledni] > 0) {
deska[14] = deska[14] + deska[7+7-posledni]+ deska[posledni];
deska[7+7-posledni] = 0;
deska[posledni]=0;
}
if (deska[1]==0 && deska[2]==0 && deska[3]==0 && deska[4]==0 && deska[5]==0 && deska[6]==0 ) {
deska[7] = deska[7] + deska[8] + deska[9] + deska[10] + deska[11] + deska[12] + deska[13];
deska[8]=0;
deska[9]=0;
deska[10]=0;
deska[11]=0;
deska[12]=0;
deska[13]=0;
}
if (deska[8]==0 && deska[9]==0 && deska[10]==0 && deska[11]==0 && deska[12]==0 && deska[13]==0 ) {
deska[14] = deska[14] + deska[1] + deska[2] + deska[3] + deska[4] + deska[5] + deska[6];
deska[1]=0;
deska[2]=0;
deska[3]=0;
deska[4]=0;
deska[5]=0;
deska[6]=0;
}
if (hrajeJih) {
tahy[tah][7]=1;
}
else {
tahy[tah][7]=0;
}
for (int i = 1; i <= 14; i++) {
tahy[tah][i+7]=deska[i];
}
tah++;
moremoves();
} // seber
public void moremoves () {
int posledni = deska[0];
if (posledni % 7 == 0 ) {
hrajeJih = hrajeJih;
}
else
{
hrajeJih = !hrajeJih;
}
} // moremoves
public void nastavTlacitka(boolean gameMode) {
if (hrajeJih) {
button1.setEnabled(true);
button2.setEnabled(true);
button3.setEnabled(true);
button4.setEnabled(true);
button5.setEnabled(true);
button6.setEnabled(true);
button8.setEnabled(false);
button9.setEnabled(false);
button10.setEnabled(false);
button11.setEnabled(false);
button12.setEnabled(false);
button13.setEnabled(false);
button10plus.setEnabled(false);
button10minus.setEnabled(false);
button1plus.setEnabled(false);
button1minus.setEnabled(false);
}
if (!hrajeJih) {
button1.setEnabled(false);
button2.setEnabled(false);
button3.setEnabled(false);
button4.setEnabled(false);
button5.setEnabled(false);
button6.setEnabled(false);
button8.setEnabled(true);
button9.setEnabled(true);
button10.setEnabled(true);
button11.setEnabled(true);
button12.setEnabled(true);
button13.setEnabled(true);
button10plus.setEnabled(false);
button10minus.setEnabled(false);
button1plus.setEnabled(false);
button1minus.setEnabled(false);
}
button1.setText("" + deska[1]);
button2.setText("" + deska[2]);
button3.setText("" + deska[3]);
button4.setText("" + deska[4]);
button5.setText("" + deska[5]);
button6.setText("" + deska[6]);
button8.setText("" + deska[8]);
button9.setText("" + deska[9]);
button10.setText("" + deska[10]);
button11.setText("" + deska[11]);
button12.setText("" + deska[12]);
button13.setText("" + deska[13]);
if (deska[1] == 0) {button1.setEnabled(false);}
if (deska[2] == 0) {button2.setEnabled(false);}
if (deska[3] == 0) {button3.setEnabled(false);}
if (deska[4] == 0) {button4.setEnabled(false);}
if (deska[5] == 0) {button5.setEnabled(false);}
if (deska[6] == 0) {button6.setEnabled(false);}
if (deska[8] == 0) {button8.setEnabled(false);}
if (deska[9] == 0) {button9.setEnabled(false);}
if (deska[10] == 0) {button10.setEnabled(false);}
if (deska[11] == 0) {button11.setEnabled(false);}
if (deska[12] == 0) {button12.setEnabled(false);}
if (deska[13] == 0) {button13.setEnabled(false);}
buttonKazanSever.setText(" Sever sebral: " + deska[14] + " ");
buttonKazanJih.setText(" Jih sebral: " + deska[7] + " ");
labelTah.setText("Tah: " + tah);
if (nastaveni) {
button1.setEnabled(true);
button2.setEnabled(true);
button3.setEnabled(true);
button4.setEnabled(true);
button5.setEnabled(true);
button6.setEnabled(true);
button8.setEnabled(true);
button9.setEnabled(true);
button10.setEnabled(true);
button11.setEnabled(true);
button12.setEnabled(true);
button13.setEnabled(true);
buttonKazanSever.setEnabled(true);
buttonKazanJih.setEnabled(true);
button10plus.setEnabled(true);
button10minus.setEnabled(true);
button1plus.setEnabled(true);
button1minus.setEnabled(true);
}
if (hrajeJih) {
labelNaTahu.setText("Hraje: Jih");
}
else {
labelNaTahu.setText("Hraje: Sever");
}
} // end nastavTlacitka
public void randomPlayer(boolean gameMode) {
if (gameMode) {
hrajeJih = false;
int dulekPC = (int)(Math.random()*6) +7;
while (deska[dulekPC] == 0 || dulekPC == 7 || dulekPC == 14) {
dulekPC = (int)(Math.random()*6) +7;
}
rozdejDulek(dulekPC);
seberm();
labelPCHral.setText("PC: " + (dulekPC-7) + " ");
}
} // end randomPlayer
} // class