所以我有一個球員的卡陣列,在這種情況下,我想計算點經銷商,遊戲是二十一點,在這場比賽中,經銷商顯示他的第一張牌和其他人仍然隱藏,所以我想計算經銷商沒有第二張牌的點數;錯誤的價值,當打印變量jscript
pontosBanca.textContent = 'Pontos : ' + calcCount(cartasBanca[0]);
我可以做的,而不是下面
pontosBanca.textContent = 'Pontos : ' + calcCount(cartasBanca);
的問題是每當dealear有10卡點算十號線,這是始終爲1
這裏是calcCount函數{
function calcCount(cartas){
var sum = 0;
for(var x = 0;x<cartas.length;x++){
if(cartas[x] === 'V' || cartas[x] === 'D' || cartas[x] === 'K' || cartas[x] === '10') sum += 10;
else if(cartas[x] === 'A') sum += 1;
else{
sum += parseInt(cartas[x]);
}
}
return sum;
請注意,我可以刪除這種情況(|| cartas [x ] ==='10')因爲else子句會產生相同的結果,但是如果我刪除它,結果也是1。
和最後,如果我用這個功能來計算整個發牌手的點,包括第二張牌的結果將是一個正確爲例經銷商卡:10和2 calcCount將返回12
希望我沒有讓你太糊塗了,新來的JS,感謝您的幫助
輸出,如果我使用calcCount如果我給作爲輸入整隻手這個數只有一張卡 http://tinypic.com/view.php?pic=e7kxzq&s=9#.WLLnfTuLTsA
的點將是輸出 http://tinypic.com/view.php?pic=azhun9&s=9
注:經銷商表示邦卡
HTML
<!DOCTYPE html>
<html>
<head>
<title>BlackJack by RuiVieira</title>
</head>
<body>
<div id="zonaBanca">
<h1>Banca</h1>
<p id="pontosBanca">Pontos : </p>
</div>
<div id="zonaJogoBanca">
<p id="jogoBanca">-</p>
</div>
<div id="zonaJogador">
<h1>Jogador</h1>
<p id="pontosJogador">Pontos : </p>
</div>
<div id="zonaJogoJogador">
<p id="jogoJogador">-</p>
</div>
<div id="zonaAposta">
<h2>Aposta</h2>
<button id="subir">+1</button>
<button id="parar">stop</button>
<div>
<input id="valorAposta" type="number" min="0" step="1"/>
</div>
<div>
<button id="botaoAposta">Apostar</button>
</div>
</div>
<script src="scripts/blackj.js"></script>
</body>
</html>
的JScript
var inputvalorAposta = document.getElementById('valorAposta');
inputvalorAposta.defaultValue = 1;
botaoAposta.onclick = function() {
var valorAposta = inputvalorAposta.value;
if(valorAposta = document.getElementById('valorAposta').value.length !== 0){
var baralho = ['A','2','3','4','5','6','7','8','9','10','V','D','K', 'A','2','3','4','5','6','7','8','9','10','V','D','K',
'A','2','3','4','5','6','7','8','9','10','V','D','K', 'A','2','3','4','5','6','7','8','9','10','V','D','K'];
iniciaJogo(valorAposta, baralho);
}
else{
}
}
function iniciaJogo(valorAposta1, baralho){
var nrcartasJogador = 0;
var nrcartasBanca = 0;
var valorAposta = valorAposta1;
var bancaCount = 0;
var jogadorCount = 0;
var cartasBanca = [];
var cartasJogador = [];
var cartasUtilizadas = [];
var card1;
do{
card1 = Math.floor((Math.random() * baralho.length) + 0);
}while(baralho[card1] === undefined);
cartasBanca.push(baralho[card1]);
delete baralho[card1];
do{
card1 = Math.floor((Math.random() * baralho.length) + 0);
}while(baralho[card1] === undefined);
cartasJogador.push(baralho[card1]);
delete baralho[card1];
do{
card1 = Math.floor((Math.random() * baralho.length) + 0);
}while(baralho[card1] === undefined);
cartasBanca.push(baralho[card1]);
delete baralho[card1];
do{
card1 = Math.floor((Math.random() * baralho.length) + 0);
}while(baralho[card1] === undefined);
cartasJogador.push(baralho[card1]);
delete baralho[card1];
var pontosBanca = document.getElementById('pontosBanca');
var pontosJogador = document.getElementById('pontosJogador');
pontosBanca.textContent = 'Pontos : ' + calcCount(cartasBanca[0]);
pontosJogador.textContent = 'Pontos : ' + calcCount(cartasJogador);
nrcartasJogador = 2;
nrcartasBanca = 2;
var jogoBanca = document.getElementById('jogoBanca');
var jogoJogador = document.getElementById('jogoJogador');
jogoBanca.textContent = cartasBanca[0];
jogoBanca.textContent += ' #';
jogoJogador.textContent = cartasJogador[0] + ' ';
jogoJogador.textContent += cartasJogador[1];
var butaoSubir = document.getElementById('subir');
var butaoParar = document.getElementById('parar');
butaoSubir.onclick = function() {
var countCard = 0;
for(var x = 0;x<baralho.length;x++){
if(baralho[x] === undefined)countCard++;
}
if(countCard === 52)return;
do{
/*
baralho tem os mesmo elementos já que o delete substui o valor por undefined, no limite o baralho é composto por 52
*/
card1 = Math.floor((Math.random() * baralho.length) + 0);
}while(baralho[card1] === undefined);
cartasJogador.push(baralho[card1]);
delete baralho[card1];
jogoJogador.textContent += ' ' + cartasJogador[nrcartasJogador];
nrcartasJogador++;
if(calcCount(cartasJogador) <= 21)pontosJogador.textContent = 'Pontos : ' + calcCount(cartasJogador);
else(pontosJogador.textContent = 'Pontos : ' + calcCount(cartasJogador) + ' Rebentou');
}
butaoParar.onclick = function() {
jogoBanca.textContent = cartasBanca[0] + ' ' + cartasBanca[1];
pontosBanca.textContent = 'Pontos : ' + calcCount(cartasBanca);
}
}
/*
CALCULO DE PONTOS
*/
function calcCount(cartas){
var sum = 0;
for(var x = 0;x<cartas.length;x++){
if(cartas[x] === 'V' || cartas[x] === 'D' || cartas[x] === 'K') sum += 10;
else if(cartas[x] === 'A') sum += 1;
else{
sum += parseInt(cartas[x]);
}
}
return sum;
}
/**/
請出示一個例子輸入。 – Carcigenicate
http://tinypic.com/r/e7kxzq/9如果我只使用第一卡http://tinypic.com/r/azhun9/9 calcCount如果我calcCount給作爲參數整隻手 –
而接下來的時間,請通過縮進4個空格來正確地格式化您的代碼。 – Carcigenicate