当前位置: 首页 > 编程笔记 >

C#实现洗牌游戏实例

易研
2023-03-14
本文向大家介绍C#实现洗牌游戏实例,包括了C#实现洗牌游戏实例的使用技巧和注意事项,需要的朋友参考一下

棋牌类游戏是目前比较火的游戏之一。今天本文就以实例形式实现洗牌游戏。本文实例所采用的算法是:遍历每个位置上的牌,然后与随机位置上的牌交换。

运行结果如下图所示:

对于牌来讲,2个关键的因素是面值和类型(如红桃、梅花等)。

代码如下:

public class Card
{
  private string mianzhi;
  private string leixin;
  public Card(string m, string l)
  {
    mianzhi = m;
    leixin = l;
  }
  public override string ToString()
  {
    return leixin + " " + mianzhi;
  }
}

客户端程序有3个方法,一个是初始化牌的数组,一个是遍历所有牌并显示,还有一个是使用算法洗牌。

具体实现代码如下:

class Program
{
  private static Card[] allCards = new Card[52];
  private static string[] ms = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
  private static string[] ls = { "红桃", "方块", "梅花", "黑桃" };
  static void Main(string[] args)
  {
    Init();
    ShowAllCards();
    Console.WriteLine("\r\n");
    Shuffle();
    ShowAllCards();
    Console.ReadKey();
  }
  private static void Shuffle()
  {
    Random r = new Random();
    Card tempCard;
    //依次遍历所有牌与随机位置上的牌交换位置
    for (int i = 0; i < allCards.Length; i++)
    {
      int ran = r.Next(52);
      tempCard = allCards[i];
      allCards[i] = allCards[ran];
      allCards[ran] = tempCard;
    }
  }
  private static void Init()
  {
    for (int i = 0; i < allCards.Length; i++)
    {
      allCards[i] = new Card(ms[i % 13],ls[i%4]);
    }
  }
  private static void ShowAllCards()
  {
    foreach (var item in allCards)
    {
      Console.Write(item.ToString() + " ");
    }
  }
}

希望本文所述实例对大家的算法学习能有所帮助。

 类似资料:
  • 本文向大家介绍C语言实现洗牌与发牌游戏,包括了C语言实现洗牌与发牌游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现洗牌与发牌游戏的具体代码,供大家参考,具体内容如下 普通版 高性能版 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍C++扑克牌的洗牌发牌游戏设计,包括了C++扑克牌的洗牌发牌游戏设计的使用技巧和注意事项,需要的朋友参考一下 笔者在大学二年级期间,做过的一次C++程序设计:扑克牌的洗牌发牌游戏。具体内容是:除去大王和小王,将52张扑克牌洗牌,并发出5张牌。然后判断这5张牌中有几张相同大小的牌,是否是一条链,有几个同花等。 笔者在学习他人设计的基础上,完成了自己的程序设计。这里将源程序分享给大家。 

  • 本文向大家介绍C#实现打字游戏,包括了C#实现打字游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#实现打字游戏的具体代码,供大家参考,具体内容如下 思路: 1、有一个游戏界面,我用panel作为游戏界面 2、开始生成字母 打字游戏的字母是不断生成的,所以用计时器timer来生成字母 所有生成的字母设置tag方便寻找 3、字母下落 字母下落是一个持续的动作,所以也在计时器里做

  • 本文向大家介绍C#实现随机洗牌的方法,包括了C#实现随机洗牌的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现随机洗牌的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍java实现24点纸牌游戏,包括了java实现24点纸牌游戏的使用技巧和注意事项,需要的朋友参考一下 本文题目为大家分享了java实现24点纸牌游戏的具体代码,供大家参考,具体内容如下 题目 24点游戏是经典的纸牌益智游戏。 常见游戏规则: 从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏

  • 本文向大家介绍C++实现经典24点纸牌益智游戏,包括了C++实现经典24点纸牌益智游戏的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了经典24点纸牌益智游戏的具体实现方法,供大家参考,具体内容如下 一.实验内容 24点游戏是经典的纸牌益智游戏。 常见游戏规则: 从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编