Laden...

Pokercard Klasse

Erstellt von mikeeldios vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.500 Views
M
mikeeldios Themenstarter:in
3 Beiträge seit 2008
vor 15 Jahren
Pokercard Klasse

Ich habe eine Pokercard Klasse geschrieben um vielleicht irgendwann mal ein eigenes Pokerspiel in C# zu schreiben. Im Internet habe ich nix passendes gefunden, da habe ich einfach selber etwas zusammengehackt.

Beschreibung:

Mit dieser Klasse wird ein Pokerkartenspiel mit 52 Karten erzeugt. Es können Playerkarten, Flop,Turn und River Karten durch zufall gezogen werden.

Vielleicht könnt Ihr diese Klasse auch gebrauchen !? 👅


using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace de.kruegermike
{
    public class pokercards
    {

        private string card_type(int ctype)
        {
            string cardtype = null;
            switch (ctype)
            {
                case 0:
                    cardtype = "pik";
                    cardcolor.Add("schwarz");
                    break;
                case 1:
                    cardtype = "kreuz";
                    cardcolor.Add("schwarz");
                    break;
                case 2:
                    cardtype = "karo";
                    cardcolor.Add("rot");
                    break;
                case 3:
                    cardtype = "herz";
                    cardcolor.Add("rot");
                    break;
            }
            return cardtype;
        }

        private int card_value(int cvalue)
        {
            int cardvalue = 0;
            switch (cvalue)
            {
                case 2:
                    cardvalue = 2;
                    break;

                case 3:
                    cardvalue = 3;
                    break;

                case 4:
                    cardvalue = 4;
                    break;

                case 5:
                    cardvalue = 5;
                    break;

                case 6:
                    cardvalue = 6;
                    break;

                case 7:
                    cardvalue = 7;
                    break;

                case 8:
                    cardvalue = 8;
                    break;

                case 9:
                    cardvalue = 9;
                    break;

                case 10:
                    cardvalue = 10;
                    break;
                
                    // bube
                case 11:
                    cardvalue = 11;
                    break;
                    //dame
                case 12:
                    cardvalue = 12;
                    break;
                    // könig
                case 13:
                    cardvalue = 13;
                    break;
                    //AS
                case 14:
                    cardvalue = 14;
                    break;
            }

            return cardvalue;
        }
        private List<string> cardcolor = new List<string>();
        private List<string> cardtype = new List<string>();
        private List<int> cardvalues = new List<int>();


        public void CreateMyDeck()
        {

            for (int x = 0; x <= 3; x++)
            {
                for (int i = 0; i <= 12; i++ )
                {
                    cardvalues.Add(i + 2);
                    cardtype.Add(card_type(x));
                }

            }
           
        }
       
        private Random rnd = new Random();

        public string give_player_cards_from_deck()
        {
            string cardstring = null;

            int karte1 = rnd.Next(0, cardtype.Count -1);
            int karte2 = rnd.Next(0, cardtype.Count -1);

                while (karte1 == karte2)
                {
                    karte2 = rnd.Next(0, cardtype.Count -1);
                }
                
                cardstring = cardtype[karte1].ToString() + "#" + cardcolor[karte1].ToString() + "#" + cardvalues[karte1].ToString() + "------->" + cardtype[karte2].ToString() + "#" + cardcolor[karte2].ToString() + "#" + cardvalues[karte2].ToString();

                cardtype.RemoveAt(karte1);
                cardtype.RemoveAt(karte2);

                cardcolor.RemoveAt(karte1);
                cardcolor.RemoveAt(karte2);

                cardvalues.RemoveAt(karte1);
                cardvalues.RemoveAt(karte2);
             
            return cardstring;
        }


        public string[] give_Flop_from_deck()
        {
            string[] Flop = new string[3];

            for (int i = 0; i <= 2; i++)
            {
                int karte1 = rnd.Next(0, cardtype.Count - 1);
                Flop[i] = cardtype[karte1].ToString() + "#" + cardcolor[karte1].ToString() + "#" + cardvalues[karte1].ToString();

                    cardtype.RemoveAt(karte1);
                    cardcolor.RemoveAt(karte1);
                    cardvalues.RemoveAt(karte1);
            }
            return Flop;
        }

        public string[] give_TurnAndRiver_from_deck()
        {
            string[] TurnAndRiver = new string[2];
            for (int i = 0; i <= 1; i++)
            {
                int karte1 = rnd.Next(0, cardtype.Count - 1);
                TurnAndRiver[i] = cardtype[karte1].ToString() + "#" + cardcolor[karte1].ToString() + "#" + cardvalues[karte1].ToString();

                cardtype.RemoveAt(karte1);
                cardcolor.RemoveAt(karte1);
                cardvalues.RemoveAt(karte1);
            }
            return TurnAndRiver;
        }


    }
}
 

Schlagwörter: Poker, Karten, cards, class, klasse

I
32 Beiträge seit 2007
vor 15 Jahren

Nett idee.

Nur Warum erstellst du 3 Listen


        private List<string> cardcolor = new List<string>();
        private List<string> cardtype = new List<string>();
        private List<int> cardvalues = new List<int>();

Ich würde ein Klasse Karten erstellen die die eigenscahften hat.


class Karten
    {

        enum Types
        {
            Piek,
            Herz,
            Kreuz,
            Karo
        };

        enum Werte
        { 
            Eins,Zwei,Deri,Vier,Fünf,Secs,Sieben,Acht,Neun,Zehn,
            Bube,
            Dame,
            Koenig,
            Ass
        };

        public Types Type { set; get; }
        public Werte Wert { set; get; }

        public override string ToString()
        {
            return this.Type.ToString() + " " + this.Wert.ToString();
        }
    }

Dann brauch man nurnoch eine List<Karten> und die Kannst noch zu jeder Karte eine Paint Medode machen falls man sie malen möchte.

M
mikeeldios Themenstarter:in
3 Beiträge seit 2008
vor 15 Jahren

Nett idee.

Nur Warum erstellst du 3 Listen

Ich würde ein Klasse Karten erstellen die die eigenscahften hat.

Einer macht es so und der andere macht es anders...

Jeder hat seine eigene Art zu Hacken und zu Denken.
Aber danke für die Tipps!.. 👍

1.200 Beiträge seit 2007
vor 15 Jahren

Muss sagen, dass ich Inukis Ansatz für weit sauberer halte. Desweiteren sollte man auch Karte und Deck in eigene Klassen packen, damit das ordentlich gekapselt ist.

Das Pokerspiel an sich sollte ebenfalls eine eigene Klasse sein.

Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!

T
26 Beiträge seit 2008
vor 15 Jahren

Wollt mich nur mal kurz für die coole Klasse bedanken. 👍