如何使用 2 个数组在角度 js 中洗一副牌
How do i shuffle a deck of cards in angular js using 2 arrays?
#HTML#
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src='angular.js'></script>
<script type="text/javascript" src='a.js'></script>
</head>
<body>
<div ng-app="myApp" ng-controller="Ctrl">
<button ng-click="shuffle(obj)">shuffle</button>
<div ng-repeat="o in obj">
{{o}}
</div>
</div>
</body>
</html>
var app = angular.module('myApp',[]);
app.controller('Ctrl', ['$scope', function($scope){
$scope.obj=[["Clubs", "Diamonds", "Hearts", "Spades" ],["2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace" ]]
//var suits=$scope.suit.length;
//var ranks=$scope.rank.length;
//var t=suits*ranks;
}]
//generic shuffling function
$scope.shuffle = function(o){
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
}]);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src='angular.js'></script>
<script type="text/javascript" src='a.js'></script>
</head>
<body>
<div ng-app="myApp" ng-controller="Ctrl">
<button ng-click="shuffle(obj)">shuffle</button>
<div ng-repeat="o in obj">
{{o}}
</div>
</div>
</body>
</html>
var app = angular.module('myApp',[]);
app.controller('Ctrl', ['$scope', function($scope){
$scope.obj=[["Clubs", "Diamonds", "Hearts", "Spades" ],["2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace" ]]
var suits=$scope.suit.length;
var ranks=$scope.rank.length;
var t=suits*ranks;
}]
//generic shuffling function
$scope.shuffle = function(o){
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
}]);
我会使用lodash。 它具有简单的"随机播放"功能:
shuffled = _.shuffle(cards);
我想具体说明我拥有的卡,而不仅仅是"t",所以:
deck = function() {
_.each(suits, function(suit){
_.each(ranks, function(rank){
cards.push( {
suit: suit,
value: rank
});
});
});
},
然后,我会发牌:
deal = function() {
shuffled = _.shuffle(cards);
var card = 0;
_.times(numCards, function(c) {
_.times(players.length, function(p) {
hands[p].push(shuffled[card]);
showCard(p,c);
card++;
});
});
},
这是一个jsfiddle:https://jsfiddle.net/mckinleymedia/y2rvnzLL/1/
我希望这有所帮助。
相关文章:
- 更改路由后,运行一次js脚本
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 只加载一次js函数
- 如何使网页一次只能访问一次?(JS+HTML)
- 如何在不刷新页面的情况下每 10 秒在本地重新加载一次 JS 文件
- 只运行一次js文件
- 在多次激发时运行一次js函数
- 如何给玩家一副牌
- 我是否需要在lib或vendor文件夹中保留一份js库的副本,尽管已经使用npm安装了
- 打印出一副卡片
- 如何为可以多次加载的ajax页面处理只加载一次js
- 如何使用 2 个数组在角度 js 中洗一副牌
- 如何只显示一次JS警报
- 如何获得一组js函数在后台运行
- 在JavaScript中生成一副纸牌
- jsp中的窗口取消.如何回到上一页.JS
- 列出两种不同的内容,例如一副标有“等级”的牌;的“suit"
- 这是可能的C执行一段js代码
- 每次访问只执行一次js函数,刷新时再次执行
- 如何使用cookie只执行一次JS脚本