Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 岩石、布、剪刀代码提示不';行不通_Javascript_Html - Fatal编程技术网

Javascript 岩石、布、剪刀代码提示不';行不通

Javascript 岩石、布、剪刀代码提示不';行不通,javascript,html,Javascript,Html,我正在使用HTML测试javascript代码。由于某种原因,它不会起作用 这是,这是 片段 函数重载(){ location.reload() } var choice=prompt(“您选择石头、布还是剪刀?”); var userChoice=choice.toLowerCase(); var computerChoice=Math.random(); var computerChoiceCapitalized=“无”; var大写=函数(字){ 返回word.charAt(0.toUp

我正在使用HTML测试javascript代码。由于某种原因,它不会起作用

这是,这是

片段

函数重载(){
location.reload()
}
var choice=prompt(“您选择石头、布还是剪刀?”);
var userChoice=choice.toLowerCase();
var computerChoice=Math.random();
var computerChoiceCapitalized=“无”;
var大写=函数(字){
返回word.charAt(0.toUpperCase()+word.slice(1);
};
变量比较=函数(选项1,选项2){
如果(选项1==“岩石”){
如果(选项2==“纸张”){
返回“你输了!”;
};
否则如果(选项2==“剪刀”){
返回“你赢了!”;
};
否则{
return“这是平局!”;
};
};
else if(选项1==“纸张”){
如果(选项2==“剪刀”){
返回“你输了!”;
};
否则如果(选项2==“岩石”){
返回“你赢了!”;
};
否则{
return“这是平局!”;
};
};
否则{
如果(选项2==“岩石”){
返回“你输了!”;
};
否则如果(选项2==“纸张”){
返回“你赢了!”;
};
否则{
return“这是平局!”;
};
};
};

if(computerChoice简短回答:您的代码不工作,因为您的javascript加载到HTML页面的某个位置,但代码从未执行。原因有二:它有语法错误,因此
提示符()
无法运行。但主要原因是您需要代码在某个位置执行javascript函数

javascript代码中包含的命令假定您不是在HTML环境中工作,而是在控制台类型的环境中工作。 (document.write()
语句表明)

对于您来说,一个很好的起点是转到可以调试和运行普通javascript代码的地方。 您可能需要修复打字错误(;等)。 还需要学习如何将代码封装在函数中

然后转到一个可以学习如何让javascript和HTML协同工作的地方

如果您想查看带有修复程序的代码的工作版本: 我对您的代码所做的更改:

  • 将“重新加载”按钮更改为“重置游戏”=修复页面不必要的完全重新加载的快捷方式
  • 已从HTML中删除“从外部网站加载javascript”
  • 添加了两个
    元素,这两个元素都带有
    id=
    标记,因此您可以从javascript访问它们
  • document.write()
    更改为自定义的
    updateHTMLWith()
    函数,该函数从HTML代码中获取
    元素之一,并将文本放入HTML中
  • reload()
    函数的名称更改为
    RunGame()
    ,并将“使计算机移动、比较和显示结果”部分代码移到此处
  • 修正打字错误:删除else语句后不必要的“;”
  • 将其中一条if语句中的
    计算机选择
    打字错误更改为
    计算机选择
这是一个非弹出(window.alert)版本的问题解决方案,请随意标记为正确或不正确。我将尝试在下面的代码中解释它应该如何运行:

HTML

您应该在
部分(在
标记上方)的
语句中导入CSS

对于此代码示例,3个按钮将给出设置玩家的选择并触发显示游戏结果的序列。
重试
按钮将重置棋盘并隐藏计算机的选择和结果(因为它们尚未确定)。此外,脚本标记通常位于html页面的底部,以便更快地加载内容

<body onload="reload()">
   <h1>Rock Paper Scissors</h1>
   <div>
      <hr>
      <p>Choose your method</p>
      <button type="button" onclick="rock()">Rock</button>
      <button type="button" onclick="paper()">Paper</button>
      <button type="button" onclick="scissors()">Scissors</button>
   </div>
   <div>
      <p id="computer">The computer chose: <span id="choice"></span></p>
      <p id="result"></p>
      <br id="noResult"/>
   </div>
   <div>
      <hr>
      <button type="button" onclick="reload()">Try Again</button>
      <p><i>You can also just make a new selection...</i></p>
   </div>
   <div id="footer"></div>
   <!-- <script src="js/script.js"></script> -->
</body>
JavaScript

显然,这就是应用程序的神奇之处

首先要初始化一些有用的变量(全局)这并不局限于函数的内容。你可以做得更多,但我决定保持简单。重新加载函数的作用与你的预期相同,只是重置棋盘并隐藏结果。接下来的3个函数根据单击的按钮设置玩家的选择。选择是选择计算机的选择,显示计算机的选择选择,并调用以获得资格。资格是一系列if-else-if/switch案例块,根据玩家和计算机的选择确定赢家。页脚函数(在重新加载中调用)确保自定义样式的页脚在当前年份可见(出于版权目的)

我希望这能让您了解如何构建代码,或者至少解决了通过作业的短期目标


-C§

你能在这里发布你的代码吗?另外,请具体说明它到底是如何不起作用的(错误消息,预期与实际行为等)。是的,定义“代码不起作用”。你在
之后使用
如果
块有
其他
块。提示符接受2个输入,do it
var choice=提示符(“你选择石头吗”,“布还是剪刀?”;
@JacqueGoupil XSS不会阻止其他域中的脚本。脚本标记几乎可以位于任何地方。您的版本不会检查不可接受的答案……除了“石头”、“布”或“剪刀”之外,任何其他内容都无法生成新结果,只能将文本改回“按运行游戏按钮”“。按照OP的要求,您没有重置按钮。不过,阅读材料很棒。修复了小的打字错误(否则代码正常工作)检查不可接受的答案+按钮内文本的语义更新。顺便说一句:OP没有要求重置按钮,但询问了为什么他的代码不起作用。我将让OP来决定是修复原始代码还是完全不同的代码最有帮助。
h1, p, div, body {
   text-align: center;
   font-family: arial;
   background-color: #000;
   color: #339933;
}
div {
   width: 66%;
   margin-left: auto;
   margin-right: auto;
}
i {
   font-size: 8pt;
}
#footer {
   font-family: papyrus;
   color: #008080;
}
var choices = ['Rock', 'Paper', 'Scissors'];
var player = '';
var computer = '';

function reload() {
   footer();
   document.getElementById('computer').style.display = 'none';
   document.getElementById('result').style.display = 'none';
   document.getElementById('noResult').style.display = 'block';
   player = '';
   computer = '';
}

function rock() {
   player = choices[0];
   computer = choose();
}

function paper() {
   player = choices[1];
   computer = choose();
}

function scissors() {
   player = choices[2];
   computer = choose();
}

function choose() {
   var choice = Math.floor(Math.random() * (3 - 0) + 0);
   computer = choices[choice];
   document.getElementById('choice').innerHTML = computer + '.';
   document.getElementById('result').innerHTML = qualify();
   document.getElementById('computer').style.display = 'block';
   document.getElementById('result').style.display = 'block';
   document.getElementById('noResult').style.display = 'none';
}

function qualify() {
   var choice = '';
   switch (player) {
       case choices[0]:
           switch (computer) {
               case choices[1]:
                   choice = "Computer wins. Try again?";
                   break;
               case choices[2]:
                   choice = "You win! Play again?";
                   break;
           }
           break;
       case choices[1]:
           switch (computer) {
               case choices[0]:
                   choice = "You win! Play again?";
                   break;
               case choices[2]:
                   choice = "Computer wins. Try again?";
                   break;
           }
           break;
       case choices[2]:
           switch (computer) {
               case choices[0]:
                   choice = "Computer wins. Try again?";
                   break;
               case choices[1]:
                   choice = "You win! Play again?";
                   break;
           }
           break;
       default:
           choice = "Tie! Wasn't that fun?";
           break;
   }
   return choice;
}

function footer() {
   var d = new Date();
   var y = d.getFullYear();
   document.getElementById('footer').innerHTML = "&copy; " + y + " C&sect;";
}