Java :: Aufgabe #41 :: Lösung #1
2 Lösungen

#41
4 Gewinnt für die Konsole
Anfänger - Java
von Gustl
- 05.01.2013 um 16:57 Uhr
Es soll 4 Gewinnt für die Konsole programmiert werden.
2 Spieler spielen gegeneinander, ohne Computergegner (ohne künstliche Intelligenz), spielen können.
Optional mit Computergegner, aber bitte in der Beschreibung dann angeben.
2 Spieler spielen gegeneinander, ohne Computergegner (ohne künstliche Intelligenz), spielen können.
Optional mit Computergegner, aber bitte in der Beschreibung dann angeben.
#1

von bequiet (220 Punkte)
- 27.06.2013 um 13:18 Uhr

import java.util.*; public class Hauptprogramm { public Hauptprogramm() { } public static void initialisiereSpielmenue(int zeile, int spalte) { //Objekter andere Klassen Spielfeld sp1 = new Spielfeld(zeile,spalte); Spieler spieler1 = new Spieler("Sabrina", 1); Spieler spieler2 = new Spieler("Olli", 2); //aktueller Spieler Spieler aktuellerSpieler = spieler1; //Scanner Scanner sc = new Scanner(System.in); // Spielfeld ausgaben do { System.out.println(aktuellerSpieler.getName() + ", Sie sind an der Reihe!"); System.out.println(); sp1.ausgabeSpielfeld(); System.out.println(); System.out.println("Bitte wählen Sie die Spalte aus! (Wert zwischen 0 und " + spalte + ")"); System.out.println("bei Eingaben über " + spalte + " wird das Spiel beendet!"); int eingabe = sc.nextInt(); if(eingabe >= 0 && eingabe < spalte) { sp1.setzeSpielstein(aktuellerSpieler.getSpielerNr(), eingabe); if(aktuellerSpieler.getSpielerNr() == 1) { aktuellerSpieler = spieler2; } else { aktuellerSpieler = spieler1; } } else { beendeSpiel(); } } while(sp1.unentschieden() == false && sp1.testeReihe(aktuellerSpieler.getSpielerNr()) == false); System.out.println("Herzlichen Glückwunsch, " + aktuellerSpieler.getName() + " hat gewonnen!!"); beendeSpiel(); } public static void initialisiereMenue() { System.out.println("Willkommen bei 4 Gewinnt!"); System.out.println(); System.out.println("Spiel beginnen: [1]"); System.out.println("Spiel beenden: [beliebige Eingabe]"); Scanner sc = new Scanner(System.in); int eingabe = sc.nextInt(); if(eingabe == 1) { Hauptprogramm.initialisiereSpielmenue(6,7); } else { beendeSpiel(); } } public static void beendeSpiel() { System.exit(0); } }

import java.util.*; public class Hauptprogramm { public Hauptprogramm() { } public static void initialisiereSpielmenue(int zeile, int spalte) { //Objekter andere Klassen Spielfeld sp1 = new Spielfeld(zeile,spalte); Spieler spieler1 = new Spieler("Sabrina", 1); Spieler spieler2 = new Spieler("Olli", 2); //aktueller Spieler Spieler aktuellerSpieler = spieler1; //Scanner Scanner sc = new Scanner(System.in); // Spielfeld ausgaben do { System.out.println(aktuellerSpieler.getName() + ", Sie sind an der Reihe!"); System.out.println(); sp1.ausgabeSpielfeld(); System.out.println(); System.out.println("Bitte wählen Sie die Spalte aus! (Wert zwischen 0 und " + spalte + ")"); System.out.println("bei Eingaben über " + spalte + " wird das Spiel beendet!"); int eingabe = sc.nextInt(); if(eingabe >= 0 && eingabe < spalte) { sp1.setzeSpielstein(aktuellerSpieler.getSpielerNr(), eingabe); if(aktuellerSpieler.getSpielerNr() == 1) { aktuellerSpieler = spieler2; } else { aktuellerSpieler = spieler1; } } else { beendeSpiel(); } } while(sp1.unentschieden() == false && sp1.testeReihe(aktuellerSpieler.getSpielerNr()) == false); System.out.println("Herzlichen Glückwunsch, " + aktuellerSpieler.getName() + " hat gewonnen!!"); beendeSpiel(); } public static void initialisiereMenue() { System.out.println("Willkommen bei 4 Gewinnt!"); System.out.println(); System.out.println("Spiel beginnen: [1]"); System.out.println("Spiel beenden: [beliebige Eingabe]"); Scanner sc = new Scanner(System.in); int eingabe = sc.nextInt(); if(eingabe == 1) { Hauptprogramm.initialisiereSpielmenue(6,7); } else { beendeSpiel(); } } public static void beendeSpiel() { System.exit(0); } }

public class Spielfeld { private int feld[][] = null; public Spielfeld(int x, int y) { feld = new int[x][y]; for(int i=0; i < feld.length; i++) { for(int j=0; j < feld[i].length; j++) { feld[i][j] = 0; } } } public void setzeSpielstein(int spielerNr, int spalte) { int x = feld.length-1; boolean fortsetzen = true; while(x >= 0 && fortsetzen == true) { if(feld[x][spalte] == 0 ) { feld[x][spalte] = spielerNr; fortsetzen = false; } x--; } if(x < 0) { System.out.println("Der Stein konnte nicht gesetzt werden!"); } } public void ausgabeSpielfeld() { for(int i=0; i < feld.length; i++) { for(int j=0; j < feld[i].length; j++) { System.out.print("| " + feld[i][j] + " |"); } System.out.println(); } } public boolean unentschieden() { boolean returnwert = false; if(getAnzahlGesetzterSteine() == feld.length*feld[0].length) { returnwert = true; } return returnwert; } public int getAnzahlGesetzterSteine() { int anzSteine = 0; for(int i=0; i < feld.length; i++) { for(int j=0; j < feld[i].length; j++) { if(feld[i][j] != 0) { anzSteine++; } } } return anzSteine; } public boolean testeReihe(int spielerNr) { boolean returnwert = false; if(getAnzahlGesetzterSteine() >= 7) { for(int i=0; i < feld.length; i++) { for(int j=0; j < feld.length; j++) { if(testeHorizontal(i,j,spielerNr) == true || testeVertikal(i,j,spielerNr) == true || testeQuer(i,j,spielerNr) == true ) { returnwert = true; } } } } else { return returnwert; } return returnwert; } public boolean testeHorizontal(int x, int y, int Spieler) { boolean returnwert = false; if(y + 3 < feld[x].length) { if(feld[x][y] == Spieler && feld[x][y+1] == Spieler && feld[x][y+2] == Spieler && feld[x][y+3] == Spieler) { returnwert = true; } } return returnwert; } public boolean testeVertikal(int x, int y, int Spieler) { boolean returnwert = false; if(x + 3 < feld.length) { if(feld[x][y] == Spieler && feld[x+1][y] == Spieler && feld[x+2][y] == Spieler && feld[x+3][y] == Spieler) { returnwert = true; } } return returnwert; } public boolean testeQuer(int x, int y, int Spieler) { boolean returnwert = false; if(x + 3 < feld.length && y + 3 < feld.length) { if(feld[x][y] == Spieler && feld[x+1][y+1] == Spieler && feld[x+2][y+2] == Spieler && feld[x+3][y+3] == Spieler) { returnwert = true; } } if(x - 3 >= 0 && y + 3 < feld.length) { if(feld[x][y] == Spieler && feld[x-1][y+1] == Spieler && feld[x-2][y+2] == Spieler && feld[x-3][y+3] == Spieler) { returnwert = true; } } return returnwert; } }

public class Testprogramm { public static void main(String[] args) { Hauptprogramm.initialisiereMenue(); } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1