mir fehlt ein Schritt..

kokojamboo92

Mitglied
Hallo liebes Forum,
so bin jetzt schon am überlegen jedoch glaube fehlt mir irgendein punkt um das Programm nach meinem belieben laufen zu lassen, jedoch komm ich nicht drauf wie ich am logischsten vorgehen sollte..

folgender Code:
Code:
import java.util.Scanner;
public class tester {


    public static void main(String[] args) {
        
        Scanner s = new Scanner(System.in);
        int a=0,b=0,c=0;
        int Anzahlspieler;
        System.out.println("Bitte Geben sie die Anzahl der Spieler ein:");
        Anzahlspieler= s.nextInt();
      
        for (int i=1; i<=3; i++) {
          
            for (int j=1; j<=Anzahlspieler;j++) {
              
              
                int Zufallszahl= (int) (Math.random() * 9) + 1;
                  
       System.out.println("Spieler " + j + " wuerfelt: " + Zufallszahl + " -> wohin? (Einer 0, Zehner 1, Hunderter 2):");
     
               int wohin= s.nextInt();
             
               switch (wohin) {
               case 0:
                   c= Zufallszahl;
                break;
              case 1:
                   b=Zufallszahl;
               break;
           case 2:
               a=Zufallszahl;
               break;
             
               default:
                   System.out.println("Das Spiel wurde beendet wegen Betrugsversuches!"); System.exit(0);
                break;
             
               }
               int Ergebnis= (a*100) + (b*10) +c;
               System.out.println("das Ergebnis ist " + Ergebnis) ;
             
            }
        }
      
    }   
}

jetzt muss ich es noch hinkriegen das er die Ergebnisse auf jeden Spieler speichert und nicht immer überschreibt, weil am Ende soll er ja noch kontrollieren wer die größte Zahl erreicht hat..
jetzt ist mein Problem das ich eine Denkblockade habe, ich glaube das vernünftigste wäre es irgendwie in ein Array zu speichern oder bin ich auf dem Holzweg?

Vielen Dank jetzt schon mal für eure Hilfe :)
 
Zuletzt bearbeitet:

kokojamboo92

Mitglied
Abfrage Anzahl Spieler: bsp.2.

und dann soll eine Zufällige Zahl einem Spieler zugeordnet werden, der Spieler 1 soll sich entscheiden ob er es in 100er, 10ner oder einer einordnen will, dies passiert genau 3 mal wer am ende die höchste Zahl zusammengesetzt hat hat gewonnen.

hoffe das war verständlich...
bsp
Zahl 2 ---> soll einer sein weil es ja ziemlich klein ist
Zahl 7---> will kein Risiko spielen also 100er
zahl 9---> einer und 100er sind schon weg also wird die Zahl 9 zu zehner...

ist meine zahl 792 jetzt höher als die meines Gegners hab ich gewonnen ansonsten er...

Vielen Dank schonmal
 

krgewb

Top Contributor
Achso! Also ist das wie das Kegelspiel namens Hausnummer!

Dann versuche es doch mal mit einem Array. Die Anzahl der Spieler soll auch die length des Arrays sein.

Edit: Fürs erste wäre es wohl am einfachsten wenn du vier Arrays machst. Jeweils eines für a, b, c, Ergebnis.
 

kokojamboo92

Mitglied
Ja hab ich mir auch gedacht kriege aber die Durchsetzung nicht hin hab noch etwas schwierigkeiten mit Arrays und wieso ist die length des Arrays die spieleranzahl? Es können doch auch 9 Spieler spielen und tdm ist das Array nicht 9 mal besetzt?
Entschuldige für mein Unwissen
 

krgewb

Top Contributor
So könnte es aussehen:
Java:
import java.util.Scanner;

public class tester {

	public static void main(String[] args) {

		Scanner s = new Scanner(System.in);
		// int a = 0, b = 0, c = 0;
		int Anzahlspieler;
		System.out.println("Bitte Geben sie die Anzahl der Spieler ein:");
		Anzahlspieler = s.nextInt();

		int a[] = new int[Anzahlspieler];
		int b[] = new int[Anzahlspieler];
		int c[] = new int[Anzahlspieler];

		int Ergebnis[] = new int[Anzahlspieler];

		for (int i = 1; i <= 3; i++) {

			for (int j = 1; j <= Anzahlspieler; j++) {

				int Zufallszahl = (int) (Math.random() * 9) + 1;

				System.out.println(
						"Spieler " + j + " wuerfelt: " + Zufallszahl + " -> wohin? (Einer 0, Zehner 1, Hunderter 2):");

				int wohin = s.nextInt();

				switch (wohin) {
				case 0:
					c[j - 1] = Zufallszahl;
					break;
				case 1:
					b[j - 1] = Zufallszahl;
					break;
				case 2:
					a[j - 1] = Zufallszahl;
					break;

				default:
					System.out.println("Das Spiel wurde beendet wegen Betrugsversuches!");
					System.exit(0);
					break;

				}
				Ergebnis[j - 1] = (a[j - 1] * 100) + (b[j - 1] * 10) + c[j - 1];
				System.out.println("das Ergebnis ist " + Ergebnis[j - 1]);

			}
		}

	}
}
 

