JavaScript 卡牌游戏

标签 javascript arrays

我正在尝试制作一款纸牌游戏。玩家 1 和玩家 2 获得一张随机牌,拥有最大牌的人获胜。下面是一副牌(黑桃)的简单数组。我已将卡片的图像文件保存在名为“图像”的文件夹中,如下所示。

我的问题是:如何让这个数组显示卡片,并随机将一张卡片分配给两个玩家,并获得最高的卡片获胜?我知道可能需要使用 if/else/else if 语句来确定获胜者,但是我该如何将我的牌组分发给两个玩家呢?它会是某种功能吗?下面是我创建的数组:

var cards = [];   //variable for cards 

cards [0] = 'images/aceofspades.jpg';
cards [1] = 'images/twoofspades.jpg';
cards [2] = 'images/threeofspades.jpg';
cards [3] = 'images/fourofspades.jpg';
cards [4] = 'images/fiveofspades.jpg';
cards [5] = 'images/sixofspades.jpg';
cards [6] = 'images/sevenofspades.jpg';
cards [7] = 'images/eightofspades.jpg';
cards [8] = 'images/nineofspades.jpg';
cards [9] = 'images/tenofspades.jpg';
cards [10] = 'images/jackofspades.jpg';
cards [11] = 'images/queenofspades.jpg';
cards [12] = 'images/kingofspades.jpg';

下面的这段代码是我接下来要做什么的想法,但我不太确定这是否正确:

function choose (cards);
document.image [cards].src = cardsimage [cards];

最佳答案

试试这个代码。阅读评论以获取解释

// All cards:
var cards = [
  'https://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Playing_card_club_A.svg/2000px-Playing_card_club_A.svg.png',
  'https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Playing_card_spade_2.svg/819px-Playing_card_spade_2.svg.png',
  'http://www.clipartbest.com/cliparts/9T4/ezn/9T4eznrjc.png',
];

function play() {
  // get random position. Math.random returns float between 0 and 1
  var p1 = Math.floor(Math.random() * cards.length); // will get integet between 0 and cards.length - 1
  var p2 = Math.floor(Math.random() * cards.length);

  // create new image element
  var img1 = document.createElement('img');
  var img2 = document.createElement('img');

  // set image source to be same as selected card
  img1.src = cards[p1];
  img2.src = cards[p2];

  // select cards holding elements
  var holder1 = document.getElementById('card1');
  var holder2 = document.getElementById('card2');

  // clear images from previous game
  holder1.innerHTML = "";
  holder2.innerHTML = "";

  // add images to it's holders
  holder1.appendChild(img1);
  holder2.appendChild(img2);

  // game logic. Compare array key to see who wins
  if (p1 > p2) {
    alert('Player 1 is winner!');
  } else if (p1 < p2) {
    alert('Player 2 is winner!');
  } else {
    alert('No winner!');
  }
}
.p1,
.p2 {
  float: left;
  width: 200px;
  height: 250px;
  box-sizing: border-box;
  border: 1px solid #ddd;
  text-align: center;
}
img {
  height: 200px;
  display: inline-block;
}
button {
  width: 400px;
  font-size: 16px;
  color: white;
  background-color: #0040ff;
  border: 1px solid #7878ff;
  cursor: pointer;
}
<div class="play">
  <button onClick="play()">PLAY</button>
</div>
<div class="p1">
  <div class="header">Player 1</div>
  <span class="card-holder" id="card1"></span>
</div>
<div class="p2">
  <div class="header">Player 2</div>
  <span class="card-holder" id="card2"></span>
</div>

关于JavaScript 卡牌游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160613/

相关文章:

ios - 创建一个类并将信息存储在数组中

java 将对象转换为 double 组

c++ - 如何在编译时获取数组大小?

javascript - 解释为什么我需要在 Angular $timeout 中包装 highcharts jquery 事件以访问属性

javascript - 为什么我得到 'Cannot read property ' push' of undefined' (React Native)?

javascript - 如何通过 Chrome Identity 使用登录帐户

c - 在 C 中加载数组及其下标的平方

参数列表中的 Java 数组初始化

javascript - 循环遍历对象,将值拆分到自己的对象中以传递给 Handlebars

javascript - Safari 不向第二个 CORS 请求包含 COOKIE