Menschärgerdichnicht

JavaNewbie2.0

Bekanntes Mitglied
Eigentlich sollte er 4-mal fragen mit welchem männchen er fahren soll aber er fragt immer nur jeweils 2 mal warum?? Hab ich was falsch gemacht?
Code:
import java.util.Random;
import java.util.Scanner;

public class Menschärgerdichnicht1 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int[] Spieler1, Spieler2, Spieler3, Spieler4, Spieler1f, Spieler2f, Spieler3f, Spieler4f, mankerl1, mankerl2, mankerl3, mankerl4; /*Spielerfx heist ob der Spieler schon am ende angelangt ist mit dem jeweiligem mankerl */
      
        int spieleranzahl, wuerfelzahl = 0, fd1, fd2, fd3, fd4, mankerl12, mankerl22, mankerl32, mankerl42; /* fd heist wieviele Figuren drausen sind*/
        mankerl4 = new int[4];
        mankerl3 = new int[4];
        mankerl2 = new int[4];
        mankerl1 = new int[4];
        Spieler4f = new int[4];  
        Spieler3f = new int[4];  
        Spieler2f = new int[4];                                                        
        Spieler1f = new int[4];                                              
        fd4 = 0;
        fd3 = 0;
        fd2 = 0;
        fd1 = 0;
        Spieler1 = new int[4];
        Spieler2 = new int[4];
        Spieler3 = new int[4];
        Spieler4 = new int[4];

        System.out.println("Wieviel Spieler spielen mit?");
        spieleranzahl = sc.nextInt();

        if (spieleranzahl == 1) {
            System.out.println("Es muessen mindestens 2 Spieler sein!");

        } else if (spieleranzahl == 2) {
            while((Spieler1[0] < 1.1 && Spieler1[1] < 1.1 && Spieler1[2] < 1.1 && Spieler1[3] < 1.1) || ( Spieler2[0] < 1.2 && Spieler2[1] < 1.2 && Spieler2[2] < 1.2 && Spieler2[3] < 1.2)){
            /* Random wuerfel1 = new Random();
            int w1 = wuerfel1.nextInt(7);
            if (w1 == 6) {
                Spieler1[fd1] += 1;
                fd1++;
                }
                */
          
      
            Random wuerfel12 = new Random();
            int w12= wuerfel12.nextInt(7);
            System.out.println(w12);
            System.out.println("Mit welchem Manker wollen sie fahren?: ");
            mankerl12 = sc.nextInt();
            if(mankerl12 > 4){
                System.out.println("Es gibt nur 4 mankerl!");
            }
            if(w12 > 0) {
            Spieler1[mankerl12] += w12;
            System.out.println("Ihr mankerl ist am " + Spieler1[mankerl12] + ". Feld");
            }
            else {
                System.out.println("Sie haben eine Null gewürfelt");
            }
          
          
          
          
          
          
            /*
            Random wuerfel2 = new Random();
            int w2 = wuerfel2.nextInt(7);
            if (w2 == 6) {
                Spieler2[fd2] +=  1;
                fd2++;
            }
            */
          
            Random wuerfel22 = new Random();
            int w22= wuerfel22.nextInt(7);
            System.out.println(w22);
            System.out.println("Mit welchem Manker wollen sie fahren?: ");
            mankerl22 = sc.nextInt();
            if(mankerl22 > 4){
                System.out.println("Es gibt nur 4 mankerl!");
            }
            if(w22 > 0){
            Spieler2[mankerl22] += w22;
            System.out.println("Ihr mankerl ist am " + Spieler2[mankerl22] + ". Feld");
            }
            else {
                System.out.println("Sie haben eine Null gewürfelt");
            }
          
        }
          
      
      
        if(Spieler1[0] > 1.1 && Spieler1[1] > 1.1 && Spieler1[2] > 1.1 && Spieler1[3] > 1.1){
            System.out.println("Spieler 1 hat gewonnen");
        }
        else if (Spieler2[0] > 1.1 && Spieler2[1] > 1.1 && Spieler2[2] > 1.1 && Spieler2[3] > 10.1){
            System.out.println("Spieler 2 hat gewonnen");
        }
      

      
      

      
      
        }
        else if (spieleranzahl == 3) {

        }

        else if (spieleranzahl == 3) {

        }

    System.out.println("Fertig");

    }

}
 

krgewb

Top Contributor
Du benutzt die Kommazahlen 1.1 und 1.2.
Integer speichern jedoch nur Ganzzahlen. Vorsicht: Dabei wird immer abgerundet.
Beispiele:
1.3 wird zu einer 1 und 1.9 wird auch zu einer 1.
 
Zuletzt bearbeitet:

krgewb

Top Contributor
Vorsicht: Bei deinem Würfel kann auch 0 gewürfelt werden.
Ich habe mal in meinem alten Würfel-Programm nachgeschaut, wie ich es programmiert habe.
Java:
           Random rand = new Random();
           int wuerfel_A = (rand.nextInt(6) + 1);
 