kokojamboo92

Mitglied
ohh perfekt genauso wollte ich es haben, hab es jetzt glaube verstanden, jetzt muss ich nur noch herausfinden wie ich es am besten mache das er die größte Zahl dem Spieler zuordnet und dann Ausgibt das er der Gewinner ist.
Danke vielmals
 

krgewb

Top Contributor
Oki.
PS: Es ist eine Konvention, den ersten Buchstaben von Variablennamen klein zu schreiben. Klassennamen sollen mit einem Großbuchstaben beginnen.
 

krgewb

Top Contributor
Java:
import java.util.Scanner;

public class Tester {

    public static void main(String[] args) {

        Scanner s = new Scanner(System.in);
        System.out.println("Bitte Geben sie die Anzahl der Spieler ein:");
        int anzahlspieler = s.nextInt();

        int a[] = new int[anzahlspieler];
        int b[] = new int[anzahlspieler];
        int c[] = new int[anzahlspieler];

        int ergebnis[] = new int[anzahlspieler];

        for (int i = 1; i <= 3; i++) {

            for (int j = 1; j <= anzahlspieler; j++) {

                int zufallszahl = (int) (Math.random() * 9) + 1;

                System.out.println(
                        "Spieler " + j + " wuerfelt: " + zufallszahl + " -> wohin? (Einer 0, Zehner 1, Hunderter 2):");

                int wohin = s.nextInt();

                switch (wohin) {
                case 0:
                    c[j - 1] = zufallszahl;
                    break;
                case 1:
                    b[j - 1] = zufallszahl;
                    break;
                case 2:
                    a[j - 1] = zufallszahl;
                    break;
                default:
                    System.out.println("Das Spiel wurde beendet wegen Betrugsversuches!");
                    System.exit(0);
                    break;
                }

                ergebnis[j - 1] = (a[j - 1] * 100) + (b[j - 1] * 10) + c[j - 1];
                System.out.println("das Ergebnis ist " + ergebnis[j - 1]);

            }
        }

        int indexVomSpielerMitDerGroesstenZahl = 0;
        int groessteZahl = 0;

        for (int i = 0; i < ergebnis.length; i++) {
            if (ergebnis[i] > groessteZahl) {
                groessteZahl = ergebnis[i];
                indexVomSpielerMitDerGroesstenZahl = i;
            }
        }

        System.out.println("\nDer " + (indexVomSpielerMitDerGroesstenZahl + 1) + ". Spieler hat gewonnen. Punktzahl: "
                + ergebnis[indexVomSpielerMitDerGroesstenZahl]);

    }
}
Ausgabe:
Code:
Bitte Geben sie die Anzahl der Spieler ein:
2
Spieler 1 wuerfelt: 1 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
0
das Ergebnis ist 1
Spieler 2 wuerfelt: 6 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
1
das Ergebnis ist 60
Spieler 1 wuerfelt: 9 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
2
das Ergebnis ist 901
Spieler 2 wuerfelt: 6 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
2
das Ergebnis ist 660
Spieler 1 wuerfelt: 1 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
1
das Ergebnis ist 911
Spieler 2 wuerfelt: 7 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
0
das Ergebnis ist 667

Der 1. Spieler hat gewonnen. Punktzahl: 911
Edit: Eine zweite Partie gespielt:
Code:
Bitte Geben sie die Anzahl der Spieler ein:
2
Spieler 1 wuerfelt: 9 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
0
das Ergebnis ist 9
Spieler 2 wuerfelt: 5 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
2
das Ergebnis ist 500
Spieler 1 wuerfelt: 1 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
2
das Ergebnis ist 109
Spieler 2 wuerfelt: 8 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
1
das Ergebnis ist 580
Spieler 1 wuerfelt: 4 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
0
das Ergebnis ist 104
Spieler 2 wuerfelt: 3 -> wohin? (Einer 0, Zehner 1, Hunderter 2):
0
das Ergebnis ist 583

Der 2. Spieler hat gewonnen. Punktzahl: 583
 
Zuletzt bearbeitet:

krgewb

Top Contributor
Du kannst machen, dass da der Name des Spielers steht. Also wenn der Name nur aus einem Wort besteht kannst du es so machen:
Java:
import java.util.Scanner;

public class Tester {

