-2
我有幾個構造函數類的設置,我試圖彈出這個元素。出於某種原因,我不能。我可以打電話但我不能彈出它,我不知道爲什麼。我發佈完整的代碼(這是一個uno遊戲)。我認爲這可能與玩家在不同的構造函數中被調用的事實有關,但我使用了回調函數,所以我想我應該能夠改變它,因爲我可以執行所有的功能。我不能使用pop()? javascript
作爲替代方案,我可能會在播放器中創建一個允許彈出的函數,但我希望有一些洞察。
通過此代碼的一半是一個未編碼的行,我有問題。
function Card(color, value){
this.color = color
this.value = value
var values = {
10: "Skip", // 2 per color
11: "Draw 2", //2 per color
12: "Reverse", //2 per color
13: "Wild", // 4 wilds
14: "Wild Draw Four" //4 of these
}
var color = ["Green", "Blue", "Yellow", "Red"]
if (values[this.value]){
this.name = `${values[this.value]} of ${color[this.color]}`
}
else{
this.name = `${this.value} of ${color[this.color]}`
}
}
function Deck(){
this.deck = []
this.pile = []
for (var color = 0; color < 4; color ++){
for (var value = 0; value <= 14; value++){
this.deck.push(new Card(color, value))
}
}
for (var color = 0; color < 4; color ++){
for (var value = 1; value <=12; value++){
this.deck.push(new Card(color, value))
}
}
this.shuffle = function(){
for (var i = 0; i<this.deck.length; i++){
var j = Math.floor(Math.random()*this.deck.length)
var temp = this.deck[j]
this.deck[j] = this.deck[i]
this.deck[i] = temp
}
}
}
function Player(hand, name, callname){
this.hand = hand
this.name = name
this.callname = callname
}
function functioning_turns(players, my_deck){
console.log(players);
for(var i = 0; i < players.length; i++){
current = players[i]
console.log(current);
name_curr = players[i].name
top_pile = my_deck.pile[0].name
console.log('It\'s '+name_curr+ ' turn.')
for (var i = 0; i < current.hand.length;i++){
console.log(current.hand[i].name);
}
function play_card(){
var ploy = prompt("Please enter card position to play: 0-N (n is number of cards)\n\nTop of pile: "+ top_pile, "Starts at zero");
console.log(current.hand[ploy]);
略低於此行中我不能讓元素的流行,我可以打電話 current.hand [策略]
console.log(current.hand[ploy].pop())};
// if(this.hand[play] == 'skip' || 'Skip'){
//
// }
play_card()
}
}
function start_game(){
var playernames = []
var num_of_players = prompt("Please enter number of players", "4")
var my_deck = new Deck()
my_deck.shuffle()
var x = 1
while (x <= num_of_players){
var player_names = prompt("Please enter player name", "shawn");
curr_hand = []
my_deck.deal = function(){
return curr_hand.push(my_deck.deck.pop())}
for(var i = 0; i<7; i++){
my_deck.deal();
}
newplayer = player_names+x
newplayer = new Player(curr_hand, player_names, newplayer);
playernames.push(newplayer);
x++;
}
my_deck.pile.push(my_deck.deck.pop())
console.log(my_deck.deck);
var game = new functioning_turns(playernames, my_deck)
}
start_game()
什麼是「不能彈出」呢?有錯誤嗎? – Ryan
你爲什麼不解釋你想要做什麼以及實際發生了什麼。 「不能」是什麼意思? –
當前未聲明。這是一個隱含的全球性。在你的文件的最上面加上''use strict';''。 –