嘿,伙计们,在一个多部分的问题上遇到了一些麻烦。我试图得到一个石头剪刀布游戏,当我试图测试代码使用游戏方法我必须输入我的选择一遍又一遍,然后它只是打印出平局,你是赢家,电脑是赢家一遍又一遍,有人能告诉我我哪里出错了吗?
import java.util.Scanner;
import java.util.Random;
/**
* A class that will play a game of rock paper scissors.
*
* @author (your name)
* @version (a version number or a date)
*/
public class RockPaperScissors
{
private Scanner reader;
private int yourScore;
private int computerScore;
private Random ran = new Random();
public RockPaperScissors()
{
reader = new Scanner(System.in);
yourScore = 0;
computerScore=0;
Random ran = new Random();
}
public void printPrompt()
{
System.out.println("Enter your choice, paper, rock or scissors >");
String userChoice = userChoice();
System.out.println();
System.out.println();
System.out.println("Enter your choice, paper, rock or scissors >"+ userChoice);
}
public final String userChoice()
{
String userChoice= reader.next();
return userChoice;
}
public String computerChoice()
{
String compMove = ("");
int cpuChoice = ran.nextInt(3);
switch(cpuChoice)
{
case 0:
{
compMove = ("rock");
break;
}
case 1:
{
compMove = ("paper");
break;
}
case 2:
{
compMove = ("scissors");
break;
}
}
return (compMove);
}
public String findWinner(String yourChoice, String computerChoice)
{
yourChoice = userChoice();
computerChoice = computerChoice();
String Winner= null;
if (yourChoice.equals(computerChoice))
{
Winner = ("draw");
}
if (yourChoice.equals("rock"))
{
if (computerChoice.equals("paper"))
{
computerScore++;
Winner = ("computer");
}
else if (computerChoice == "scissors")
{
yourScore++;
Winner = ("you");
}
}
if (yourChoice.equals("paper"))
{
if (computerChoice.equals("scissors"))
{
computerScore++;
Winner = ("computer");
}
else if (computerChoice.equals("rock"))
{
yourScore++;
Winner = ("you");
}
}
if (yourChoice.equals("scissors"))
{
if (computerChoice.equals("rock"))
{
computerScore ++;
Winner = ("computer");
}
else if (computerChoice.equals("paper"))
{
yourScore++;
Winner = ("you");
}
}
if (!yourChoice.equals("rock||paper||scissors"))
{
computerScore++;
Winner = ("computer");
}
return Winner;
}
public void playRound()
{
printPrompt();
String computerChoice=computerChoice();
String userChoice=userChoice();
System.out.println("You have chosen " + userChoice + " and the computer has chosen " + computerChoice);
String findWinner = findWinner(computerChoice,userChoice);
{
if (findWinner.equals("draw"));
System.out.println("This game is a draw");
if (findWinner.equals("you"));
System.out.println("You are the winner");
if (findWinner.equals("computer"));
System.out.println("The computer is the winner");
}
System.out.println("You have " + yourScore + "and the computer has "+ computerScore);
}
}
if
语句末尾的分号表示if
语句为CONLETE。紧接在if
语句之后的行是独立的,它们不属于if
语句...这就是为什么它们总是运行。
改变:
if (findWinner.equals("draw"));
System.out.println("This game is a draw");
致:
if (findWinner.equals("draw"))
System.out.println("This game is a draw");
或者更好:
if (findWinner.equals("draw")) {
System.out.println("This game is a draw");
}
有没有什么建议可以帮我保存我最初的选择,这样我就不用一直输入了?
在findWinner()
中,您再次调用userChoice()
和computerChoirce()
。此时,这些值已经存在于传入的参数中,因此您不需要这些值。将其注释掉或删除:
public String findWinner(String yourChoice, String computerChoice)
{
// You don't need these two lines:
//yourChoice = userChoice();
//computerChoice = computerChoice();
// ... other existing code ...
}
然后,在play圆桌会议()
中,调用printPrompt()
和userChoice()
,它们都有自己的输入机制:
printPrompt();
String computerChoice=computerChoice();
String userChoice=userChoice();
System.out.println("You have chosen " + userChoice + " and the computer has chosen " + computerChoice);
我会去掉printPrompt()
,然后做:
// printPrompt();
String computerChoice=computerChoice();
System.out.print("Enter your choice, paper, rock or scissors >");
String userChoice=userChoice();
System.out.println("You have chosen " + userChoice + " and the computer has chosen " + computerChoice);
findwiner()
中有一些逻辑错误。这并不像你想象的那样:
if (!yourChoice.equals("rock||paper||scissors"))
{
computerScore++;
Winner = ("computer");
}
我认为你想做的是让计算机获胜,如果用户不输入“石头”、“纸”或“剪刀”?如果是这样,请将您的if
语句更改为sterif
语句,并添加最终的ster
块:
public String findWinner(String yourChoice, String computerChoice)
{
String Winner = "";
if (yourChoice.equals(computerChoice))
{
Winner = "draw";
}
else if (yourChoice.equals("rock"))
{
if (computerChoice.equals("paper"))
{
computerScore++;
Winner = "computer";
}
else if (computerChoice.equals("scissors"))
{
yourScore++;
Winner = "you";
}
}
else if (yourChoice.equals("paper"))
{
if (computerChoice.equals("scissors"))
{
computerScore++;
Winner = "computer";
}
else if (computerChoice.equals("rock"))
{
yourScore++;
Winner = "you";
}
}
else if (yourChoice.equals("scissors"))
{
if (computerChoice.equals("rock"))
{
computerScore ++;
Winner = "computer";
}
else if (computerChoice.equals("paper"))
{
yourScore++;
Winner = "you";
}
}
else // user did not type "rock", "paper", or "scissors"!
{
computerScore++;
Winner = ("computer");
}
return Winner;
}
最后,主要的错误是,在调用findwiner()
时交换了参数的顺序。
改变:
String findWinner = findWinner(computerChoice, userChoice);
致:
String findWinner = findWinner(userChoice, computerChoice);
希望有帮助!
问题内容: 我正在尝试将Stripe集成到我的购物车项目中。我无法提交结帐表格。我不断收到此错误消息:“必须提供来源或客户。” 我没有正确设置我的Stripe帐户,或者我的JavaScript中缺少某些参数。我已经花了几个小时解决这个问题,但仍然无法解决。 这来自Stripe的日志: 解析的请求POST正文 反应体 这是我的app.js 这是我的index.js: 这是我的checkout.js:
问题内容: 我正在尝试使用机械化提交表单,但遇到了错误(TypeError:ListControl,必须设置顺序)。在谷歌搜索了一段时间并尝试了几种不同的解决方案后,我无法解决该问题。我正在尝试提交所有字段。 通过机械化获取的表单数据(对于br.forms()打印中的f:f) 我当前的代码 请您协助并检查我是否为表单选项使用了正确的语法。谢谢 问题答案: 栏位会要求您提供整数清单,但您只提供一个整
我正在使用multer和cloudinary构建一个图像上传应用程序。我已经使用dotenv正确配置了环境变量。然而,当我尝试使用Cloudinary上传文件时,我得到了错误“必须提供api_密钥”。 Cloudinary API凭据的提供和配置正确,如下代码所示: 阴云密布。js 埃文先生 这个env文件在我的应用程序中也是正确必需的。js文件: app.js 如果我在cloudinary.js
问题内容: 我正在尝试达到类似于37signals的ta-da列表的效果-我希望我的用户仅通过选中“完成”框即可从列表中检查项目- 换句话说,表单已提交到服务器在复选框上。有谁知道涵盖此类内容的教程,或者可以为我指明正确的方向? 谢谢罗布 问题答案: 如果我正确理解您的问题: 您可以使用jQuery和AJAX完成此操作。在第一个示例中,我无需提交整个表单,而仅提交复选框的值: 大概您会在服务器端处
问题内容: 我有6个选项,我想获取选中的值以将它们存储在第二页的变量中。我该怎么做呢? 和页面: 如果我删除,我会打开颜色,当我这样做时会收到一条通知,说: 数组到字符串的转换 我想要的是选中复选框的值,因此我可以将其存储在变量中。 问题答案: 我最喜欢的一种好方法,我敢肯定,很多人都会利用它来输出您选择的每种颜色,并在屏幕上彼此下方显示。 在使用复选框时,您别无选择,只能使用,这就是为什么只从数
问题内容: 大家好,我有一个联系表格,验证码在那里。提交表格后,我想保留支票。我发布了文本框值,它显示正确,但复选框不起作用。这是我的代码。 提交表格后如何保留复选框? 问题答案: 更改 至 这将使复选框保持选中状态。