洗牌程序,不大明白,请高手每句加上注释,详细点的。

peter101 2011-06-27 09:21:53
public void Shuffle()
{
Card[] newDeck = new Card[52];
bool[] assigned = new bool[52];
Random sourceGen = new Random();
for (int i = 0; i < 52; i++)
{
int destCard = 0;
bool foundCard = false;
while (foundCard == false)
{
destCard = sourceGen.Next(52);
if (assigned[destCard] == false)
foundCard = true;
}
assigned[destCard] = true;
newDeck[destCard] = Cards[i];
}
newDeck.CopyTo(Cards, 0);
...全文
108 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2011-06-27
  • 打赏
  • 举报
回复
说白了思路就是随机产生一个牌号,然后放入牌堆,直到所有的牌产生

给你一个简单而且易懂的代码:


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

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] data = Enumerable.Range(1, 52).Select(x => new { Key = Guid.NewGuid().ToString(), Value = x }).ToList().OrderBy(x => x.Key).ToArray();
data.ToList().ForEach(x => Console.Write(x.Value + " "));
}
}
}

110,569

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