package skyduell;
public class Gui extends javax.swing.JFrame {
public Gui() {
initComponents();
antwortFeld.setVisible(false);
benutzerFalscheAntwortZaehlerLabel.setVisible(false);
benutzerGewinnerLabel.setVisible(false);
benutzerPunkteLabel.setVisible(false);
neuesSpiel.setVisible(false);
skynetFalscheAntwortZaehlerLabel.setVisible(false);
skynetGewinnerLabel.setVisible(false);
skynetPunkteLabel.setVisible(false);
antwortButton.setVisible(false);
skySagt.setVisible(false);
jLabel1.setVisible(false);
jLabel2.setVisible(false);
jLabel3.setVisible(false);
jLabel4.setVisible(false);
jLabel5.setVisible(false);
jLabel6.setVisible(false);
}
public int berechneFrageIndex() {
Object[] frageKeys = fragenUAntworten.fragen.keySet().toArray();
int randIndex = (int) ((Math.random() * 10) + (Math.random() * 10)) - 1;
System.out.println(randIndex);
frageIndex = (Integer) frageKeys[randIndex];
return frageIndex;
}
public void skynet() {
skySagt.setVisible(true);
falscheAntwortZaehler = 0;
skynetFalscheAntwortZaehlerLabel.setText(((Integer) falscheAntwortZaehler).toString());
while (falscheAntwortZaehler < 3 && skynetPunkte <= 50) {
int antwortIndex = (int) (Math.random() * fragenUAntworten.antworten.get(frageIndex).keySet().size());
if (antwortIndex == 0) {
antwortIndex = (int) (Math.random() * fragenUAntworten.antworten.get(frageIndex).keySet().size()) + (int) (Math.random() * fragenUAntworten.antworten.get(frageIndex).keySet().size());
}
Object[] keys = fragenUAntworten.antworten.get(frageIndex).keySet().toArray();
while (keys.length <= antwortIndex) {
antwortIndex--;
}
System.out.println(keys[antwortIndex]);
anzahlAntwortZurFrage = fragenUAntworten.antworten.get(frageIndex).get(keys[antwortIndex]);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (anzahlAntwortZurFrage != null && anzahlAntwortZurFrage != 0) {
skynetPunkte += anzahlAntwortZurFrage;
if (skynetPunkte >= 50) {
System.out.println("Skynet hat gewonnen");
skynetGewinnerLabel.setVisible(true);
neuesSpiel.setVisible(true);
}
skynetPunkteLabel.setText(((Integer) skynetPunkte).toString());
fragenUAntworten.antworten.get(frageIndex).remove(keys[antwortIndex]);
Object[] wrongAnswerKeys = fragenUAntworten.antworten.get(frageIndex).keySet().toArray();
for (Object wrongAnswerKey : wrongAnswerKeys) {
if (fragenUAntworten.antworten.get(frageIndex).get(wrongAnswerKey) == 0) {
fragenUAntworten.antworten.get(frageIndex).remove(wrongAnswerKey);
break;
}
}
System.out.println("Richtige Antwort");
} else {
falscheAntwortZaehler++;
System.out.println("Falsche Antwort");
if (falscheAntwortZaehler == 3) {
System.out.println("Benutzer übernimmt das Kommando");
}
skynetFalscheAntwortZaehlerLabel.setText(((Integer) falscheAntwortZaehler).toString());
}
antwortFeld.setText("");
}
falscheAntwortZaehler = 0;
}
public void benutzer() {
if (antwort == null || antwort.equals("")) {
falscheAntwortZaehler++;
System.out.println("Falsche Antwort");
if (falscheAntwortZaehler == 3) {
benutzerFalscheAntwortZaehlerLabel.setText(((Integer) falscheAntwortZaehler).toString());
skynet();
antwortFeld.setVisible(false);
}
benutzerFalscheAntwortZaehlerLabel.setText(((Integer) falscheAntwortZaehler).toString());
System.out.println(antwortFeld);
} else {
anzahlAntwortZurFrage = fragenUAntworten.antworten.get(frageIndex).get(antwortFeld.getText());
if (anzahlAntwortZurFrage != null && anzahlAntwortZurFrage != 0)
{
benutzerPunkte += anzahlAntwortZurFrage;
if (benutzerPunkte > 50) {
System.out.println("Sie haben gewonnen");
antwortFeld.setVisible(false);
antwortButton.setVisible(false);
benutzerGewinnerLabel.setVisible(true);
neuesSpiel.setVisible(true);
}
benutzerPunkteLabel.setText(((Integer) benutzerPunkte).toString());
fragenUAntworten.antworten.get(frageIndex).remove(antwortFeld.getText());
Object[] wrongAnswerKeys = fragenUAntworten.antworten.get(frageIndex).keySet().toArray();
for (Object wrongAnswerKey : wrongAnswerKeys) {
if (fragenUAntworten.antworten.get(frageIndex).get(wrongAnswerKey) == 0) {
fragenUAntworten.antworten.get(frageIndex).remove(wrongAnswerKey);
break;
}
}
System.out.println("Richtige Antwort");
} else {
falscheAntwortZaehler++;
System.out.println("Falsche Antwort");
if (falscheAntwortZaehler == 3) {
System.out.println("Skynet übernimmt das Kommando");
benutzerFalscheAntwortZaehlerLabel.setText(((Integer) falscheAntwortZaehler).toString());
skynet();
}
benutzerFalscheAntwortZaehlerLabel.setText(((Integer) falscheAntwortZaehler).toString());
}
antwortFeld.setText("");
}
}
@SuppressWarnings("unchecked")
private void initComponents() {
Back = new javax.swing.JPanel();
startButton = new javax.swing.JButton();
neuesSpiel = new javax.swing.JButton();
familienDuellLabel = new javax.swing.JLabel();
benutzerPunkteLabel = new javax.swing.JLabel();
skynetPunkteLabel = new javax.swing.JLabel();
skynetGewinnerLabel = new javax.swing.JLabel();
antwortButton = new javax.swing.JButton();
antwortFeld = new javax.swing.JTextField();
frageLabel = new javax.swing.JLabel();
benutzerGewinnerLabel = new javax.swing.JLabel();
benutzerFalscheAntwortZaehlerLabel = new javax.swing.JLabel();
skynetFalscheAntwortZaehlerLabel = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
skySagt = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
Back.setBackground(new java.awt.Color(0, 0, 0));
Back.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
startButton.setBackground(new java.awt.Color(255, 255, 51));
startButton.setFont(new java.awt.Font("Tahoma", 1, 18));
startButton.setText("Startfrei zum Duell");
startButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
startButtonActionPerformed(evt);
}
});
Back.add(startButton, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 290, 394, 61));
neuesSpiel.setBackground(new java.awt.Color(255, 255, 0));
neuesSpiel.setFont(new java.awt.Font("Tahoma", 1, 18));
neuesSpiel.setText("New Game");
neuesSpiel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
neuesSpielMouseReleased(evt);
}
});
Back.add(neuesSpiel, new org.netbeans.lib.awtextra.AbsoluteConstraints(289, 447, 394, 68));
familienDuellLabel.setFont(new java.awt.Font("Tahoma", 1, 36));
familienDuellLabel.setForeground(new java.awt.Color(255, 255, 0));
familienDuellLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
familienDuellLabel.setText("Skynetduell");
Back.add(familienDuellLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(289, 32, 394, 53));
benutzerPunkteLabel.setFont(new java.awt.Font("Tahoma", 0, 14));
benutzerPunkteLabel.setForeground(new java.awt.Color(255, 255, 0));
benutzerPunkteLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
benutzerPunkteLabel.setText("0");
Back.add(benutzerPunkteLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(84, 278, 159, 27));
skynetPunkteLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
skynetPunkteLabel.setForeground(new java.awt.Color(255, 255, 0));
skynetPunkteLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
skynetPunkteLabel.setText("0");
Back.add(skynetPunkteLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(821, 278, 86, 26));
skynetGewinnerLabel.setFont(new java.awt.Font("Tahoma", 1, 24));
skynetGewinnerLabel.setForeground(new java.awt.Color(255, 255, 0));
skynetGewinnerLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
skynetGewinnerLabel.setText("Skynet hat dir den ***** versolt!");
Back.add(skynetGewinnerLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(289, 233, 394, 33));
antwortButton.setBackground(new java.awt.Color(255, 255, 0));
antwortButton.setText("Antworten");
antwortButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
antwortButtonActionPerformed(evt);
}
});
Back.add(antwortButton, new org.netbeans.lib.awtextra.AbsoluteConstraints(590, 580, 90, -1));
antwortFeld.setHorizontalAlignment(javax.swing.JTextField.CENTER);
antwortFeld.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
antwortFeldActionPerformed(evt);
}
});
Back.add(antwortFeld, new org.netbeans.lib.awtextra.AbsoluteConstraints(288, 580, 290, -1));
frageLabel.setForeground(new java.awt.Color(255, 255, 0));
frageLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
Back.add(frageLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(7, 533, 990, 40));
benutzerGewinnerLabel.setFont(new java.awt.Font("Tahoma", 1, 24));
benutzerGewinnerLabel.setForeground(new java.awt.Color(255, 255, 0));
benutzerGewinnerLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
benutzerGewinnerLabel.setText("Sie haben Skynet besiegt!");
Back.add(benutzerGewinnerLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(289, 96, 394, 40));
benutzerFalscheAntwortZaehlerLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
benutzerFalscheAntwortZaehlerLabel.setForeground(new java.awt.Color(255, 255, 0));
benutzerFalscheAntwortZaehlerLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
benutzerFalscheAntwortZaehlerLabel.setText("0");
Back.add(benutzerFalscheAntwortZaehlerLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(84, 308, 159, 46));
skynetFalscheAntwortZaehlerLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
skynetFalscheAntwortZaehlerLabel.setForeground(new java.awt.Color(255, 255, 0));
skynetFalscheAntwortZaehlerLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
skynetFalscheAntwortZaehlerLabel.setText("0");
Back.add(skynetFalscheAntwortZaehlerLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(821, 311, 86, 37));
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));
jLabel1.setForeground(new java.awt.Color(255, 255, 0));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jLabel1.setText("SIE");
Back.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(84, 233, 153, 33));
jLabel2.setFont(new java.awt.Font("Tahoma", 1, 18));
jLabel2.setForeground(new java.awt.Color(255, 255, 0));
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel2.setText("Skynet");
Back.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(701, 233, 206, 33));
jLabel3.setForeground(new java.awt.Color(255, 255, 0));
jLabel3.setText("Punkte");
Back.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 280, 48, 27));
jLabel4.setForeground(new java.awt.Color(255, 255, 0));
jLabel4.setText("Fehler");
Back.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 308, 56, 46));
jLabel5.setForeground(new java.awt.Color(255, 255, 0));
jLabel5.setText("Punkte");
Back.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(925, 279, 48, 26));
jLabel6.setForeground(new java.awt.Color(255, 255, 0));
jLabel6.setText("Fehler");
Back.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(925, 311, 87, 40));
skySagt.setFont(new java.awt.Font("Tahoma", 0, 24));
skySagt.setForeground(new java.awt.Color(255, 255, 0));
skySagt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
skySagt.setText("Skynet generiert Antworten");
Back.add(skySagt, new org.netbeans.lib.awtextra.AbsoluteConstraints(289, 374, 394, 37));
jLabel7.setForeground(new java.awt.Color(255, 255, 0));
jLabel7.setText("--Copyright by Martin Lubczyk ---");
Back.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 650, 1010, -1));
getContentPane().add(Back, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, 680));
pack();
}
private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {
startButton.setVisible(false);
fragenUAntworten = new FragenUndAntworten();
frageLabel.setText(fragenUAntworten.fragen.get(berechneFrageIndex()));
antwortFeld.setVisible(true);
benutzerFalscheAntwortZaehlerLabel.setVisible(true);
benutzerPunkteLabel.setVisible(true);
neuesSpiel.setVisible(false);
antwortButton.setVisible(true);
jLabel1.setVisible(true);
jLabel2.setVisible(true);
jLabel3.setVisible(true);
jLabel4.setVisible(true);
jLabel5.setVisible(true);
jLabel6.setVisible(true);
skynetFalscheAntwortZaehlerLabel.setVisible(true);
skynetPunkteLabel.setVisible(true);
}
private void neuesSpielMouseReleased(java.awt.event.MouseEvent evt) {
fragenUAntworten = new FragenUndAntworten();
frageLabel.setText(fragenUAntworten.fragen.get(berechneFrageIndex()));
antwortFeld.setVisible(true);
antwortButton.setVisible(true);
benutzerPunkteLabel.setText("0");
skynetGewinnerLabel.setVisible(false);
benutzerGewinnerLabel.setVisible(false);
neuesSpiel.setVisible(false);
benutzerPunkte = 0;
skynetPunkteLabel.setText("0");
skynetPunkte = 0;
benutzerFalscheAntwortZaehlerLabel.setText("0");
falscheAntwortZaehler = 0;
skynetFalscheAntwortZaehlerLabel.setText("0");
}
private void antwortFeldActionPerformed(java.awt.event.ActionEvent evt) {
antwort = antwortFeld.getText();
System.out.println(antwort);
benutzer();
System.out.println(antwortFeld.getText());
}
private void antwortButtonActionPerformed(java.awt.event.ActionEvent evt) {
antwort = antwortFeld.getText();
System.out.println(antwort);
benutzer();
System.out.println(antwortFeld.getText());
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Gui().setVisible(true);
}
});
}
private javax.swing.JPanel Back;
private javax.swing.JButton antwortButton;
private javax.swing.JTextField antwortFeld;
private javax.swing.JLabel benutzerFalscheAntwortZaehlerLabel;
private javax.swing.JLabel benutzerGewinnerLabel;
private javax.swing.JLabel benutzerPunkteLabel;
private javax.swing.JLabel familienDuellLabel;
private javax.swing.JLabel frageLabel;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JButton neuesSpiel;
private javax.swing.JLabel skySagt;
private javax.swing.JLabel skynetFalscheAntwortZaehlerLabel;
private javax.swing.JLabel skynetGewinnerLabel;
private javax.swing.JLabel skynetPunkteLabel;
private javax.swing.JButton startButton;
private int frageIndex;
private String antwort;
private String fragen;
private int falscheAntwortZaehler = 0;
private int benutzerPunkte = 0;
private int skynetPunkte = 0;
private FragenUndAntworten fragenUAntworten;
private Integer anzahlAntwortZurFrage;
}