Hallo,
wir sind im ersten Semester und sollen VierGewinnt programmieren. Mein Kollege und ich haben mit ganz viel Mühe das BaseGame erstellt. Jetzt soll vor Beginn des Spiels gefragt werden, ob man gegen den CPU spielen möchte oder gegeneinander.. wir haben leider noch nicht soviel Praxis sammeln dürfen nur 3Tage für die Aufgabe erhalten.. deswegen tun wir uns sehr schwer damit. wäre cool wenn ihr Lösungsansätze hättet.. unten kommr der Code..
wir sind im ersten Semester und sollen VierGewinnt programmieren. Mein Kollege und ich haben mit ganz viel Mühe das BaseGame erstellt. Jetzt soll vor Beginn des Spiels gefragt werden, ob man gegen den CPU spielen möchte oder gegeneinander.. wir haben leider noch nicht soviel Praxis sammeln dürfen nur 3Tage für die Aufgabe erhalten.. deswegen tun wir uns sehr schwer damit. wäre cool wenn ihr Lösungsansätze hättet.. unten kommr der Code..
Java:
package connect4;
//Am anfang aussuchen ob 1v1 oder gegen Computer
//eigabe mit a b c d... nicht nummern
//wenn fertig gefragt ob noch eine
import java.util.Scanner;
public class Connect {
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
//Länge und Breite des Spielfeldes festlegen
char[][] raster = new char[6][7];
//Erschaffung vom Spielfeld
for (int zeile= 0; zeile< raster.length; zeile++){
for (int spalte = 0; spalte < raster[0].length; spalte++){
raster[zeile][spalte] = ' ';
}
}
int turn = 1;
char spieler = 'R';
boolean gewinner = false;
while (gewinner == false && turn <= 42){
boolean validerSpielzug;
int play;
do {
display(raster);
System.out.println("Spieler 1 hat die Farbe Rot");
System.out.println("Spieler 2 hat die Farbe Gelb");
System.out.print("Spieler " + spieler + ", suche eine Säule aus: ");
play = scan.nextInt();
if(play > 6)
System.err.println("Dies ist nicht Spielbar, bitte geben sie eine Spielbare Antwort an! ");
else if(play < 0)
System.err.println("Dies ist nicht Spielbar, bitte geben sie eine Spielbare Antwort an! ");
validerSpielzug = validate(play,raster);
}while (validerSpielzug == false);
//drop the checker
for (int zeile= raster.length-1; zeile>= 0; zeile--){
if(raster[zeile][play] == ' '){
raster[zeile][play] = spieler;
break;
}
}
//Herausfinden ob es ein Gegewinner gibt
gewinner = isgewinner(spieler,raster);
//Spiler wechseln
if (spieler == 'R'){
spieler = 'G';
}else{
spieler = 'R';
}
turn++;
}
display(raster);
if (gewinner){
if (spieler=='R'){
System.out.println("Gelb gewinnt.Willst du noch eine Runde spielen?");
}else{
System.out.println("Rot gewinnt.Willst du noch eine Runde spielen?");
}
}else{
System.out.println("Unentschieden. Willst du noch eine Runde spielen)");
}
}
}
public static void display(char[][] raster){
System.out.println(" A B C D E F G");
System.out.println("---------------");
for (int zeile= 0; zeile< raster.length; zeile++){
System.out.print("|");
for (int spalte = 0; spalte < raster[0].length; spalte++){
System.out.print(raster[zeile][spalte]);
System.out.print("|");
}
System.out.println();
System.out.println("---------------");
}
System.out.println(" A B C D E F G");
System.out.println();
}
public static boolean validate(int spalte, char[][] raster){
if (spalte < 0 || spalte > raster[0].length){
return false;
}
if (raster[0][spalte] != ' '){
return false;
}
return true;
}
public static boolean isgewinner(char spieler, char[][] raster){
//Prüfung ob es 4 quer gibt
for(int zeile= 0; zeile<raster.length; zeile++){
for (int spalte = 0;spalte < raster[0].length - 3;spalte++){
if (raster[zeile][spalte] == spieler &&
raster[zeile][spalte+1] == spieler &&
raster[zeile][spalte+2] == spieler &&
raster[zeile][spalte+3] == spieler){
return true;
}
}
}
//Prüfung ob es 4 nach oben oder unten gibt
for(int zeile= 0; zeile< raster.length - 3; zeile++){
for(int spalte = 0; spalte < raster[0].length; spalte++){
if (raster[zeile][spalte] == spieler &&
raster[zeile+1][spalte] == spieler &&
raster[zeile+2][spalte] == spieler &&
raster[zeile+3][spalte] == spieler){
return true;
}
}
}
//Kontrolle der Diagonale nach oben
for(int zeile= 3; zeile< raster.length; zeile++){
for(int spalte = 0; spalte < raster[0].length - 3; spalte++){
if (raster[zeile][spalte] == spieler &&
raster[zeile-1][spalte+1] == spieler &&
raster[zeile-2][spalte+2] == spieler &&
raster[zeile-3][spalte+3] == spieler){
return true;
}
}
}
//Kontrolle der Diagonale nach unten
for(int zeile= 0; zeile< raster.length - 3; zeile++){
for(int spalte = 0; spalte < raster[0].length - 3; spalte++){
if (raster[zeile][spalte] == spieler &&
raster[zeile+1][spalte+1] == spieler &&
raster[zeile+2][spalte+2] == spieler &&
raster[zeile+3][spalte+3] == spieler){
return true;
}
}
}
return false;
}
{
} }