我对JavaScript有点陌生。我刚开始学习,我决定做一个“石头、布、剪刀、蜥蜴、斯波克”的游戏。代码如下:
var userChoice = prompt("Do you choose rock, paper, scissors, lizard, or spock?")
var computerChoice = Math.random();
if (computerChoice < 0.2) {
computerChoice = "rock";
} else if (computerChoice <= 0.4) {
computerChoice = "paper";
} else if (computerChoice <= 0.6) {
computerChoice = "scissors";
} else if (computerChoice <= 0.8) {
computerChoice = "lizard";
} else {
computerChoice = "spock";
}
alert("The computer chose " + computerChoice);
var compare = function(choice1, choice2){
if (choice1 === choice2) {
alert("And... It's a tie!");
}
//If the user chose rock...
else if (choice1 === "rock") {
if (choice2 === "scissors") {
alert("Rock wins!");
} else if (choice2 === "paper") {
alert("Paper wins!");
} else if (choice2 === "lizard") {
alert("Rock wins!");
} else {
alert("Spock wins!");
}
}
//If the user chose paper...
else if (choice1 === "paper") {
if (choice2 === "scissors") {
alert("Scissors wins!");
} else if (choice2 === "rock") {
alert("Paper wins!");
} else if (choice2 === "lizard") {
alert("Lizard wins!");
} else {
alert("Paper wins!");
}
}
//If the user chose scissors...
else if (choice1 === "scissors") {
if (choice2 === "paper") {
alert("Scissors wins!");
} else if (choice2 === "rock") {
alert("Rock wins!");
} else if (choice2 === "lizard") {
alert("Scissors wins!");
} else {
alert("Spock wins!");
}
}
//If the user chose lizard...
else if (choice1 === "lizard") {
if (choice2 === "scissors") {
alert("Scissors wins!");
} else if (choice2 === "rock") {
alert("Rock wins!");
} else if (choice2 === "paper") {
alert("Lizard wins!");
} else {
alert("Lizard wins!");
}
}
//If the user chose spock...
else if (choice1 === "spock") {
if (choice2 === "scissors") {
alert("Spock wins!");
} else if (choice2 === "rock") {
alert("Spock wins!");
} else if (choice2 === "lizard") {
alert("Lizard wins!");
} else {
alert("Paper wins!");
}
}
};
compare(userChoice, computerChoice);
我想在代码中添加两个主要内容,但我不知道如何添加:
>
我想添加一些东西,这样每当有人输入无效的东西(例如“树懒”)时,它就会提醒他们输入无效,并再次要求他们输入石头、布、剪刀、蜥蜴或斯波克。
我会编写一个函数来获得正确的响应,而不是全部内联...这就是我...
function getUserChoice(){
var invalidPin = true;
var response;
while(invalidPin){
response = prompt("choose your thing..");
if(response == "rock" || response == "paper" || response == "scizerz"){
invalidPin = false;
}
}
}
return response;
}
然后,只需调用函数即可获得用户的选择
var userChoice = getUserChoice();
让我们开始面向对象。它将减少逻辑中的重复:
//Set up the choices with what they can beat
//This is a hash table of objects you can referecne by name
var choices = {rock : {name: "Rock", defeats: ["scissors","lizard"]},
paper: {name: "Paper", defeats: ["rock", "spock"]},
scissors: {name: "Scissors", defeats: ["paper", "lizard"]},
lizard: {name: "Lizard", defeats:["paper","spock"]},
spock: {name: "Spock", defeats:["scissors","rock"]}
};
//Get the computers choice
var computerChoice = Math.random();
if (computerChoice < 0.2) {
computerChoice = "rock";
} else if (computerChoice <= 0.4) {
computerChoice = "paper";
} else if (computerChoice <= 0.6) {
computerChoice = "scissors";
} else if (computerChoice <= 0.8) {
computerChoice = "lizard";
} else {
computerChoice = "spock";
}
//Get the users choice, normalising to lower case
var userChoice = prompt("Do you choose rock, paper, scissors, lizard, or spock?").toLowerCase();
alert("The computer chose " + computerChoice);
//Check for a tie
if(computerChoice == userChoice){
alert("It's a tie");
//Check for a valid choice
}else if(choices[userChoice] === undefined){
alert("Invalid Choice");
}else{
//Get the chosen one as an object
userChoice = choices[userChoice];
//Check For a win
/*var victory = false;
for(var i = 0; i < userChoice.defeats.length; i++){
if(computerChoice == userChoice.defeats[i])
{
victory = true;
break;
}
}*/
//Improved check, inspired by Mke Spa Guy
var victory = userChoice.defeats.indexOf(computerChoice) > -1;
//Display result
if(victory) {
alert("Vitory! " + userChoice.name + " wins!")
}else{
alert("Defeat, " + computerChoice + " wins!");
}
}
就这样,斯波克是你叔叔。
演示
完整的动作演示:例如:纸覆盖岩石;
更多阅读:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
http://www.mojavelinux.com/articles/javascript_hashes.html
用数学简化结果函数。http://jsfiddle.net/afrievalt/qBbJn/
var options = ["paper", "rock", "lizard", "spock", "scissors"],
result = [" ties ", " beats ", " loses to "],
bigBang = function(choice1, choice2) {
var index1 = options.indexOf(choice1), //spock => 3
index2 = options.indexOf(choice2), //rock=> 1
dif = index2 - index1; // 1 - 3 => -2
if(dif < 0) { // -2 < 0 => truthy
dif += options.length; // -2 + 5 => 3
}
while(dif > 2) { //3 > 2 => truthy
dif -= 2; // 3 - 2 => 1
}
return choice1 + result[dif] + choice2; //spock beats rock
};
.
bigBang("spock", "paper"); // spock losses to paper
var i = Math.floor(Math.random() * 5),
randomChoice = options[i];
bigBang(randomChoice, userChoice);
此函数还可用于选项=[“cockroach”、“nuke”、“shoe”],(来自70年代的节目)或任何奇数长度数组,如选项=[“water”、“fire”、“paper”、“rock”、“tree”、“metal”、“mud”]//todo:如果任何索引=-1,则抛出错误
我正在用java编写一个石头剪刀游戏,但有些事情我想不出来。首先,我想让用户可以输入“Rock”或“paper”,而不是1、2和3,但我想不出来。其次,我应该使用嵌套的if-else语句,但我也不知道如何使用我所做的。我的代码如下 导入Java . util . scanner;公共类RockGame {
我写了一个“石头、布、剪刀”游戏: 它可以工作,但是,这是很多s,我知道这对于语句时,问题是我不知道如何。 我试着根据输入使用一个返回语句:“返回0代表石头,1代表布,2代表剪刀”,然后使用一个条件来表示“嘿,如果一个玩家返回1,另一个玩家也返回1,那么就把‘平局’放进去,其他可能的结果也一样。”。 我试图将一个数字与结果联系起来:
本文向大家介绍Python实现石头剪刀布游戏,包括了Python实现石头剪刀布游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了一个简单的小游戏,分享给大家。 利用随机函数制作石头剪刀布小游戏 程序只运行一次 每次出拳一次要运行一次,很麻烦,要让程序一直运行 在程序中加个while条件就解决啦 长期玩游戏不利于身心健康,玩游戏要有度 那就默认游戏一开始有三次机会吧,每玩一次减掉一次
本文向大家介绍JavaScript实现的石头剪刀布游戏源码分享,包括了JavaScript实现的石头剪刀布游戏源码分享的使用技巧和注意事项,需要的朋友参考一下 这个游戏主要设计到两点: 首先是胜负运算 由于石头剪刀布是循环性的 石头 杀 剪子 剪子 杀 布 布 杀 石头 石头 杀 剪子 。。。 根据以上特点找出规律,写出算法即可。 让电脑随机 这点比较容易,前面我有写过文章介绍,不明白的
本文向大家介绍JavaFX实现石头剪刀布小游戏,包括了JavaFX实现石头剪刀布小游戏的使用技巧和注意事项,需要的朋友参考一下 用JavaFX写一个石头剪刀布的小游戏,供大家参考,具体内容如下 课程上布置的作业,其实java很少用来写这种程序的 - GUI界面部分 - 石头剪刀布的逻辑部分 书上教的是JavaFX,其实还有很多方法,书上说AWT和Swing基本上淘汰了,但事实上… 代码 MyJav
本文向大家介绍Java实现石头剪刀布小游戏,包括了Java实现石头剪刀布小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Java实现石头剪刀布的具体代码,供大家参考,具体内容如下 代码: 运行效果: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。