Jump to content
Unity Insider Forum

Welcher Spieler anfangen darf (ausknobeln über Würfel)


Daykoo

Recommended Posts

Hallo allerseits!

Ich bin zurzeit dabei, ein kleines Kartenspiel zu entwickeln. Der erste Spieler soll mithilfe eines Würfels ausgelost werden. Heißt der Spieler mit der am höchsten gewürfelten Zahl beginnt. Ich habe also dran gesetzt und ein Script geschrieben. Dieses ist aber leider fehlerhaft jedoch komme ich nicht drauf. Zum Beispiel sollte Spieler eins die höchste Zahl gewürfelt haben und Spieler zwei die zweithöchste, wird ausgegeben, dass Spieler zwei anfangen darf (siehe Bild). Desweiteren werden öfters falsche "beginn abfragen" (siehe Script relativ weit unten) gemacht. 

Es muss also darauf geachtet werden, dass wenn zwei Spieler die gleiche Zahl gewürfelt haben (und diese Zahl auch die höchste aller gewürfelten ist), sie nochmal würfeln müssen. Ich denke ich habe einiges relativ umständlich (oder eben nicht richtig gemacht), deshalb bin ich froh um Lösungsvorschläge und sonstige Anregungen. Außerdem sind die verwendeten Graphiken in den
Bildern nur für mein Test Projekt also nichts ausgereiftes aber aufgrund von Demonstrationen wichtig. 

Ich bitte um Hilfe und bedanke mich schon einmal im voraus.

using UnityEngine;
using UnityEngine.UI;
public class ButtonClickWürfeln : MonoBehaviour {
    public GameObject ButtonWürfeln;
    public Text gewürfelteZahl;
    public Text sonstiges;
    public int i;

    public int würfelZahl;
    public int spielerEins;
    public int spielerZwei;
    public int spielerDrei;
    public int spielerVier;

    public int höchsteZahl;

    public void Start() {
        spielerEins = 0;
        spielerZwei = 0;
        spielerDrei = 0;
        spielerVier = 0;

        sonstiges.text = ("Spieler 1 muss würfeln");
    }
    public void Button_OnClick() {
        if  (spielerEins == 0) {
            sonstiges.text = ("Spieler 2 muss würfeln");
            würfelZahl = Random.Range(1, 6);
            gewürfelteZahl.text = würfelZahl.ToString();
            spielerEins = würfelZahl;
            Debug.Log("Spieler 1 hat eine " + spielerEins +" gewürfelt");
            return;
        }
        if (spielerEins == würfelZahl) {
            sonstiges.text = ("Spieler 3 muss würfeln");
            würfelZahl = Random.Range(1, 6);
            gewürfelteZahl.text = würfelZahl.ToString();
            spielerZwei = würfelZahl;
            Debug.Log("Spieler 2 hat eine " + spielerZwei + " gewürfelt");

            return;
        }
        if (spielerZwei == würfelZahl) {
            sonstiges.text = ("Spieler 4 muss würfeln");
            würfelZahl = Random.Range(1, 6);
            gewürfelteZahl.text = würfelZahl.ToString();
            spielerDrei = würfelZahl;
            Debug.Log("Spieler 3 hat eine " + spielerDrei + " gewürfelt");

            return;
        }
        if (spielerDrei == würfelZahl) {
            würfelZahl = Random.Range(1, 6);
            gewürfelteZahl.text = würfelZahl.ToString();
            spielerVier = würfelZahl;
            Debug.Log("Spieler 4 hat eine " + spielerVier + " gewürfelt");
        }
        //abfrage höchste Zahl
        if (spielerEins >= spielerZwei & spielerEins >= spielerDrei & spielerEins >= spielerVier) {
            höchsteZahl = spielerEins;
        }
        if (spielerZwei >= spielerEins & spielerZwei >= spielerDrei & spielerZwei >= spielerVier) {
            höchsteZahl = spielerZwei;
                    }
        if (spielerDrei >= spielerEins & spielerDrei >= spielerZwei & spielerDrei >= spielerVier) {
            höchsteZahl = spielerDrei;
                    }
        if (spielerVier >= spielerEins & spielerVier >= spielerZwei & spielerVier >= spielerDrei) {
            höchsteZahl = spielerVier;
                    }

        // abfrage ob Spieler gleichen ZahlenWert haben
        // spieler eins & zwei
        if (spielerEins == spielerZwei & spielerEins == höchsteZahl) {
            i = 1;
            for (int i = 1; i < 2; i++) {
                sonstiges.text = ("Spieler 1 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerEins = würfelZahl;
                Debug.Log("Spieler 1 hat eine " + spielerEins + " gewürfelt");
                
            }
            if (spielerEins == würfelZahl) {
                sonstiges.text = ("Spieler 2 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerZwei = würfelZahl;
                Debug.Log("Spieler 2 hat eine " + spielerZwei + " gewürfelt");
            }
            return;
        }
        //spieler eins & drei
        if (spielerEins == spielerDrei & spielerEins == höchsteZahl) {
            i = 1;
            for (int i = 1; i < 2; i++) {
                sonstiges.text = ("Spieler 1 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerEins = würfelZahl;
                Debug.Log("Spieler 1 hat eine " + spielerEins + " gewürfelt");
            }
            if (spielerEins == würfelZahl) {
                sonstiges.text = ("Spieler 3 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerDrei = würfelZahl;
                Debug.Log("Spieler 3 hat eine " + spielerDrei + " gewürfelt");
            }
            return;
        }
        //spieler eins & vier
        if (spielerEins == spielerVier & spielerEins == höchsteZahl) {
            i = 1;
            for (int i = 1; i < 2; i++) {
                sonstiges.text = ("Spieler 1 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerEins = würfelZahl;
                Debug.Log("Spieler 1 hat eine " + spielerEins + " gewürfelt");
            }
            if (spielerEins == würfelZahl) {
                sonstiges.text = ("Spieler 4 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerVier = würfelZahl;
                Debug.Log("Spieler 4 hat eine " + spielerVier + " gewürfelt");
            }
            return;
        }
        //spieler zwei & drei
        if (spielerZwei == spielerDrei & spielerZwei == höchsteZahl) {
            i = 1;
            for (int i = 1; i < 2; i++) {
                sonstiges.text = ("Spieler 2 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerZwei = würfelZahl;
                Debug.Log("Spieler 2 hat eine " + spielerZwei + " gewürfelt");
            }
            if (spielerZwei == würfelZahl) {
                sonstiges.text = ("Spieler 3 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerDrei = würfelZahl;
                Debug.Log("Spieler 3 hat eine " + spielerDrei + " gewürfelt");
            }
            return;
        }
        //spieler zwei & vier
        if (spielerZwei == spielerVier & spielerZwei == höchsteZahl) {
            i = 1;
            for (int i = 1; i < 2; i++) {
                sonstiges.text = ("Spieler 2 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerZwei = würfelZahl;
                Debug.Log("Spieler 2 hat eine " + spielerZwei + " gewürfelt");
            }
            if (spielerZwei == würfelZahl) {
                sonstiges.text = ("Spieler 4 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerVier = würfelZahl;
                Debug.Log("Spieler 4 hat eine " + spielerVier + " gewürfelt");
            }
            return;
        }
        //spieler drei & vier
        if (spielerDrei == spielerVier & spielerDrei == höchsteZahl) {
            i = 1;
            for (int i = 1; i < 2; i++) {
                sonstiges.text = ("Spieler 3 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerDrei = würfelZahl;
                Debug.Log("Spieler 3 hat gewürfelt eine " + spielerDrei + " gewürfelt");
            }
            if (spielerDrei == würfelZahl) {
                sonstiges.text = ("Spieler 4 muss wieder Würfeln");
                würfelZahl = Random.Range(1, 6);
                gewürfelteZahl.text = würfelZahl.ToString();
                spielerVier = würfelZahl;
                Debug.Log("Spieler 4 hat eine " + spielerVier + " gewürfelt");
            }
            return;
        }
        //beginn abfrage
        if (spielerEins > spielerZwei & spielerEins > spielerDrei & spielerEins > spielerVier) {
            sonstiges.text = ("Spieler eins darf anfangen");
            spielerEins = 1;
            ButtonWürfeln.SetActive(false);
        }
        if (spielerZwei > spielerEins & spielerZwei > spielerDrei & spielerZwei > spielerVier) {
            sonstiges.text = ("Spieler zwei darf anfangen");
            spielerZwei = 1;
            ButtonWürfeln.SetActive(false);
        }
        if (spielerDrei > spielerEins & spielerDrei > spielerZwei & spielerDrei > spielerVier) {
            sonstiges.text = ("Spieler Drei darf anfangen");
            spielerDrei = 1;
            ButtonWürfeln.SetActive(false);
        }
        if (spielerVier > spielerEins & spielerVier > spielerZwei & spielerVier > spielerDrei) {
            sonstiges.text = ("Spieler Vier darf anfangen");
            spielerVier = 1;
            ButtonWürfeln.SetActive(false);
        }
    }
}

 

ForumFrage_Problem_SpielerStart.PNG

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...