Javascript 岩石、布、剪刀代码提示不';行不通
我正在使用HTML测试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
函数重载(){
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”
- 添加了两个
元素,这两个元素都带有
标记,因此您可以从javascript访问它们id=
- 将
更改为自定义的document.write()
函数,该函数从HTML代码中获取updateHTMLWith()
元素之一,并将文本放入HTML中 - 将
函数的名称更改为reload()
,并将“使计算机移动、比较和显示结果”部分代码移到此处RunGame()
- 修正打字错误:删除else语句后不必要的“;”
- 将其中一条if语句中的
打字错误更改为计算机选择
计算机选择
部分(在
标记上方)的
语句中导入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 itvar 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 = "© " + y + " C§";
}