`
luozhonghua2014
  • 浏览: 62541 次
文章分类
社区版块
存档分类
最新评论

洗纸牌算法

 
阅读更多
import java.util.Random;

class Card
{
   int Suit;							//花色 
   char Number;							//牌数 
}

public class PokeShow {
	static Card[] OneCard=new Card[52];		    	//保存每张扑克的花色、数字
	
	static void ShowCard() 							//显示扑克牌 
	{
	   int i, j;
	   int sign=0;
	   String s="";

	   for (i = 0, j = 0; i < 52; i++, j++)
	   {
		  if (j % 13==0)
		  {
			 System.out.print("\n");
		  }
		  switch(OneCard[i].Suit)					//显示花色符号
		  {
		  case 1:
			  s="黑桃";
			  sign=3;
			  break;
		  case 2:
			  s="红桃";
			  sign=4;
			  break;
		  case 3:
			  s="梅花";
			  sign=5;
			  break;
		  case 4:
			  s="方块";
			  sign=6;
			  break;
		  default:
			  ;
		  }
		  System.out.printf("  "+s+OneCard[i].Number);	//输出显示
	   }
	   System.out.print("\n");
	}
	
	static void Shuffle()								//算法
	{
		int i,j,temp;
		int suit;
		
	    Card tempcard=new Card();

		suit=0;
	   for (i = 0; i < 52; i++)						//生成52张牌 
	   {
		  if (i % 13 == 0)
		  {
			 suit++;							//改变花色 
		  }
		  Card t=new Card();
		  t.Suit = suit;					//保存花色 
		  temp = i % 13;
		  switch(temp)							//特殊值处理
		  {
		  case 0:
			  t.Number = 'A';
			  break;
		  case 9:
			  t.Number = '0';
			  break;
		  case 10:
			  t.Number = 'J';
			  break;
		  case 11:
			  t.Number = 'Q';
			  break;
		  case 12:
			  t.Number = 'K';
			  break;
		  default:
			  t.Number =(char)(temp + '1');
		  }
		  OneCard[i]=t;

	   }
	   System.out.printf("一付新牌的初始排列如下:\n"); 

	   ShowCard();

	   Random r=new Random();					//随机种子
	   for (i = 0; i < 52; i++)
	   {
		  j = r.nextInt(52);						//随机换牌
		  tempcard = OneCard[j];
		  OneCard[j] = OneCard[i];
		  OneCard[i] = tempcard;
	   }
	}
	public static void main(String[] args) {
						
		 Shuffle();								//洗牌
		 System.out.print("\n洗牌后的排列如下:\n");
		 ShowCard();							//显示新牌的排列

	}

}

分享到:
评论

相关推荐

    纸牌源码—学习纸牌的好例子

    洗牌算法是一个重要的部分,通常采用Fisher-Yates(Knuth)洗牌算法。 【游戏逻辑】 在纸牌游戏中,游戏逻辑涉及玩家的操作,如发牌、移动牌、比较牌等。源码会演示如何处理这些操作,例如,当用户点击某张牌时,...

    面向对象实验——蜘蛛纸牌

    - 卡牌管理:包括发牌、洗牌、移除牌等操作,可能需要自定义排序算法来满足蜘蛛纸牌的特殊规则。 - 游戏状态:跟踪当前游戏的状态,如是否可以移动卡片、是否游戏结束等。 - 规则判断:实现蜘蛛纸牌的规则检查,...

    蜘蛛纸牌的java程序

    - **洗牌算法**:游戏开始时需要随机分布纸牌,因此需要设计一个有效的洗牌算法,如Fisher-Yates(Knuth)洗牌算法。 - **胜利条件检查**:当所有纸牌按照特定顺序排列完成时,游戏结束。需要编写函数来检查当前...

    纸牌游戏 C++代码

    代码实现可能包括创建纸牌类、洗牌算法、发牌逻辑、玩家交互以及游戏规则判断等功能。 【标签】"纸牌游戏" 涉及的是游戏设计中的一个常见类别,通常涉及策略、概率和玩家决策。"C++" 是一个强大且广泛应用的编程...

    行业分类-设备装置-游戏系统、纸牌、纸牌发牌盒及纸牌洗牌装置.zip

    综上所述,"行业分类-设备装置-游戏系统、纸牌、纸牌发牌盒及纸牌洗牌装置"这一主题涵盖了IT行业的多个层面,包括软件开发、硬件设计、算法应用、随机性生成以及人工智能技术。无论是数字游戏还是实体游戏,这些技术...

    用一段代码演示马云双十一晚会上玩的纸牌魔术

    马云手中的纸牌魔术可能涉及到一种叫做洗牌算法,它是一种在计算机科学中常见的随机化技术。在实际应用中,比如在线游戏或模拟实验中,洗牌算法用于生成随机序列。在这个魔术中,马云展示了一组经过特殊操作的纸牌,...

    java控制台纸牌游戏

    - **算法**:洗牌算法(如Fisher-Yates洗牌法)、出牌规则判断算法(如比较牌型的优先级)都需要合理的算法设计。 5. **面向对象编程**: 使用面向对象的思想,我们可以创建Player类来代表游戏中的玩家,包含其...

    基于C#纸牌游戏的单张纸牌生成

    9. 排序算法:如果游戏需要按特定顺序排列纸牌,如按数字或花色排序,就需要用到排序算法,如快速排序、冒泡排序或选择排序。 10. 游戏状态管理:为了跟踪游戏的进度,需要创建并维护各种游戏状态(如等待玩家出牌...

    纸牌游戏代码

    在编程领域,纸牌游戏代码通常涉及到数据结构和算法的设计,以便模拟和处理各种纸牌游戏的逻辑。这里我们主要探讨这两个核心知识点。 首先,**数据结构** 是关键,因为我们需要有效地存储和管理纸牌。一种常见的...

    基于jquery实现的蜘蛛纸牌电脑版HTML5源码

    7. JavaScript算法:洗牌算法(如Fisher-Yates shuffle)、排序算法(如冒泡排序或快速排序)可能用于处理卡牌顺序。 8. Local Storage或Session Storage:HTML5提供的本地存储机制,可用于保存游戏进度或用户设置。...

    C# 纸牌移动

    总的来说,【C# 纸牌移动】项目不仅涵盖了C#语言的基础知识,还涉及了图形用户界面设计、事件处理、数据结构与算法等多个领域,是学习C#和.NET开发的一个很好的实践案例。通过这样的项目,开发者可以提升自己的编程...

    java纸牌游戏源代码

    - **洗牌算法**:确保牌组的随机性,如Fisher-Yates洗牌算法。 - **匹配算法**:根据游戏规则,判断牌的匹配条件,如比较牌的大小、花色等。 - **决策算法**:如AI玩家的决策逻辑,可能涉及到搜索算法(如Minimax...

    JavaScript版蜘蛛纸牌

    4. **算法实现**:游戏的核心逻辑包括发牌、移动、合并、洗牌等操作,这需要一系列的算法支持。例如,发牌算法要考虑牌的顺序和规则;合并算法要判断是否满足蜘蛛纸牌的消除条件。 5. **游戏规则**:蜘蛛纸牌有其...

    Java实现蜘蛛纸牌代码

    【Java实现蜘蛛纸牌代码】是一个典型的编程项目,它涉及到计算机科学中的游戏开发、图形用户界面(GUI)设计以及算法实现等多方面知识。蜘蛛纸牌是一款流行的经典单人纸牌游戏,通常由Windows系统内置,玩家需要通过...

    Java实现蜘蛛纸牌小游戏源码.zip

    5. **算法与数据结构**:蜘蛛纸牌游戏的规则涉及到排序、比较和移除等操作,这需要有效的算法和数据结构支持。例如,使用栈(Stack)来模拟纸牌堆,使用队列(Queue)来处理可移动的纸牌序列。 6. **游戏状态管理**...

    纸牌游戏(代码+报告)

    在编程领域,实现纸牌游戏的代码可以作为一个有趣的项目,帮助开发者提升算法设计、数据结构和游戏逻辑理解的能力。本项目包含了一个完整的纸牌游戏代码实现,同时附带了一份详细的游戏实验报告,旨在为学习者提供一...

    C# 写的纸牌游戏 蜘蛛游戏

    - **洗牌算法**:确保牌的随机分布,通常采用Fisher-Yates(Knuth)洗牌算法。 - **匹配规则**:蜘蛛游戏的规则是将同花色且连续的牌组合成一组,直到所有牌组成完整的序列。这个过程需要复杂的数据结构和搜索算法...

    纸牌记忆游戏

    洗牌算法是游戏的关键,通常使用Fisher-Yates(也称为Knuth)洗牌算法,保证随机性。当用户点击纸牌时,JavaScript会检查是否为翻开的第一张牌,如果是,则标记该牌并等待用户点击第二张。如果两张牌匹配,它们会...

    XP自带游戏蜘蛛纸牌源码

    它将展示如何利用编程语言来实现游戏规则,如卡牌的堆叠、洗牌、移动等操作,并处理玩家的交互输入。 在蜘蛛纸牌游戏中,关键知识点包括: 1. **游戏规则**:蜘蛛纸牌有四个目标列,玩家需将同花色的牌从K到A依次...

    蜘蛛纸牌完整代码+成品

    2. **模型层**:这部分代码实现了蜘蛛纸牌的游戏逻辑,包括发牌、移牌、洗牌等规则,以及判断游戏是否胜利的条件。 3. **视图层**:这部分代码负责展示游戏界面,包括牌桌布局、用户交互元素(如按钮、文本框)等,...

Global site tag (gtag.js) - Google Analytics