21点游戏的代码
class Card
{
public int Painum { get; set; }//表示牌面的值1-13
public int Paicolor { get; set; }//表示拍的颜色,1表示黑桃,2表示红桃,3梅花 ,4方块
public int Paivalue { get; set; }//表示牌在1-52中间的位置
///<summary>
///怎样初始化一张牌
///</summary>
public Card(int paivalue)
{
Paivalue = paivalue;
double i = (double)Paivalue/13;
Paicolor = Convert.ToInt32(Math.Ceiling(i));
Painum = paivalue % 13;
if (Painum == 0) Painum = 13;//k
}
public string GetPaiName()
{
string name = "";
switch (Paicolor)
{
case 1: name = "黑桃"; break;
case 2: name = "红桃"; break;
case 3: name = "梅花"; break;
case 4: name = "方块"; break;
}
switch (Painum)
{
case 1: name += "A"; break;
case 11: name += "J"; break;
case 12: name += "Q"; break;
case 13: name += "K"; break;
default: name += Painum.ToString(); break;
}
return name;
}
public int GetPaiDian()
{
int dian = 0;
switch (Painum)
{
case 1: dian = 11; break;
case 11:
case 12:
case 13: dian = 10; break;
default: dian=Painum;break;
}
return dian;
}
上面是牌类
下面是发牌的信息
class Player
{
List<Card> cardList = new List<Card>();
public string PlayerName { get; set; }
int money = 1000;
public int Touzhu = 100;
public bool IsBao = false;
public Player(string playName)
{
PlayerName = playName;
}
public void Lost(int lostMoney)
{
money = money - lostMoney;
}
public void Win(int winMoney)
{
money = money + winMoney;
}
public void GetCard(Card card)
{
cardList.Add(card);
}
public int GetMyCardDian()
{
int alldian = 0;
foreach (Card mycard in cardList)
{
alldian += mycard.GetPaiDian();
}
return alldian;
}
public void ShowMyCard()
{
Console.WriteLine("这是"+PlayerName+"的牌");
foreach (Card mycard in cardList)
{
Console.Write(mycard.GetPaiName() + " ");
Console.Write
("\r\n");
}
}
//随机发牌
class Game
{
Dictionary<int, bool> allcardlist = new Dictionary<int, bool>();
public Game()
{
for (int i = 1; i <= 52; i++)
{
allcardlist.Add(i, false);
}
}
public Card FaPai()
{
Random random = new Random();
int i = random.Next(1, 52);
while (allcardlist[i] == true)
{
i = random.Next(1, 52);
}
return new Card(i);
}

浙公网安备 33010602011771号