Js实现简单的洗牌
基础篇
洗牌采用的是,每一张牌,与后面随机一张牌来交换位置。
扑克牌采用编码制(如,0代表红桃A,依次类推)为了编码方便,扑克牌不含大小王,故52张。
一、扑克牌的了解
function Card(){
this.suit = ""
this.face = ""
this.setSuit = function(newSuit){
this.suit = newSuit
}
this.setFace = function(newFace){
this.face = newFace
}
this.showCard = function(){
document.write(this.suit+this.face +'\n')
}
}
二、洗牌思想
洗牌采用第一张,与后面随机一张交换位置。
用数组poker[53]代表一副扑克牌,多出的一张作为用来交换牌时的temp容器。
for(i = 0; i < poker.length-1; i++){
var rnd = Math.round( Math.random() * 51 )
poker[52] = poker[rnd]
poker[rnd] = poker[i]
poker[i] = poker[52]
}
三、牌与面值关联
这个通过两个简单的数组就可以搞定。
一个存放suit,另一个存放face
var suitGroup = ["红桃", "方块", "梅花", "黑桃"]
var faceGroup = ["A", "1", "2", "3", "4", "5", "6", "7", "8","9", "J", "Q", "K" ] for(i = 0; i < poker.length-1 ; i++){
var card = new Card()
card.setSuit( suitGroup[ poker[i]%4 ] )
card.setFace( faceGroup[ poker[i]%13 ] )
card.showCard()
}
Js实现简单的洗牌的更多相关文章
- js 随机数 洗牌算法
function shuffle(arr){ var len = arr.length; for(var i = 0;i<len -1;i++) { var idx = Math.floor(M ...
- js 数组随机洗牌
//先定义一个某数值范围内的随机数 function getRandom(min, max) { return Math.floor(Math.random() * (max - min + 1) + ...
- 洗牌算法Fisher_Yates原理
1.算法 http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle 简单的原理如下图所示: 2.原理 总结下,洗牌算法Fisher_Yates ...
- [转]完美洗牌(Perfect Shuffle)问题
[转]原博文地址:https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/02.09.md ...
- Baraja演示15种不同的洗牌特效
实例演示 下载地址 实例代码 实例演示 实例代码 <div class="container"> <header class="clearfix&q ...
- [CareerCup] 18.2 Shuffle Cards 洗牌
18.2 Write a method to shuffle a deck of cards. It must be a perfect shuffle—in other words, each of ...
- 【BZOJ-1965】SHUFFLE 洗牌 快速幂 + 拓展欧几里德
1965: [Ahoi2005]SHUFFLE 洗牌 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 541 Solved: 326[Submit][St ...
- 完美洗牌&洗牌
完美洗牌问题,给定一个数组a1,a2,a3,...an,b1,b2,b3..bn,把它最终设置为b1,a1,b2,a2,...bn,an这样的. O(n)的算法,O(n)的空间. 对于前n个数,映射为 ...
- 1965: [Ahoi2005]SHUFFLE 洗牌 - BZOJ
Description 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联 ...
随机推荐
- Linux_scp
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...
- 搜索引擎LuceneNet
http://www.cnblogs.com/edisonchou/p/5348625.html
- GDB的深入研究
GDB的深入研究 一.GDB代码调试 (一)GDB调试实例 在终端中编译一个示例C语言小程序,保存为文件 gdblianxi.c 中,用GCC编译. 在上面的命令行中,使用-o参数指定了编译生成的可执 ...
- JAVA实现国际化
1 Java国际化的思路 Java程序的国际化的思路是将程序中的标签.提示等信息放在资源文件中,程序需要支持哪些国家.语言环境,就对应提供相应的资源文件.资源文件是key-value对,每个资源文件中 ...
- C++多线程の条件变量
如果有一个队列,方法一和方法二:方法一是生产者,方法二是消费者: 两者不停的相互等待,加减锁,为了减少不必要的等待,我们可以使用条件变量, 条件的变量的第二个参数的加入可以控制多个线程的"消 ...
- Chapter 2: 随机变量
1. 随机变量, 离散型随机变量,连续型随机变量 设$\Omega$为随机试验的样本空间,$X:\Omega \rightarrow R$是定义在样本空间$\Omega$上的实值函数,则称$X$为随机 ...
- Spring和EJB3的技术对比
随着EJB3规范以及支持EJB3的Java EE应用服务器的即将发布,全新Java EE体系架构的新战争将拉开帷幕,在过去3年中如火如荼的Spring占据了Java EE应用开发基础平台的大半江山,面 ...
- 程序设计入门——C语言 第7周编程练习 2 鞍点(5分)(5分)
2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格 ...
- TCP/IP协议学习(四) 基于C# Socket的Web服务器---静态资源处理
目录 1. C# Socket通讯 2. HTTP 解析引擎 3. 资源读取和返回 4. 服务器测试和代码下载 Web服务器是Web资源的宿主,它需要处理用户端浏览器的请求,并指定对应的Web资源返回 ...
- A*算法 -- 八数码问题和传教士过河问题的代码实现
前段时间人工智能的课介绍到A*算法,于是便去了解了一下,然后试着用这个算法去解决经典的八数码问题,一开始写用了挺久时间的,后来试着把算法的框架抽离出来,编写成一个通用的算法模板,这样子如果以后需要用到 ...