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
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.
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!.. 👍
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!
Wollt mich nur mal kurz für die coole Klasse bedanken. 👍