# Streichholzspiel



## DoublexD (11. Jun 2012)

Hallo Leute,
ich soll als Hausaufgabe iene Streichholzspiel erstellen, bei dem jeweils Spieler und Computer 1-5 Streichhölzer ziehen bis einer das letzte ziehen muss, dieser ist dann der Verlierer.
Hier mein Versuch:
[Java]
public class Streichholzspiel {


	public static void main(String[] args) 
	{
		int Anzahl;
		int i;
		int Zufallszahl;



		Anzahl=(int) (Math.random() * (40 - 30) + 30); 
		System.out.println("Im Spiel sind "+Anzahl+" Streichhölzer.");


		do
		{
		System.out.println("Wie viele möchtest du ziehen?");
		i = In.readInt();

		if (i<=5)
			Anzahl= Anzahl-i;
		Zufallszahl =(int) (Math.random() * (5 - 1) + 1); 
		Anzahl=Anzahl-Zufallszahl;
		System.out.println("Der Computer hat "+Zufallszahl+" Streichhölzer gezogen.");
		System.out.println("Es sind noch "+Anzahl+" im Spiel.");
		}
		while (Anzahl>=0);
		{
					System.out.println("Das Spiel ist beendet.");


		}

	}
}
[/Java]
Es sind sicherlich noch ein paar Fehler drin. Danke schon mal im Vorraus!


----------



## VfL_Freak (11. Jun 2012)

Moin,

und was ist Deine Frage ???:L 

Gruß
Klaus


----------



## HimBromBeere (11. Jun 2012)

Die geschweiften Klammern um dein letztes sysout kannste dir sparen, oder sollen die zum While dazugehören (was aber absolut keinen Sinn ergeben würde). Mach mal alle Einrückungen richtig, dann siehste auch besser, welche Klammer wohin gehört.

Solange von dir keine spezielle Frage kommt oder ein Fehler, weil etewas nicht funktioniert (und: geht nicht, ist keine Fehlerbeschreibung), können wir dir nicht helfen. Also für mein Auge sieht das aber erstmal OK aus, über Sinn und Unsinn lässt sich ja streiten...

Andere Frage: läuft´s denn?


----------



## AquaBall (11. Jun 2012)

DoublexD hat gesagt.:


> ```
> int Anzahl;
> int i;
> int Zufallszahl;
> ```



CamelCase:
kleineVariablen!
GroßeKlassen!
methodenTunWas!
KONSTANTEN!


----------



## snm (11. Jun 2012)

Ich hab mir mal die Mühe gemacht und dein Programm ein bisschen überarbeitet und Anmerkungen dran geschrieben.
Guck dir das am besten erstmal an und, wenn du was nicht verstehst, dann frag einfach 


```
import java.util.Scanner;														// Importiert einen Scanner, um Zahlen einzulesen

public class Streichholzspiel {
 
    
    public static void main(String[] args) 
    {
        int anzahl;																// Variablennamen sollten immer klein geschrieben werden.
        int i;
        int zufallszahl;														// Das selbe hier
        Scanner scan = new Scanner(System.in);									// Erstellt einen Scanner, um die Zufallszahl einzulesen.
        
    
        
        anzahl=(int) (Math.random() * (40 - 30) + 30); 
        System.out.println("Im Spiel sind "+anzahl+" Streichhölzer.");
        
        
        do
        	{
        	System.out.println("Wie viele möchtest du ziehen?");
        	while ( true ){
        			i = scan.nextInt();											// Der Scanner liest die Eingabe ein.
        		if( i <= 5 && i >= 1)
        			break;														// Hier wird getestet, ob die eingegebene Zahl überhaupt im Wertebereich von 1 bis 5 liegt, ansonsten wird eine neue Eingabe erwartet.
        		System.out.println("Du kannst nur 1-5 Streichhölzer ziehen.");
        	}
        	//																		if (i<=5) Das kann jetzt weggelassen werden, weil es schon überprüft wurde.
        	anzahl -= i;														// Das ist die Kurzform für anzahl = anzahl - i;
        																		
        	if( anzahl <= 0 ){													// Wenn nach deinem Zug keine Streichhölzer mehr da sind, dann hast du verloren und die Scheife wird mit break; abgebrochen.
        		System.out.println("Das Spiel ist beendet.");
        		System.out.println("Du hast verloren!");
        		break;
        	}
        	zufallszahl = (int) (Math.random() * (5 - 1) + 1);					
        	anzahl -= zufallszahl;
        	System.out.println("Der Computer hat "+zufallszahl+" Streichhölzer gezogen.");
        	
        	if( anzahl <= 0 ){													// Hier steht dasselbe, wie an der vorherigen Stelle, es wird geprüft, ob der Computer verloren hat. 
        		System.out.println("Das Spiel ist beendet.");
        		System.out.println("Du hast gewonnen!");
        		break;
        	}
        	System.out.println("Es sind noch "+anzahl+" im Spiel.");			// Wird nur angezeigt, wenn das Spiel noch läuft.
        }
        while (anzahl > 0);														// anzahl > 0, weil ansonsten weitergespielt wird, obwohl keine Streichhölzer mehr da sind.
        																		// Hier muss jetzt nichts mehr stehen, denn man hat das für jeden Spieler einzeln gemacht.
            
        
        
    }
}
```


----------

