[追加悬赏] 我写的一个程序有点小毛病不会改,望高人帮忙。java语言。
下面这个程序社会用来玩剪刀石头布游戏的。要求:玩家和电脑分别选择一个手势(石头=1布=2剪刀=3)然后显示出玩家和电脑哪一方获胜(或者平局)。如果玩家想退出选择0。当玩家...
下面这个程序社会用来玩 剪刀石头布 游戏的。要求:玩家和电脑分别选择一个手势(石头=1 布=2 剪刀=3)然后显示出玩家和电脑哪一方获胜(或者平局)。如果玩家想退出 选择 0。当玩家选择停止时,电脑依次显示出玩家赢、输、平手的次数,然后再问 “要不要再玩一局(1=是、2=否)”
import java.util.*;
public class RPS{
public static void main (String[] args){
int user, computer, loose, win, tie;
loose = 0;
win = 0;
tie = 0;
Scanner Scan = new Scanner(System.in);
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
Random genreator = new Random();
computer = genreator.nextInt(3)+1;
while (user != 0){
System.out.println("你的选择: " + user + ";电脑的选择:" + computer);
if (user == 3 && computer == 1){
System.out.println("你输了");
loose++;
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
}
if (user - computer > 0){
System.out.println("你赢了");
win++;
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
}
if (user - computer < 0){
System.out.println("你输了");
loose++;
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
}
if (user == computer){
System.out.println("本局平");
tie++;
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
}
System.out.println("你的战绩:赢 " + win + " 次、输 " + loose + " 次、平局 " + tie + " 次。");
}
}
}
我现在的问题是:
1、怎样在每一次剪刀石头布时使电脑重新选一个random number
2、需要在程序里面写什么code才可以让它无限循环直到玩家选择退出?我希望要的设计是选择 0 然后再次确认一遍。(就是先 System.out.println("请...(中间省略)..选择 0 停止游戏"); 然后等玩家选择0以后再 System.out.println("您确定要退出游戏吗?(1=是 2=否)");
谢谢帮忙,满意的追加悬赏分数 展开
import java.util.*;
public class RPS{
public static void main (String[] args){
int user, computer, loose, win, tie;
loose = 0;
win = 0;
tie = 0;
Scanner Scan = new Scanner(System.in);
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
Random genreator = new Random();
computer = genreator.nextInt(3)+1;
while (user != 0){
System.out.println("你的选择: " + user + ";电脑的选择:" + computer);
if (user == 3 && computer == 1){
System.out.println("你输了");
loose++;
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
}
if (user - computer > 0){
System.out.println("你赢了");
win++;
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
}
if (user - computer < 0){
System.out.println("你输了");
loose++;
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
}
if (user == computer){
System.out.println("本局平");
tie++;
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
}
System.out.println("你的战绩:赢 " + win + " 次、输 " + loose + " 次、平局 " + tie + " 次。");
}
}
}
我现在的问题是:
1、怎样在每一次剪刀石头布时使电脑重新选一个random number
2、需要在程序里面写什么code才可以让它无限循环直到玩家选择退出?我希望要的设计是选择 0 然后再次确认一遍。(就是先 System.out.println("请...(中间省略)..选择 0 停止游戏"); 然后等玩家选择0以后再 System.out.println("您确定要退出游戏吗?(1=是 2=否)");
谢谢帮忙,满意的追加悬赏分数 展开
3个回答
展开全部
import java.util.Random;
import java.util.Scanner;
public class RPS {
public static void main(String[] args) {
int user, computer, loose, win, tie;
loose = 0;
win = 0;
tie = 0;
Random genreator = new Random();
Scanner in = new Scanner(System.in);
while (true) { //条件为true就可以无限循环了
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
computer = genreator.nextInt(3) + 1; //写在循环里,那么每次开始就重新生成一个了
try {
user = Integer.parseInt(in.next());
if (user < 0 || user > 3) {
throw new Exception();
}
if (user == 0) { //先判断0
System.out.println("您确定要退出游戏吗?(1=是 2=否)");
int i = in.nextInt();
if (i < 1 || i > 2) { //再判断一次确认
throw new Exception();
}
if (i == 1)
break;
else
continue;
}
int result = user - computer;
if (result == -1 || result == 2) {
System.out.println("你输了");
loose++;
} else if (result == 0) {
System.out.println("本局平");
tie++;
} else {
System.out.println("你赢了");
win++;
}
System.out.println("你的战绩:赢 " + win + " 次、输 " + loose
+ " 次、平局 " + tie + " 次。");
} catch (Exception e) { //所有的异常只是过滤掉错误的输入
System.out.println("输入错误");
}
}
}
}
import java.util.Scanner;
public class RPS {
public static void main(String[] args) {
int user, computer, loose, win, tie;
loose = 0;
win = 0;
tie = 0;
Random genreator = new Random();
Scanner in = new Scanner(System.in);
while (true) { //条件为true就可以无限循环了
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
computer = genreator.nextInt(3) + 1; //写在循环里,那么每次开始就重新生成一个了
try {
user = Integer.parseInt(in.next());
if (user < 0 || user > 3) {
throw new Exception();
}
if (user == 0) { //先判断0
System.out.println("您确定要退出游戏吗?(1=是 2=否)");
int i = in.nextInt();
if (i < 1 || i > 2) { //再判断一次确认
throw new Exception();
}
if (i == 1)
break;
else
continue;
}
int result = user - computer;
if (result == -1 || result == 2) {
System.out.println("你输了");
loose++;
} else if (result == 0) {
System.out.println("本局平");
tie++;
} else {
System.out.println("你赢了");
win++;
}
System.out.println("你的战绩:赢 " + win + " 次、输 " + loose
+ " 次、平局 " + tie + " 次。");
} catch (Exception e) { //所有的异常只是过滤掉错误的输入
System.out.println("输入错误");
}
}
}
}
更多追问追答
追问
不用每次输入选项以后都显示战绩,只在玩家选择停止时候显示。怎么改?谢谢
追答
把打印战绩的那句println移到循环外面就可以了
展开全部
看看是否符合要求~~
import java.util.*;
public class RPS{
public static void main (String[] args){
int user, computer, loose, win, tie;
loose = 0;
win = 0;
tie = 0;
Scanner Scan = new Scanner(System.in);
Random genreator = new Random();
while (true){
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
computer = genreator.nextInt(3)+1;
System.out.println("你的选择: " + user + ";电脑的选择:" + computer);
if (user == 0) {
System.out.println("您确定要退出游戏吗?(1=是 2=否)");
user = Scan.nextInt();
if (user == 1) {
break;
}
}
if (user == 3 && computer == 1){
System.out.println("你输了");
loose++;
}
if (user - computer > 0){
System.out.println("你赢了");
win++;
}
if (user - computer < 0){
System.out.println("你输了");
loose++;
}
if (user == computer){
System.out.println("本局平");
tie++;
}
}
System.out.println("你的战绩:赢 " + win + " 次、输 "
+ loose + " 次、平局 " + tie + " 次。");
}
}
import java.util.*;
public class RPS{
public static void main (String[] args){
int user, computer, loose, win, tie;
loose = 0;
win = 0;
tie = 0;
Scanner Scan = new Scanner(System.in);
Random genreator = new Random();
while (true){
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
computer = genreator.nextInt(3)+1;
System.out.println("你的选择: " + user + ";电脑的选择:" + computer);
if (user == 0) {
System.out.println("您确定要退出游戏吗?(1=是 2=否)");
user = Scan.nextInt();
if (user == 1) {
break;
}
}
if (user == 3 && computer == 1){
System.out.println("你输了");
loose++;
}
if (user - computer > 0){
System.out.println("你赢了");
win++;
}
if (user - computer < 0){
System.out.println("你输了");
loose++;
}
if (user == computer){
System.out.println("本局平");
tie++;
}
}
System.out.println("你的战绩:赢 " + win + " 次、输 "
+ loose + " 次、平局 " + tie + " 次。");
}
}
追问
请选择 石头=1、布=2、剪刀=3;选择0停止游戏:0
你的选择: 0;电脑的选择:3
您确定要退出游戏吗?(1=是 2=否)
2
你输了
请选择 石头=1、布=2、剪刀=3;选择0停止游戏:
**********这里有点小问题
当我选择“否”的时候直接把“2”当选项用了,可以改一下吗?谢谢
追答
加一句continue~
import java.util.*;
public class RPS{
public static void main (String[] args){
int user, computer, loose, win, tie;
loose = 0;
win = 0;
tie = 0;
Scanner Scan = new Scanner(System.in);
Random genreator = new Random();
while (true){
System.out.print("请选择 石头=1、布=2、剪刀=3;选择0停止游戏:");
user = Scan.nextInt();
computer = genreator.nextInt(3)+1;
System.out.println("你的选择: " + user + ";电脑的选择:" + computer);
if (user == 0) {
System.out.println("您确定要退出游戏吗?(1=是 2=否)");
user = Scan.nextInt();
if (user == 1) {
break;
} else {
continue;
}
}
if (user == 3 && computer == 1){
System.out.println("你输了");
loose++;
}
if (user - computer > 0){
System.out.println("你赢了");
win++;
}
if (user - computer < 0){
System.out.println("你输了");
loose++;
}
if (user == computer){
System.out.println("本局平");
tie++;
}
}
System.out.println("你的战绩:赢 " + win + " 次、输 "
+ loose + " 次、平局 " + tie + " 次。");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我有整个这个游戏的源码...要么?,,可能跟你的一样的.......
追问
我是为了期末考试复习用,重在理解、不是来求成果的~
谢谢啦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询