【发布时间】:2021-02-20 13:08:30
【问题描述】:
大家好,我正在尝试在 javascript 中创建二十一点,但我有一个问题,我不知道为什么它说当我有一个 entira 脚本时没有定义二十一点管理器
let blackjack_manager = function (){
let game = null;
function debug(an_object) {
document.getElementById("debug").innerHTML = JSON.stringify(an_object);
}
function buttons_initialization(){
document.getElementById("card").disabled = false;
document.getElementById("stand").disabled = false;
document.getElementById("new_game").disabled = true;
}
function finalize_buttons(){
document.getElementById("card").disabled = true;
document.getElementById("stand").disabled = true;
document.getElementById("new_game").disabled = false;
}
function new_game(){
let cards = null;
game = new BlackJack();
dealer_new_card();
dealer_new_card();
cards = game.get_dealer_cards();
cards[1] = "X";
document.getElementById("dealer").innerHTML = JSON.stringify(cards);
player_new_card();
buttons_initialization();
document.getElementById("card").addEventListener("click",player_new_card);
document.getElementById("stand").addEventListener("click",dealer_finish);
document.getElementById("new_game").addEventListener("click",new_game);
debug(game);
}
function update_dealer(state){
if(state.gameEnded){
let cards = game.get_dealer_cards();
let msg = JSON.stringify(cards);
if (state.dealerWon){
msg = msg +"Win";
}
else {
msg = msg + "lose";
}
document.getElementById("dealer").innerHTML = msg;
finalize_buttons();
}
}
function update_player(state){
let cards = game.get_dealer_cards();
let msg = JSON.stringify(cards);
if(state.gameEnded){
if (state.pBust ){
msg = msg +"Lost";
}
else {
msg = msg + "Win";
}
finalize_buttons();
}
document.getElementById("dealer").innerHTML = msg;
}
function dealer_new_card(){
let state = game.dealer_move();
update_dealer(state);
debug(game);
return state;
}
function player_new_card() {
let state = game.player_move();
update_player(state);
debug(game);
return state;
}
function dealer_finish(){
let state = game.get_game_state();
game.setDealerTurn(true);
while(!state.gameEnded){
update_dealer(state);
dealer_new_card();
state= game.get_game_state();
debug(game);
}
}
return{
new_game= new_game
}
}();
这是出现问题的html
!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="js/blackjack_object.js"></script>
<script src="js/blackjack_manager.js"></script>
<title>BlackJack</title>
</head>
<body>
<header>
<h1>BLACKJACK</h1>
</header>
<section id="game">
<h1>Dealer</h1>
<p id="dealer"></p>
<h1>Player</h1>
<p id="player"></p>
<button id="card" type="button" >Card</button>
<button id="stand" type="button">Stand</button>
<button id="new_game" type="button" disabled>New Game</button>
</section>
<section id="sec_debug">
<h1>Debug</h1>
<p id="debug"></p>
</section>
<section>
<script> window.onload = blackjack_manager.newgame </script>
</section>
<footer></footer>
</body>
</html>
这里有问题
错误 1:Uncaught SyntaxError: Invalid shorthand property initializer 没有可用的调试器,无法发送“变量”
error " :Uncaught ReferenceError: blackjack_manager is not defined tp2/blackjack_19 alunos/blackjack_oop.html:33 没有可用的调试器,无法发送“变量”
【问题讨论】:
-
错误似乎认为你有语法错误。
-
new_game= new_game是您为变量赋值的方式,但您返回的是一个对象,因此=应该是:。请记住 `Invalid shorthand property initializer` 可能意味着这个问题。 -
是的,这是 Invalid shorthand property initializer 的问题,谢谢。但我仍然有经理问题
标签: javascript html blackjack