diff --git a/bin/graphik/Graphik$1.class b/bin/graphik/Graphik$1.class index c64ade0..e6d2214 100644 Binary files a/bin/graphik/Graphik$1.class and b/bin/graphik/Graphik$1.class differ diff --git a/bin/graphik/Graphik$2.class b/bin/graphik/Graphik$2.class index 163f8c0..15d82d8 100644 Binary files a/bin/graphik/Graphik$2.class and b/bin/graphik/Graphik$2.class differ diff --git a/bin/graphik/Graphik.class b/bin/graphik/Graphik.class index 42cb758..d46c548 100644 Binary files a/bin/graphik/Graphik.class and b/bin/graphik/Graphik.class differ diff --git a/bin/graphik/SpielmodusDialog.class b/bin/graphik/SpielmodusDialog.class index 880ad24..41dc677 100644 Binary files a/bin/graphik/SpielmodusDialog.class and b/bin/graphik/SpielmodusDialog.class differ diff --git a/bin/server/Server.class b/bin/server/Server.class index 0ded90f..7016f19 100644 Binary files a/bin/server/Server.class and b/bin/server/Server.class differ diff --git a/src/graphik/Graphik.java b/src/graphik/Graphik.java index b1b529e..4457d33 100644 --- a/src/graphik/Graphik.java +++ b/src/graphik/Graphik.java @@ -83,9 +83,8 @@ public Graphik(Model model, final Client client) { this.setLayout(null); this.setLocationRelativeTo(null); this.initGUI(); - this.setVisible(true); - this.pack(); this.setSize(1130, 740); + this.setVisible(true); this.addWindowListener(new WindowListener() { @@ -151,7 +150,7 @@ private void initGUI() { gegenspielerKarten[0].nachricht("Spieler 1"); hintergrund.add(gegenspielerKarten[1]); - gegenspielerKarten[1].setBounds(breite, 0, breite, hoehe); + gegenspielerKarten[1].setBounds(breite, 10, breite, hoehe); gegenspielerKarten[1].nachricht("Spieler 2"); @@ -164,11 +163,11 @@ private void initGUI() { spielerKarten = new Spieler(440, 120); hintergrund.add(spielerKarten); //Unterhalb der eigenen Meldungen platziert - spielerKarten.setLocation(this.getWidth() / 2 - 220, hoehe*2 + 100); + spielerKarten.setLocation(this.getWidth() / 2 - 220, hoehe*2 + 90); spielerKarten.setVisible(true); //Meldungen des Spielers (4 Meldungen werden angezeigt) - spielerMeldungen = new Meldungen(5); + spielerMeldungen = new Meldungen(4); hintergrund.add(spielerMeldungen); //Die Meldungen laufen im letzten Fünftel des Fensters spielerMeldungen.setBounds(breite, hoehe*2, breite, hoehe); @@ -206,7 +205,7 @@ public void actionPerformed(ActionEvent evt) { konto = new Konto(); hintergrund.add(konto); - konto.setLocation(10, this.getHeight() - 210); + konto.setLocation(10, this.getHeight() - 230); konto.setVisible(true); //-------------------------------------------------------------hintergrund diff --git a/src/graphik/Konto.java b/src/graphik/Konto.java index caf18fd..2fef0ae 100644 --- a/src/graphik/Konto.java +++ b/src/graphik/Konto.java @@ -18,23 +18,23 @@ public Konto() { this.setLayout(null); kontostand = new JLabel(); - this.add(kontostand); - kontostand.setBounds(50, 65, 100, 30); + this.add(kontostand); + kontostand.setBounds(35, 60, 130, 30); kontostand.setText("Konto: "); - kontostand.setOpaque(false); + kontostand.setOpaque(false); kontostand.setForeground(Color.white); - + Font schrift = kontostand.getFont(); - schrift = schrift.deriveFont(schrift.BOLD); + schrift = schrift.deriveFont(schrift.BOLD, 20); kontostand.setFont(schrift); stock = new JLabel(); this.add(stock); - stock.setBounds(50, 105, 100, 30); + stock.setBounds(35, 110, 130, 30); stock.setText("Stock: "); stock.setOpaque(false); stock.setForeground(Color.white); - + stock.setFont(schrift); } diff --git a/src/graphik/SpielmodusDialog.java b/src/graphik/SpielmodusDialog.java index dab6a2f..98febd3 100644 --- a/src/graphik/SpielmodusDialog.java +++ b/src/graphik/SpielmodusDialog.java @@ -219,7 +219,7 @@ public String modusZuSprache(modus m) { return "ein Sie"; } - return "nichts"; + return "Nichts"; } public void reset() { diff --git a/src/graphik/karten/holzschale.png b/src/graphik/karten/holzschale.png index 35c7c6a..b18ea2c 100644 Binary files a/src/graphik/karten/holzschale.png and b/src/graphik/karten/holzschale.png differ diff --git a/src/server/Server.java b/src/server/Server.java index 965d100..4189356 100644 --- a/src/server/Server.java +++ b/src/server/Server.java @@ -121,17 +121,19 @@ public Server(Graphik graphik, int port) { public void run() { try { while(!beenden) { - //Akzeptiert die Verbindung - Socket client = server.accept(); - - Mensch neuerSpieler = new Mensch(client, this); - spieler.add(neuerSpieler); - - neuerSpieler.name(); - - ViewTextSetzen(); - - starten(); + if(spieler.size() < 4) { + //Akzeptiert die Verbindung + Socket client = server.accept(); + + Mensch neuerSpieler = new Mensch(client, this); + spieler.add(neuerSpieler); + + neuerSpieler.name(); + + ViewTextSetzen(); + + starten(); + } } } catch(Exception e) { e.printStackTrace(); @@ -168,9 +170,6 @@ private void starten() throws Exception { */ private void neuesSpiel() throws Exception { - synchronized (model) { - synchronized (spieler) { - //Spiel wurde gestartet while(!nocheins) { @@ -235,8 +234,6 @@ private void neuesSpiel() throws Exception { //neue Runde naechster(); } - }//synchronized spieler - }//synchronized model } /** @@ -544,17 +541,21 @@ private synchronized void rundeBeenden() { } //Den Spielern Geld abziehen oder hinzufügen + ArrayList neuesKonto = new ArrayList(4); + for(int i = 0; i < 4; i++) { + neuesKonto.add(0); + } //Wenn die Spielenden verloren haben if(spielt > 9) { - konto.set(spielt - 10, konto.get(spielt - 10) - abrechnung(true, pSpielt)); + neuesKonto.set(spielt - 10, konto.get(spielt - 10) - abrechnung(true, pSpielt)); if(mitspieler != 4) { - konto.set(mitspieler - 10, konto.get(mitspieler - 10) - abrechnung(true, pSpielt)); + neuesKonto.set(mitspieler - 10, konto.get(mitspieler - 10) - abrechnung(true, pSpielt)); } } else { //Wenn die Spielenden gewonnen haben - konto.set(spielt, konto.get(spielt) + abrechnung(true, 120 - pSpielt)); + neuesKonto.set(spielt, konto.get(spielt) + abrechnung(true, 120 - pSpielt)); if(mitspieler != 4) { - konto.set(mitspieler, konto.get(mitspieler) + abrechnung(true, 120 - pSpielt)); + neuesKonto.set(mitspieler, konto.get(mitspieler) + abrechnung(true, 120 - pSpielt)); } //Wenn ein Sauspiel gewonnen wurde, wird der Stock aufgeteilt @@ -562,8 +563,12 @@ private synchronized void rundeBeenden() { || mod.equals(modus.SAUSPIELgras) || mod.equals(modus.SAUSPIELherz) || mod.equals(modus.SAUSPIELschellen)) { - konto.set(spielt, konto.get(spielt) + stock / 2); - konto.set(mitspieler, konto.get(mitspieler) + stock / 2); + //Konto aktualiesieren + konto.set(spielt, neuesKonto.get(spielt)); + konto.set(mitspieler, neuesKonto.get(mitspieler)); + //und Stock addieren + neuesKonto.set(spielt, konto.get(spielt) + stock / 2); + neuesKonto.set(mitspieler, konto.get(mitspieler) + stock / 2); stock = 0; } } @@ -571,13 +576,15 @@ private synchronized void rundeBeenden() { if(i != spielt && i != spielt - 10 && i != mitspieler && i != mitspieler - 10) { if(spielt > 9) { //Die Spielenden haben verloren - konto.set(i, konto.get(i) + abrechnung(false, pSpielt)); + neuesKonto.set(i, konto.get(i) + abrechnung(false, pSpielt)); } else { //Die Spielenden haben gewonnen - konto.set(i, konto.get(i) - abrechnung(false, 120 - pSpielt)); + neuesKonto.set(i, konto.get(i) - abrechnung(false, 120 - pSpielt)); } } } + + konto = neuesKonto; } /** @@ -661,10 +668,11 @@ private int abrechnung(boolean spieler, int punkteVerlierer) { /** * Füllt den Stock auf */ - private void stock() { + private void stock() { stock += (tarif * 4); for(int i = 0; i < 4; i++) { - konto.set(i, konto.get(i) - tarif); + int k = konto.get(i); + konto.set(i, k - tarif); } }