常用的洗牌算法代码怎么写?
来源:life4711 博客 发布时间:2020-05-21 13:44:45

题目要求: 用计算机模拟洗牌(不包括大小王),分发给四个玩家并将四个玩家的牌显示出来。

思路:i从0~51遍历,每次产生i到52之间的随机数k(i

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int i, j;

Random Rnd = new Random();

int k;

int[] Card = new int[52];

int[,] Player = new int[4, 13];

for (i = 0; i < 4; i++)

{

for (j = 0; j < 13; j++)

{

Card[i * 13 + j] = (i + 1) * 100 + j + 1;

}

}

Console.Write("Please input times:");

string s = Console.ReadLine();

int times = Convert.ToInt32(s);

for (j = 1; j <= times; j++)

{

for (i = 0; i < 52; i++)

{

k = Rnd.Next(51 - i + 1) + i;

int temp = Card[i];

Card[i] = Card[k];

Card[k] = temp;

}

}

k = 0;

for (j = 0; j < 13; j++)

{

for (i = 0; i < 4; i++)

{

Player[i, j] = Card[k++];

}

}

for (i = 0; i < 4; i++)

{

Console.WriteLine("Player{0}:", i + 1);

for (j = 0; j < 13; j++)

{

k = (int)Player[i, j] / 100;

switch (k)

{

case 1:

s = Convert.ToString("红桃");

break;

case 2:

s = Convert.ToString("方片");

break;

case 3:

s = Convert.ToString("梅花");

break;

case 4:

s = Convert.ToString("黑桃");

break;

}

k = Player[i, j] % 100;

switch (k)

{

case 1:

s = s + "A";

break;

case 11:

s = s + "J";

break;

case 12:

s = s + "Q";

break;

case 13:

s = s + "K";

break;

default:

s = s + Convert.ToString(k);

break;

}

Console.Write(s);

if (j < 12)

Console.Write(", ");

else

Console.WriteLine(" ");

}

}

Console.Read();

}

}

}

注:

101,102,103...113 分别表示红桃A,红桃2,...红桃K

201,202,203...213分别表示方块A,方块2,...方块K

301,302,303...313 分别表示梅花A,梅花2,...梅花K

401,402,403...413分别表示黑桃A,黑桃2,...黑桃K

————————————————

版权声明:本文为CSDN博主「life4711」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/lvshubao1314/java/article/details/51345972

标签: 洗牌算法

猜你喜欢

股票缩量回调是什么意思 成交量缩小代表什么?

对于投资者来,参与炒股需要一定时间去学习相关知识,都是从一开始的陌生到熟悉再到熟练过程。首先...更多

2022-01-24 14:16:41

黄金期货交割日是每月几号 黄金期货交割规则具体

投资市场上,推出了众多投资产品,其中,不少投资者都比较倾向黄金期货的投资产品。然而,为了让更...更多

2022-01-24 14:16:41

美国股市三大指数分别是什么 包含标准普尔500指

今天来聊聊美国股市最新情况,截至美东时间周五收盘,美股三大指数均大幅收跌,标普500指数、纳指创...更多

2022-01-24 14:16:41

社保流水账单怎么打印 线上打印受限制吗?

如今,大部分人买房都会首先贷款买房,这样可以减轻自己的经济负担。然而,在贷款买房时,除了要提...更多

2022-01-20 15:49:12

学生怎么在网上赚钱 写文章赚钱靠谱吗?

随着互联网的发展,越来越多的项目在互联网上赚钱,很多学生想利用业余时间赚点零花钱,但是却不知...更多

2022-01-20 15:49:12

中国第一个12万亿GDP大省诞生 广东连续33年位居

GDP是国民经济核算的核心指标,也是衡量一个国家或地区经济状况发展水平的重要指标。2022年到来,全...更多

2022-01-20 15:49:12

房屋没有不动产权证有哪些风险 会有一房多卖的风

不动产权证是指不动产物权的证明,在市场上交易房子时,买家一般都要求卖家提供不动产权证。如果房...更多

2022-01-19 22:30:03

还小额贷款显示银行卡限额怎么办 解决方法一般有

如今很多人急用钱时,都会向银行申请贷款,贷款申请成功后就能解决当前资金周转问题,不过却要长期...更多

2022-01-19 22:30:03

业主缴纳维修基金一般多少钱 收取比例是多少?

业主在购买房产的时候都知道,其中有一个是业主必须要缴纳的基金,就是维修基金。维修基金一般都是...更多

2022-01-19 22:30:03

信用卡刷爆是什么意思 信用卡刷爆的后果主要有哪

目前,许多人都有一张,甚至是多张信用卡。那你知道信用卡刷爆是什么意思吗?资料显示,信用卡刷爆是...更多

2022-01-18 16:37:14