jquery - 为什么我的石头剪刀布游戏条件不起作用?
问题描述
所以这就是我如何存储计算机选择的变量和玩家选择石头剪刀布游戏的方式:机器人和用户选择,这是网站的样子:网站. 所以,我这样做的目的是让函数考虑这些条件并提醒结果(例如:“你赢了”或“你输了”)。但是,它忽略了前两个条件并直接进入最后一个“else”,即使计算机选择的“oo”是例如摇滚而您的选择是纸,也会提醒游戏平局。现在,老实说,我不知道如何解决这个问题,因为它没有检测到我的条件错误,也没有说明变量是否存储错误,所以请帮助我解决这个问题,以及计算机选择时部分上方的所有部分, “oo”,并且存储的用户选择不是我做的,我正在使用这项工作(https://codepen.io/Re3ker/pen/VYBXBj)来改进我的格式(仅用于个人项目)
这是脚本的代码:
$(document).ready(function(){
var users = [],
shuffled = [],
loadout = $("#loadout"),
insert_times = 30,
duration_time = 10000;
$("#roll").click(function(){
users = [];
var lines = $('textarea').val().split('\n');
if(lines.length < 2){
$("#msgbox").slideToggle(100);
setTimeout(function() {
$("#msgbox").slideToggle(100);
}, 3000);
return false;
}
for(var i = 0;i < lines.length;i++){
if(lines[i].length > 0){
users.push(lines[i]);
}
}
$("#roll").attr("disabled",true);
var scrollsize = 0,
diff = 0;
$(loadout).html("");
$("#log").html("");
loadout.css("left","100%");
if(users.length < 10){
insert_times = 20;
duration_time = 5000;
}else{
insert_times = 10;
duration_time = 10000;
}
for(var times = 0; times < insert_times;times++){
shuffled = users;
shuffled.shuffle();
for(var i = 0;i < users.length;i++){
loadout.append('<td><div class="roller"><div>'+shuffled[i]+'</div></div></td>');
scrollsize = scrollsize + 192;
}
}
diff = Math.round(scrollsize /2);
diff = randomEx(diff - 300,diff + 300);
$( "#loadout" ).animate({
left: "-="+diff
}, duration_time, function() {
$("#roll").attr("disabled",false);
$('#loadout').children('td').each(function () {
var center = window.innerWidth / 2;
if($(this).offset().left < center && $(this).offset().left + 185 > center){
var userChoice=document.querySelector('input[name="one"]:checked').value;
var oo = $(this).children().text();
var a="rock";
var b="paper";
var c="scissors";
if(((userChoice=="paper")&&(oo==a))||((userChoice=="rock")&&(oo==c))|| ((userChoice=="scissors")&&(oo==b))){
alert("You wins! ");
}else if(((userChoice=="rock")&&(oo==b)) || ((userChoice=="paper")&&(oo==c))|| ((userChoice=="scissors")&&(oo==a))){
alert("you lose! ");
}else{
alert("A tie, PLAY AGAIN");
}
$("#log").append("The computer chose \n"+oo);
}
});
});
});
Array.prototype.shuffle = function(){
var counter = this.length, temp, index;
while (counter > 0) {
index = (Math.random() * counter--) | 0;
temp = this[counter];
this[counter] = this[index];
this[index] = temp;
}
}
function randomEx(min,max){
return Math.floor(Math.random()*(max-min+1)+min);
}
});
解决方案
Nvm,条件和变量存储正确,但我使用 textarea 作弊:
剪刀石头布
它从一开始就计算了“石头”、“纸”和“剪刀”之间的空间。所以我所要做的就是让它坚持开始,中间没有任何空间
推荐阅读
- python-3.x - 如何使用 Python 将邻接矩阵转换为转换矩阵?
- python - matplotlib:从熊猫创建多个子图(多类)
- podio - 如果我有图像 ID 或文件对象,如何从 Podio API 公开访问文件或图像
- apache - Apache VirtualHost 配置不会重定向我需要它的方式
- google-visualization - 如何在谷歌图表上显示值?
- regex - 匹配 URL 路径 A+ 或 B+ 但不匹配 AX+
- r - R中的RegEx识别数字出现的频率
- php - 为什么typo3 indexedsearch 不搜索?
- java - Selenium Select By Visible text 失败
- python - 如何更改 Django 登录表单中的默认字段