Zuletzt bearbeitet:

JavaNewbie2.0

Bekanntes Mitglied
Vorsicht: Bei deinem Würfel kann auch 0 gewürfelt werden.
Ich habe mal in meinem alten Würfel-Programm nachgeschaut, wie ich es programmiert habe.
Java:
           int wuerfel_A = (rand.nextInt(6) + 1);
Ok danke das mit dem 0 würfeln war mir bewusst aber ich wusste nicht wie ich eslösen sollte danke dafür.
 

Jardcore

Top Contributor
Versuche mal deinen Code objektorientiert zu programmieren. Java ist eine OOP Sprache und du hast nur Vorteile wenn du dein Programm richtig strukturierst.
 

Jardcore

Top Contributor
Um dir ein paar Hinweise zu geben. Strukturiere dein Programm in Klassen. Zum Beispiel so:
Diese Klassen fallen mir gerade ein:
Main bzw. MenschAergereDichNichtLauncher.
In dieser Klasse ist der Einstiegspunkt in dein Programm
Java:
public class MenschAergereDichNichtLauncher {
    // Die Main Methode sollte nur der Einstiegspunkt in dein Programm sein.
    public static void main(String[] args) {
        MenschAergereDichNichtGame game = new MenschAergereDichNichtGame(); 
        game.start();
    }
}
MenschAergereDichNichtGame
Das ist die Hauptklasse deines Spiels und dort findet die Logik statt.
Wuerfel
Naja, hier bekommst du eine Zahl von 1-6
Java:
public class Wuerfel {
    public int werfe() {
        return (int)(Math.random() * 6 + 1);
    }
}
Spielffeld
Hier werden Informationen über die Feldbelegung gespeichert. Es enthält ein Array von Feld Objekten
Feld
Java:
public class Feld {
    private Spielfigur spielfigur;
 
    public void setSpielfigur(Spielfigur figur) {
        this.spielfigur = figur;
    }
 
    public Spielfigur getSpielfigur() {
        return spielfigur;
    }
}
Spieler
Der Spieler hat das vier Spielfiguren und eine Farbe.
Java:
public class Player {
    private Color color;
    private HashMap<Spielfigur> figuren;
   
    public Player(Color color) {
        this.color = color;
        this.figuren = new HashMap<Integer, Spielfigur>();
       
        this.figuren.put(1, new Spielfigur(color));
        this.figuren.put(2, new Spielfigur(color));
        this.figuren.put(3, new Spielfigur(color));
        this.figuren.put(4, new Spielfigur(color));
    }
   
    public Spielfigur getSpielfigur(int figurNr) {
        return figuren.get(figurNr);
    }
}
Spiefigur
Eine Spielfigur weiß, wo sie sich gerade befindet und hat auch eine Farbe
Java:
public class Spielfigur {
    private Color color;
    private int positionIndex;
  
    public Spielfigur(Color color) {
        this.color = color;
    }
  
    public void setPositionIndex(int index) {
        this.positionIndex = index;
    }
  
    public int getPositionIndex() {
        return positionIndex;
    }
  
    public Color getColor() {
        return color;
    }
}
 

Jardcore

Top Contributor
danke ich weis es aber ich verstehe dsa mit den klassen komplett nicht hab schon einiges probiert aber keine Ahnung
Das ist aber ein essentieller Bestandteil der Sprache. Wenn du keine Lust hast das zu lernen solltest du deine Zeit nicht damit verschwenden zu versuchen einen objektorientierte Sprache zu lernen.
Um ein Spiel zu ent

Was genau hast du denn daran nicht verstanden? Wie viel hast du denn schon mit Programmierung allgemein zu tun gehabt?

Was ist bitte prozedural?
https://de.wikipedia.org/wiki/Prozedurale_Programmierung
Der zweite Absatz ist dabei interessant.

Bei uns lernt man im ersten Semester Java prozedural.
Das ist an sich nicht falsch. Auch wenn ich da C für diese Übung für sinnvoller halte. Denn dort kommt man noch in den Kontakt mit manueller Speicherfreigabe und Verwaltung.
Das Ding ist nur, dass darauf hingewiesen werden sollte, das Java nun mal eine objektorientierte Sprache ist.
 

JavaNewbie2.0

Bekanntes Mitglied
Das ist aber ein essentieller Bestandteil der Sprache. Wenn du keine Lust hast das zu lernen solltest du deine Zeit nicht damit verschwenden zu versuchen einen objektorientierte Sprache zu lernen.
Um ein Spiel zu ent

Was genau hast du denn daran nicht verstanden? Wie viel hast du denn schon mit Programmierung allgemein zu tun gehabt?
Ist meine 1. Sprache.
 

Neue Themen


Oben