如何使用 2 个数组在角度 js 中洗一副牌

How do i shuffle a deck of cards in angular js using 2 arrays?

本文关键字:一副 js 何使用 数组      更新时间:2023-09-26
 #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/

我希望这有所帮助。