0

我正在尝试我的第一个单人纸牌游戏,使用 javascript 作为代码。我发现brainjar.com 作为这个项目的资源,到目前为止一切都很好。我已经通过这种方式学习了有关 javascript 的负载,并且我管理了游戏的原始形式,尽管是基于表单的。不整洁,但有点实用。

只是现在,我被卡住了。

每次我尝试按下按钮进行“if else”检查时,事情都会出错。在游戏中选择完全重置自己,或者根本拒绝工作。我想我一定在某个地方忽略了一些东西。

代码在这里发布会很乱,(我是初学者,我知道这很草率)但是如果有人想查看源代码,链接就在这里(警告,您可能需要缩小一点在显示方面,因为我还没有优化这个东西):

http://pluckzilla.com/game/clockgame.html

顶部附近丑陋的绿色按钮调用的功能是这个:


//game play

//begin with 12

function twelve(){

hand12.combine(fingering);
fingering.addCard(hand12.deal());
display();


//and i need to figure out a way to make sure only the rank of queen is allowed in the stack.


}

帮助?


根据要求添加详细信息

//example on how to get the card objects to stack, and there are a lot of them. card   objects are in a separate js file

left = 0;
top  = 0;
el = document.getElementById("fingering");
while (el.firstChild != null)
el.removeChild(el.firstChild);
for (i = 0; i < fingering.cardCount(); i++) {
node = fingering.cards[i].createNode();
node.firstChild.style.visibility = "visible";
node.style.left = left + "em";
node.style.top  = top  + "em";
el.appendChild(node);
left += .20;
top  += 0.05;
} 

奇怪的是,当 if 设置如下时,几乎就像隐含的“else”发生了:

function twelve(){
if (fingering.cards[0].rank==="10")
hand12.combine(fingering);
fingering.addCard(hand12.deal());


display();

我尝试的第一张牌是 10,两张牌之间的换牌效果很好,但随后的牌并没有完全交换,很快 12 手牌就空了,本应最多只有一张牌的指法有5.

这是怎么回事?

我看到brainjar 声明了一个newArray 来让二十一点游戏得分玩家的手,但这个游戏并不真正需要得分。(如果中间筹码中有 4 个国王,游戏将结束,但我还没有为那个事件编写代码。)

javascript中是否存在隐含的else之类的东西?


在那里向 MESSIAH 大喊,他让我的大脑有些工作,并让部分问题得到解决。现在我只需要弄清楚当卡不是正确的卡时如何让卡交换完全停止。


添加了一些代码..按预期工作...

function twelve(){
if (fingering.cards[0].rank!=="10")
alert ("nonono");

if (fingering.cards[0].rank==="10")
hand12.combine(fingering); 
fingering.addCard(hand12.deal());
display();

然而,在 ==="10" 版本上仍然会出现令人讨厌的隐含“else”效果,这使得新代码没有实际意义:无论检查什么卡,都运行最后两行。有任何想法吗?

4

1 回答 1

0

啊哈!

通过声明一个单独的函数将这两个步骤合二为一,然后运行它。

 //begin with 12

 function twelve(){
 var card;
 if (fingering.cards[0].rank!=="10")
 alert ("nonono");

 if (fingering.cards[0].rank==="10")
 cardExchange();
 display();


 //and i need to figure out a way to make sure only the rank of queen is allowed in the stack.


 }
 function cardExchange(){
 hand12.combine(fingering); 
 fingering.addCard(hand12.deal());
 }
于 2013-08-02T23:37:37.550 回答