要求:
52张扑克牌 ,随机分给四个玩家,用户可以输入洗牌次数,运行效果如:
namespace Shuffle
{
class Program
{
static void Main(string[] args)
{
Card c = new Card();
//c.print();
Console.WriteLine("请输入洗牌的次数");
int n = Int32.Parse(Console.ReadLine());
Console.WriteLine("洗牌后");
c.wash(n);
c.print();
}
}
/// <summary>
/// 牌
/// </summary>
public class Card
{
ArrayList arrayList1;
ArrayList arrayList2;
string[,] cards;
public Card()
{
//初始化花色
arrayList1 = new ArrayList(4);
arrayList1.Add('/x0003');
arrayList1.Add('/x0004');
arrayList1.Add('/x0005');
arrayList1.Add('/x0006');
//初始化点数
arrayList2 = new ArrayList(13);
arrayList2.Add('A');
for (int i = 2; i <= 10; i++)
{
arrayList2.Add(i);
}
arrayList2.Add('J');
arrayList2.Add('Q');
arrayList2.Add('K');
//初始化牌
cards = new string[4, 13];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 13; j++)
{
cards[i, j] = arrayList1[i].ToString() + arrayList2[j].ToString();
}
}
}
/// <summary>
/// 洗牌,times次数
/// </summary>
/// <param name="times"></param>
public void wash(int times)
{
Random ra = new Random();
int m,n;
for (int k = 0; k < times; k++)
{
for (int i = 0; i < 4; i++)
{
m = ra.Next(0, 3);
for (int j = 0; j < 13; j++)
{
string temp = null;
n = ra.Next(0, 13);
temp = cards[m, j];
cards[m, j] = cards[i, n];
cards[i, n] = temp;
}
}
}
}
/// <summary>
/// 输出
/// </summary>
public void print()
{
for (int i = 0; i < 4; i++)
{
Console.WriteLine("第{0}位玩家", i + 1);
for (int j = 0; j < 13; j++)
{
Console.Write(cards[i, j] + " ");
}
Console.WriteLine();
}
}
}
}