	public static void main(String[] args) {

		Scanner s = new Scanner(System.in);
		System.out.println("Bitte Geben sie die Anzahl der Spieler ein:");
		int anzahlspieler = s.nextInt();

		String namen[] = new String[anzahlspieler];

		for (int i = 0; i < anzahlspieler; i++) {
			System.out.println("Bitte Geben sie den Namen von Spieler " + (i + 1) + " ein:");
			namen[i] = s.next();
		}

		int a[] = new int[anzahlspieler];
		int b[] = new int[anzahlspieler];
		int c[] = new int[anzahlspieler];

		int ergebnis[] = new int[anzahlspieler];

		for (int i = 1; i <= 3; i++) {

			for (int j = 1; j <= anzahlspieler; j++) {

				int zufallszahl = (int) (Math.random() * 9) + 1;

				System.out.println(
						namen[j - 1] + " wuerfelt: " + zufallszahl + " -> wohin? (Einer 0, Zehner 1, Hunderter 2):");

				int wohin = s.nextInt();

				switch (wohin) {
				case 0:
					c[j - 1] = zufallszahl;
					break;
				case 1:
					b[j - 1] = zufallszahl;
					break;
				case 2:
					a[j - 1] = zufallszahl;
					break;
				default:
					System.out.println("Das Spiel wurde beendet wegen Betrugsversuches!");
					System.exit(0);
					break;
				}

				ergebnis[j - 1] = (a[j - 1] * 100) + (b[j - 1] * 10) + c[j - 1];
				System.out.println("das Ergebnis ist " + ergebnis[j - 1]);

			}
		}

		int indexVomSpielerMitDerGroesstenZahl = 0;
		int groessteZahl = 0;

		for (int i = 0; i < ergebnis.length; i++) {
			if (ergebnis[i] > groessteZahl) {
				groessteZahl = ergebnis[i];
				indexVomSpielerMitDerGroesstenZahl = i;
			}
		}

		System.out.println("\n" + namen[indexVomSpielerMitDerGroesstenZahl] + " hat gewonnen. Punktzahl: "
				+ ergebnis[indexVomSpielerMitDerGroesstenZahl]);

	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
E 2 Matrizen multiplizieren - Output fehlt... Java Basics - Anfänger-Themen 5
I BlueJ importdatei fehlt Java Basics - Anfänger-Themen 4
T Erste Schritte MongoDB Filter Klasse fehlt Java Basics - Anfänger-Themen 0
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
X Compiler-Fehler .java Dateiendung fehlt Java Basics - Anfänger-Themen 5
P Input/Output Textdatei einlesen - 1. Zeichen fehlt Java Basics - Anfänger-Themen 7
S Eclipse Design-Reiter fehlt Java Basics - Anfänger-Themen 6
I Methoden Wochenkalendar switch anweisung fehlt Java Basics - Anfänger-Themen 4
M index.html fehlt Java Basics - Anfänger-Themen 12
L laut Compiler fehlt der Methodenkörper Java Basics - Anfänger-Themen 2
S referenzierte Assemblierung fehlt Java Basics - Anfänger-Themen 8
T Datentypen JDK funktioniert nicht ( Benutzeroberfläche fehlt) Java Basics - Anfänger-Themen 11
L Strichpunkt - was fehlt? Java Basics - Anfänger-Themen 7
D GUI Anzeige fehlt Java Basics - Anfänger-Themen 4
B Fehlermeldung - Vermutlich fehlt ein Paket Java Basics - Anfänger-Themen 12
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
A String einlesen 1 Buchstabe fehlt Java Basics - Anfänger-Themen 2
B icon fehlt Java Basics - Anfänger-Themen 3
M JFreeChart nach erneutem aufruf fehlt 2. Achse Java Basics - Anfänger-Themen 4
P java.lang.NoClassDefFoundError.Hauptklasse fehlt Java Basics - Anfänger-Themen 13
P Textdateischreiben, etwas fehlt noch bzw. 1 error kommt Java Basics - Anfänger-Themen 4
D JTable -> Kopf fehlt Java Basics - Anfänger-Themen 2
sliwalker Wie löse ich eine "DfB-Pokalauslosung"?Logik fehlt Java Basics - Anfänger-Themen 5
L Zugriff auf Methode einer anderen Klasse -> ')' fehlt ? Java Basics - Anfänger-Themen 2
V Source.zip fehlt Java Basics - Anfänger-Themen 2
CptK Best Practice Algorithmus nach jedem Schritt zum Visualisieren pausieren Java Basics - Anfänger-Themen 3
O Ziehen im Array um einen Schritt in eine einzige beliebige Richtung Java Basics - Anfänger-Themen 5
steven789hjk543 Erste Schritte java programmieren/ Schritt für Schritt Java Basics - Anfänger-Themen 14
P Zwei Methoden in einen Schritt zusammenfassen Java Basics - Anfänger-Themen 8
S JSlider Schritt Größe Java Basics - Anfänger-Themen 5
T Swingeinführung Schritt für Schritt Java Basics - Anfänger-Themen 35
I Programmdurchläufe Schritt für Schritt sehen. Java Basics - Anfänger-Themen 5
R OOP Den Schritt von Theorie zur Praxis nicht verstanden Java Basics - Anfänger-Themen 21
B schritt nach vorne Java Basics - Anfänger-Themen 10
G Der Schritt vom Java-Entwickler hin zum Homepagebauer Java Basics - Anfänger-Themen 4
E Wer hilft mir schritt für schritt? Java Basics - Anfänger-Themen 5
M Verkettete Liste (schritt für schritt durchlauf) Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben