MauMau kartenspiel in C#

Svsoko

Grünschnabel
Hallo,

ich soll ein Maumau Kartenspiel programmieren. Es soll eine Konsolenanwendung werden.
Am anfang wird die Spieler Zahl fesgelegt.

So nun zu meinem problem, ich habe ein Array vom typ Spieler wo meine Spieler drin sind, diesen Spielern übergebe ich Kartenstapelarrays vom typ Karten, wo meine Karten drin sind.

So nun möchte ich z.b auf die Karten von Spieler1 zugreifen und die Karten die er auf der Hand hat ausgeben.

Aber iwi schaffe ich es nicht auf die Spielerkarten zuzugreifen und sie auszugeben bzw ihre Attribute wie Farbe.

Evtl kann mir jmd ja helfen.Ich hoffe ich habe mein problem verständlich erklärt, wenn nicht sagt bescheid :p.

Mein Code:

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MauMau
{

    public class Program
    {
        static void Main(string[] args)
        {
                //Random Zahl generieren
                Random zufallsGen = new Random();
                int num ;
                
            Console.WriteLine("Anz Spieler eingeben");
            try
            {
                // Eingabe
                string eingabe = Console.ReadLine();
                int anz = Convert.ToInt32(eingabe);

                // Ein Array für die Spieler eins für deren KartenStapelIni
                Spieler[] SpielerArray = new Spieler[anz];
                KartenStapel[] KartenStapelSpielerArray = new KartenStapel[anz];

               //
                Console.WriteLine("Es wird ein spiel mit : " + anz + " Spielern gestartet \n");

            // KartenStapelIni erstellen
            KartenStapel StapelIni = new KartenStapel();
            KartenStapel StapelGemischt = new KartenStapel();

            StapelIni[0] = new Karten("Kreuz", "Schwarz", "Ass");
            StapelIni[1] = new Karten("Kreuz", "Schwarz", "7");
            StapelIni[2] = new Karten("Kreuz", "Schwarz", "8");
            StapelIni[3] = new Karten("Kreuz", "Schwarz", "9");
            StapelIni[4] = new Karten("Kreuz", "Schwarz", "10");
            StapelIni[5] = new Karten("Kreuz", "Schwarz", "Bube");
            StapelIni[6] = new Karten("Kreuz", "Schwarz", "Dame");
            StapelIni[7] = new Karten("Kreuz", "Schwarz", "König");

            StapelIni[8] = new Karten("Pik", "Rot", "Ass");
            StapelIni[9] = new Karten("Pik", "Rot", "7");
            StapelIni[10] = new Karten("Pik", "Rot", "8");
            StapelIni[11] = new Karten("Pik", "Rot", "9");
            StapelIni[12] = new Karten("Pik", "Rot", "10");
            StapelIni[13] = new Karten("Pik", "Rot", "Bube");
            StapelIni[14] = new Karten("Pik", "Rot", "Dame");
            StapelIni[15] = new Karten("Pik", "Rot", "König");

            StapelIni[16] = new Karten("Herz", "Rot", "Ass");
            StapelIni[17] = new Karten("Herz", "Rot", "7");
            StapelIni[18] = new Karten("Herz", "Rot", "8");
            StapelIni[19] = new Karten("Herz", "Rot", "9");
            StapelIni[20] = new Karten("Herz", "Rot", "10");
            StapelIni[21] = new Karten("Herz", "Rot", "Bube");
            StapelIni[22] = new Karten("Herz", "Rot", "Dame");
            StapelIni[23] = new Karten("Herz", "Rot", "König");

            StapelIni[24] = new Karten("Karo", "Schwarz", "Ass");
            StapelIni[25] = new Karten("Karo", "Schwarz", "7");
            StapelIni[26] = new Karten("Karo", "Schwarz", "8");
            StapelIni[27] = new Karten("Karo", "Schwarz", "9");
            StapelIni[28] = new Karten("Karo", "Schwarz", "10");
            StapelIni[29] = new Karten("Karo", "Schwarz", "Bube");
            StapelIni[30] = new Karten("Karo", "Schwarz", "Dame");
            StapelIni[31] = new Karten("Karo", "Schwarz", "König");

            //KartenStapelIni mischen

            for (int i = 0; i < 32; i++)
            {
                num =  zufallsGen.Next(31);
                StapelGemischt[num] = StapelIni[i] ;
            
            }
            int k = 0;
             
            //Stapel erzeugen
            for (int i = 0; i < anz; i++)
            {
                KartenStapel tmp = new KartenStapel();
                for (int j = 0; j < 6; j++)
                {
                    tmp[j] = StapelGemischt[k++];
                }
                KartenStapelSpielerArray[i] = tmp;
             
            }
            //Stapel zuweisen
            for (int i = 0; i < anz; i++)
            {
                SpielerArray[i] = new Spieler("Spieler " + i, KartenStapelSpielerArray[i]);
            }
            Console.WriteLine();
  
        
            }

            catch (Exception)
            {
                Console.WriteLine("Es ist ein Fehler aufgetreten");
            }
        }
    }
}

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MauMau
{
    public class KartenStapel
    {
        private Karten[] Stapel = new Karten[32];
        // Indexer
        public Karten this[int index]
        {
            get { return Stapel[index]; }
            set
            {
                // prüfen, ob der Index schon belegt ist
                if (Stapel[index] == null || value == null)
                    Stapel[index] = value;
                else
                    // nächsten freien Index suchen
                    for (int i = 0; i < 32; i++)
                    {
                        if (Stapel[i] == null)
                        {
                            Stapel[i] = value;
                            return;
                        }
                    }

            }

         
        }
    



    }
}

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MauMau
{

    public class Spieler
    {

      
       public string name;
        public KartenStapel stapel;
        public Spieler(string name , KartenStapel stapel)
        {
            this.name = name;
            this.stapel = stapel;
        }

        public KartenStapel getKartenStapel()
        { return stapel; }

    }
}

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MauMau
{
   public  class Karten
    {
        public string typ, farbe,zahl;


       public Karten(string typ,string farbe, string zahl)
        {
            this.typ = typ;
            this.farbe = farbe;
            this.zahl = zahl;
        }

       public string gettyp()
       { return this.typ; }
      
    }
}

MFG
 
Zuletzt bearbeitet:
Hi Svsoko,

Schonmal so versucht?

C#:
foreach (Karten karten in SpielerArray[0].GetKartenStapel())
{
	console.WriteLine(karten.gettyp());
}

Woran haperts denn genau?
 
Zurück