javascript - document.write javascript 黑 jack 游戏

标签 javascript

目前,我正在尝试使用 javascript 制作黑 jack 游戏。

到目前为止,我有庄家牌和闲家牌。当玩家决定再拿一张牌时就会出现问题。似乎 document.write 在将字符串写入网页时迟到了。

    while (totalP < 21)
        {
            r = confirm("Hit?");
            if (r==true)
            {
                document.write("<center><br>You chose to hit. </center>");
                p[counter] = deck[Math.floor(Math.random() * deck.length)];
                document.write("<center><br>" + x + "'s next card: " + p[counter] + "</center>");
                totalP = total(p, totalP);
                if (totalP > 21)
                {
                    for (var i=0; i<p.length; i++)
                    {
                        value = p[i].substring(0,p[i].length-1);
                        if (value == "A")
                        {
                            totalP = totalP - 10;
                            break;
                        }
                        else if (i == p.length - 1)
                        {
                            document.write("<center><br>You busted. Total = " + totalP + " > 21. Dealer Wins!</center>");
                            break;
                        }
                    }
                }
            }

字符串“你选择击中。”出现,甚至在我按下确定之后。应该显示下一张牌的文本没有出现在网页上和确认对话框“你选择了打”。再次出现,直到第二次 ok 或直到玩家手牌大于 21。

如果有人可以帮助我解决这个问题,我将不胜感激。在互联网上进行研究并自行排除故障后,我只能认为 document.write 与其他 javascript 代码相比不可靠且速度慢。

最佳答案

不要使用 document.write。如您所见,它完全取代了文档的内容。

相反,您应该创建一个 HTML 文档,其中包含一些可以放置文本的 HTML 元素。

您可以通过 id 属性选择 HTML 节点。当您有这样的 HTML 节点时:

<div id="myDiv"></div>

你可以使用

var div = document.getElementById("myDiv");

在您的 Javascript 代码中访问该 div。然后你可以使用

div.innerHTML = "Hello World!";

更改该 div 的文本。您还可以像这样创建新的 HTML 元素:

var newDiv = document.createElement("div");
newDiv.innerHTML = "I am a newly created div!";
var oldDiv = document.getElementById("myDiv");
oldDiv.appendChild(newDiv);

之后您的 HTML 文档将如下所示:

<div id="myDiv">Hello World!<div>I am a newly created div!</div></div>

关于javascript - document.write javascript 黑 jack 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031276/

相关文章:

javascript - 使用npm csv-writer写入csv文件不起作用,但没有出现错误消息

JavaScript float 比较

javascript - 如何在 HTML 网页上同步多个动画 PNG 图像?

javascript - ReactJS:如果变量更改值则重新加载组件

javascript - 将 JSON 对象放入带有 th 标签的 thymeleaf 中

javascript - Fullcalendar 不显示数据库中的事件

javascript - Jquery 轻羽 js。自定义 CSS 单选按钮在模式窗口中不起作用

javascript - 如何在 http.ServerResponse 对象上调用 end() ?

javascript - Jquery eq 选择器不适用于类

javascript - DAO 与 ORM - 在 Sequelize.js 的上下文中解释的概念