我正在嘗試構建一個賭博模擬器,讓你用假錢賭博,看看你是否會經常獲勝。我試圖復制的游戲是來自 Roobet 的 Mines。在我的游戲中,有 9 個方格以網格狀布局。其中一個方塊是炸彈方塊,這意味著如果你點擊它,你就輸了。玩家不知道哪個方塊是炸彈方塊。您必須點擊 4 個方格,如果您點擊的所有方格都是非炸彈方格,那么您將贏得 50 美元。如果您點擊炸彈方塊,那么您將損失 50 美元。
我一周以來一直想弄清楚的是,如何讓游戲等到單擊 4 個非炸彈方塊或單擊 1 個炸彈方塊才能執行某些功能(從賭博金額,重新開始游戲)。我試過while回圈,但這會使瀏覽器崩潰。我也嘗試過 if-else 陳述句,但代碼不會等到點擊了 4 個非炸彈方塊或 1 個炸彈方塊。它只是立即檢查它。所以它導致它無法正常作業。我也嘗試讓函式呼叫自身,然后檢查任何一種情況,但它只會導致錯誤提示“超出最大呼叫堆疊大小”。
function bombClicked () {
for (let i = 0; i < array.length; i ) { //each square is put into an array named array
array[i].addEventListener("click", () => {
if (array[i].value == "bomb") {
array[i].style.background = "red";
redCounter ;
didLose = true
}
else{
array[i].style.background = "green";
greenCounter ;
didLose = false;
}
})
}
if (greenCounter >= 4 || redCounter >= 1) {
if (didLose == true) {
gamblingAmount.value = parseInt(gamblingAmount.value) - 50;
}
else {
gamblingAmount.value = parseInt(gamblingAmount.value) 50;
}
reset();
}
}
uj5u.com熱心網友回復:
多么有趣的小練習啊!這是我快速而骯臟的 jquery 解決方案。
const NO_OF_TRIES_ALLOWED = 4;
const SCORE_WON_LOST = 50;
var score = 0;
var tries = 0;
var bombId;
function restart() {
tries = 0;
$("button").removeClass("ok");
$("button").removeClass("bang");
bombId = Math.floor( Math.random() * 9);
$("#bombLabel").text(bombId);
}
function win() {
window.alert('you win!');
score = SCORE_WON_LOST;
$("#scoreLabel").text(score);
restart();
}
function lose(){
window.alert('you lose!');
score -= SCORE_WON_LOST;
$("#scoreLabel").text(score);
restart();
}
$(document).on("click", "button", function() {
if( !$(this).is(".bang") && !$(this).is(".ok") ) {
let buttonId = $(this).data("id");
if(buttonId === bombId) {
$(this).addClass('bang');
setTimeout(lose, 100); // bit of a delay before the alert
}
else {
$(this).addClass('ok');
tries ;
if(tries === NO_OF_TRIES_ALLOWED) {
setTimeout(win, 100); // bit of a delay before the alert
}
}
}
});
restart();
button{
width: 50px;
height: 50px;
padding: 0;
}
.ok{
background-color: green;
}
.bang{
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button data-id="0"></button>
<button data-id="1"></button>
<button data-id="2"></button><br>
<button data-id="3"></button>
<button data-id="4"></button>
<button data-id="5"></button><br>
<button data-id="6"></button>
<button data-id="7"></button>
<button data-id="8"></button><br>
Score: <span id="scoreLabel"></span>
uj5u.com熱心網友回復:
看起來你需要某種狀態。我不知道您的其余代碼是什么樣的,但也許創建一個幫助程式來跟蹤您的計數可能會有所幫助:
class Counter {
constructor() {
this.count = 0;
}
inc() {
this.count ;
}
getCount() {
return this.count
}
}
const counter = new Counter();
counter.inc();
counter.inc();
counter.inc();
counter.getCount(); // 3
Javascript 應該為您保留它。我可能必須查看您的其余代碼才能了解如何準確解決該問題,但也許這會讓您走上正確的軌道!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/443847.html
標籤:javascript
上一篇:計算一種格式的字符數
