• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Hilfe bei Java Nimmspiel

mucke

Celler Dickstiel
Registriert
28.06.08
Beiträge
798
Hallo
irgendwie finde ich mein fehler nicht bei der Spielfeld ausgabe. Die Spielregeln stehn auch schon dabei. ahja und beim else vom spielzugComputer komme ich auch nicht weiter. Wenn sich das spielfeld durch 4 teilen lässt soll er 3 nehmen und sonst soll er so nehmen das er immer die 4 und 8 voll macht.Ich hoffe das mir jemand helfen kann.

/* Testat */

public class Testat2

{
public static void main (String[] args)
{
System.out.println("Erläuterung der Spielregeln:");
System.out.println("Das Spiel wird mit zwei Spielern gespielt. Jeder der beiden Spieler setzt 1 Euro zu 10 mal 10 Cent. Diese werden in eine Reihe gelegt, wobei 11 mal 10 Cent einzeln und am Ende 1 mal 90 Cent (gestapelt) gelegt werden. Nun darf jeder abwechselnd 1, 2 oder 3 Positionen der Reihe vom Anfang beginnend entfernen. Dieses Geld gehört ihm. Es besteht Zugzwang. Wenn alle Positionen entfernt wurden, ist das Spiel zu Ende. Natürlich hat derjenige, der Position 12 erreicht, Gewinn gemacht, der andere den entsprechenden Verlust.");

int spieler;
{
System.out.println(" Wer soll beginnen? (0: Computer 1: Ich)");
spieler = Read.getInt();
}
if (spieler == 1)
{
System.out.println(" Spieler beginnt");
}
else if (spieler == 0)
{
System.out.println(" Computer beginnt");
}

spiel (spieler);
// int gesGewinnPc=0;
// int gesGewinnSp=0;
//Endergebniss
}
static int spiel(int spieler)
{

int spielstand= 0;
spielfeld(spielstand);
int zug= 0;

while (spielstand < 12)
{
if ( spieler == 1)
{
spielzugSpieler (spielstand, zug);
spieler--;
}

else
{
spielzugComputer (spielstand,zug);
spieler++;
}

spielfeld (spielstand);
}

return spielstand;

}
static void spielzugComputer(int spielstand, int zug)
{
if (spielstand % 4==0)
{
spielstand += 3;
System.out.println(" Computer nimmt: " + spielstand);
}
else
{
spielstand += 2;
System.out.println(" Computer nimmt: " + spielstand);
}


}
static int spielzugSpieler (int spielstand, int zug)
{

System.out.println(" Wieviel Muenzen willst du nehmen? ");
zug = Read.getInt();

return spielstand;

}

static void spielfeld (int spielstand)
{
if (spielstand == 12)
{
System.out.println("xxxxxxxxxxX");
}
else
{
for (int i = 0; i < spielstand; i++)
{
System.out.print("x");
}

int rest = 11 - spielstand;
for (int i = 0;i < rest; i++)
{
System.out.print("o");
}
System.out.print("O");
}
}
}
 

BigDan

Granny Smith
Registriert
04.07.07
Beiträge
17
Moin!

Also so gaanz habe ich das Spiel noch nicht verstanden . . . und die Frage auch nicht, aber könnte das Problem vielleicht in der if liegen_
Code:
static void spielzugComputer(int spielstand, int zug)
    {
        if (spielstand % 4==0)
        {
            spielstand += 3;
            System.out.println(" Computer nimmt: " + spielstand);
        }
        else
        {
            spielstand += 2;
            System.out.println(" Computer nimmt: " + spielstand);
        }


Ich kenn mich jetzt nicht genug mit der vorrangigkeit der Operatoren bei Java aus, aber koennte eine einfache Klammer um
Code:
spielstand % 4
nicht das gewünschte Ergebnis bringen?

Gruss

Daniel