Hallo,
hab im nachfolgenden einen Code, für eine variante eines Münzspiels(ja erstmal
alles statisch )
In diesem Code zeichne ich ein Spielfeld auf (Beschreibung steht im Code),
welches dann im Laufe des Spiels verändert werden soll. Leider wird das
nicht getan und ich finde nicht warum. Das Feld wird nach jedem Durchlauf
der Spielschlaife wieder so aufgezeichnet, als wäre noch kein Zug gemacht worden.
hab im nachfolgenden einen Code, für eine variante eines Münzspiels(ja erstmal
alles statisch )
In diesem Code zeichne ich ein Spielfeld auf (Beschreibung steht im Code),
welches dann im Laufe des Spiels verändert werden soll. Leider wird das
nicht getan und ich finde nicht warum. Das Feld wird nach jedem Durchlauf
der Spielschlaife wieder so aufgezeichnet, als wäre noch kein Zug gemacht worden.
Java:
import java.util.Scanner;
public class MuenzSpiel
{
public static void main(String[] args)
{
int anzahlStapel = 12, anzahlStapelWeg = 0;
int playerWin = 0, cpuWin = 0;
int spielzugSpieler = 0, spielzugComputer = 0;
spielStarten();
if(spielAuswahl() == 1)
{
do
{
werBeginnt();
if(werBeginntAuswahl() == 1)
{
spielFeld(anzahlStapel, anzahlStapelWeg);
do
{
spielzugSpieler(anzahlStapel, anzahlStapelWeg, playerWin, spielzugSpieler);
spielzugComputer(anzahlStapel, anzahlStapelWeg, cpuWin, spielzugComputer);
gewonnenSpieler(anzahlStapel, playerWin);
}while(anzahlStapel != 0);
}
else
{
spielFeld(anzahlStapel, anzahlStapelWeg);
do
{
spielzugComputer(anzahlStapel, anzahlStapelWeg, cpuWin, spielzugComputer);
spielzugSpieler(anzahlStapel, anzahlStapelWeg, playerWin, spielzugSpieler);
gewonnenComputer(anzahlStapel, cpuWin);
}while(anzahlStapel != 0);
}
nochmal(playerWin, cpuWin);
}while(nochmalAuswahl() == 1);
}
else
{
System.out.println("Auf wiedersehen! Bis zum naechsten mal!");
System.exit(0);
}
}
//*****************************************************************************************************************************************
static void spielStarten()
{
System.out.println("*******************************************************************************");
System.out.println("* Das Spiel wird mit zwei Spielern gespielt. Jeder der beiden Spieler setzt *");
System.out.println("* 1 Euro zu 10 mal 10 Cent. Diese werden in eine Reihe gelegt, wobei 11 mal *");
System.out.println("* 10 Cent einzeln und am Ende 1 mal 90 Cent (gestapelt) gelegt werden. Nun *");
System.out.println("* darf jeder abwechselnd 1, 2 oder 3 Positionen der Reihe vom Anfang *");
System.out.println("* beginnend entfernen. Dieses Geld gehoert ihm. Es besteht Zugzwang. Wenn *");
System.out.println("* alle Positionen entfernt wurden, ist das Spiel zu Ende. Natuerlich hat *");
System.out.println("* derjenige, der Position 12 erreicht, Gewinn gemacht, der andere den *");
System.out.println("* entsprechenden Verlust. *");
System.out.println("*******************************************************************************");
System.out.println("* 1: Ich will spielen!!! *");
System.out.println("* 0: Lieber nicht, ist mir zu kompliziert!!! *");
System.out.println("*******************************************************************************");
}
//*****************************************************************************************************************************************
static int spielAuswahl()
{
int auswahl = 0;
do
{
Scanner sc = new Scanner(System.in);
auswahl = sc.nextInt();
}while(auswahl != 1 && auswahl != 0);
return auswahl;
}
//*****************************************************************************************************************************************
static void werBeginnt()
{
System.out.println("*******************************************************************************");
System.out.println("* Wer soll beginnen? *");
System.out.println("*******************************************************************************");
System.out.println("* 1: Ich will anfangen!!! *");
System.out.println("* 0: Lass mal lieber den Computer, der kann das besser. *");
System.out.println("*******************************************************************************");
}
//*****************************************************************************************************************************************
static int werBeginntAuswahl()
{
int auswahl = 0;
do
{
Scanner sc = new Scanner(System.in);
auswahl = sc.nextInt();
}while(auswahl != 1 && auswahl != 0);
return auswahl;
}
//*****************************************************************************************************************************************
static void spielFeld(int anzahlStapel, int anzahlStapelWeg)
{
String letztesO = "O";
for(int i = 0; i < anzahlStapelWeg; i++)
{
System.out.print("x ");
}
for(int i = 1; i < anzahlStapel; i++)
{
System.out.print("o ");
}
if(anzahlStapelWeg == 12)
{
letztesO = "\n";
}
System.out.println(letztesO);
}
//*****************************************************************************************************************************************
static void spielzugSpieler(int anzahlStapel, int anzahlStapelWeg, int playerWin, int spielzugSpieler)
{
Scanner sc = new Scanner(System.in);
do
{
System.out.print("Wie viele Stapel moechtest du nehmen? ");
spielzugSpieler = sc.nextInt();
if(spielzugSpieler > anzahlStapel)
{
System.out.println("Nicht so gierig! Nimm weniger! ");
}
}while((spielzugSpieler != 1 && spielzugSpieler != 2 && spielzugSpieler != 3) || (spielzugSpieler > anzahlStapel));
anzahlStapel = anzahlStapel - spielzugSpieler;
anzahlStapelWeg = anzahlStapelWeg + spielzugSpieler;
spielFeld(anzahlStapel, anzahlStapelWeg);
gewonnenSpieler(anzahlStapel, playerWin);
}
//*****************************************************************************************************************************************
static void spielzugComputer(int anzahlStapel, int anzahlStapelWeg, int cpuWin, int spielzugComputer)
{
do
{
spielzugComputer = (int)(Math.random()*3+1);
}while(spielzugComputer > anzahlStapel);
System.out.println("Der Computer zieht: " +spielzugComputer);
anzahlStapel = anzahlStapel - spielzugComputer;
anzahlStapelWeg = anzahlStapelWeg + spielzugComputer;
spielFeld(anzahlStapel, anzahlStapelWeg);
gewonnenComputer(anzahlStapel, cpuWin);
}
//*****************************************************************************************************************************************
static int gewonnenSpieler(int anzahlStapel, int playerWin)
{
int gewonnen = 0;
if(anzahlStapel == 0)
{
gewonnen = 1;
playerWin = playerWin + 1;
playerWin();
}
return gewonnen;
}
//*****************************************************************************************************************************************
static int gewonnenComputer(int anzahlStapel, int cpuWin)
{
int gewonnen = 0;
if(anzahlStapel == 0)
{
gewonnen = 1;
cpuWin = cpuWin + 1;
cpuWin();
}
return gewonnen;
}
//*****************************************************************************************************************************************
static void playerWin()
{
System.out.println("*******************************************************************************");
System.out.println("* *");
System.out.println("* Gewonnen!!! *");
System.out.println("* *");
System.out.println("* *");
System.out.println("* x x x x x x x x x x x X *");
}
//*****************************************************************************************************************************************
static void cpuWin()
{
System.out.println("*******************************************************************************");
System.out.println("* Leider verloren!!!! *");
}
//*****************************************************************************************************************************************
static void nochmal(int playerWin, int cpuWin)
{
System.out.println("*******************************************************************************");
System.out.println("* Score: ");
System.out.println("* Spieler " +playerWin+ ":" +cpuWin+ " Computer ");
System.out.println("*******************************************************************************");
System.out.println("* 1: Nochmal!!! *");
System.out.println("* 0: Mir reichts!!! *");
System.out.println("*******************************************************************************");
}
//*****************************************************************************************************************************************
static int nochmalAuswahl()
{
int auswahl = 0;
do
{
Scanner sc = new Scanner(System.in);
auswahl = sc.nextInt();
}while(auswahl != 1 && auswahl != 0);
return auswahl;
}
//*****************************************************************************************************************************************
}