在百度知道上找到了网友的java石头剪刀布游戏的代码,但是理解不来,希望大神能帮我把程序每句话都注释
importjava.util.Random;importjava.util.Scanner;publicclassFingerGuessingGame{privates...
import java.util.Random;
import java.util.Scanner;
public class FingerGuessingGame {
private static Scanner sc;
private static Random rad;
private static final String[] FINGERS = {"剪刀", "石头", "布"};
private static int win = 0, loose = 0, draw = 0;
public static void main(String[] args) {
sc = new Scanner(System.in);
rad = new Random();
while(true) {
System.out.println("~~~~~~~~~~~~剪刀石头布游戏,输入E可以退出~~~~~~~~~~~");
System.out.println("请选择你要出什么?Z——剪刀,X——石头,C——布");
String command = sc.nextLine();
int playerFinger = getValue(command);
if(playerFinger == -1) {
break;
} else if(playerFinger == 3) {
System.out.println("输入错误,请参考说明!");
continue;
}
System.out.println("你出的是" + FINGERS[playerFinger]);
int cpuFinger = rad.nextInt(3);
System.out.println("计算机出的是" + FINGERS[cpuFinger]);
int result = playerFinger - cpuFinger;
if(0 == result) {
System.out.println("平局!");
draw ++;
} else if(-1 == result || 2 == result) {
System.out.println("你输了!");
loose ++;
}
else {
System.out.println("你赢了!");
win ++;
}
}
System.out.println("游戏结束!\r\n游戏统计次数");
System.out.println(String.format("赢:%d\r\n输:%d\r\n平局:%d", win, loose, draw));
}
private static int getValue(String command) {
if(command.equalsIgnoreCase("E")) {
return -1;
}
if(command.equalsIgnoreCase("Z")) {
return 0;
}
if(command.equalsIgnoreCase("X")) {
return 1;
}
if(command.equalsIgnoreCase("C")) {
return 2;
}
return 3;
}
} 展开
import java.util.Scanner;
public class FingerGuessingGame {
private static Scanner sc;
private static Random rad;
private static final String[] FINGERS = {"剪刀", "石头", "布"};
private static int win = 0, loose = 0, draw = 0;
public static void main(String[] args) {
sc = new Scanner(System.in);
rad = new Random();
while(true) {
System.out.println("~~~~~~~~~~~~剪刀石头布游戏,输入E可以退出~~~~~~~~~~~");
System.out.println("请选择你要出什么?Z——剪刀,X——石头,C——布");
String command = sc.nextLine();
int playerFinger = getValue(command);
if(playerFinger == -1) {
break;
} else if(playerFinger == 3) {
System.out.println("输入错误,请参考说明!");
continue;
}
System.out.println("你出的是" + FINGERS[playerFinger]);
int cpuFinger = rad.nextInt(3);
System.out.println("计算机出的是" + FINGERS[cpuFinger]);
int result = playerFinger - cpuFinger;
if(0 == result) {
System.out.println("平局!");
draw ++;
} else if(-1 == result || 2 == result) {
System.out.println("你输了!");
loose ++;
}
else {
System.out.println("你赢了!");
win ++;
}
}
System.out.println("游戏结束!\r\n游戏统计次数");
System.out.println(String.format("赢:%d\r\n输:%d\r\n平局:%d", win, loose, draw));
}
private static int getValue(String command) {
if(command.equalsIgnoreCase("E")) {
return -1;
}
if(command.equalsIgnoreCase("Z")) {
return 0;
}
if(command.equalsIgnoreCase("X")) {
return 1;
}
if(command.equalsIgnoreCase("C")) {
return 2;
}
return 3;
}
} 展开
1个回答
2016-12-26
展开全部
public class Test {
private static Scanner sc;
private static Random rad;
private static final String[] FINGERS = { "剪刀", "石头", "布" };
private static int win = 0, loose = 0, draw = 0;
public static void main(String[] args) {
// 捕获用户输入类
sc = new Scanner(System.in);
//产生随机数的类
rad = new Random();
//一进来就让用户输入开始游戏,直到输入E, 退出游戏。
while (true) {
System.out.println("~~~~~~~~~~~~剪刀石头布游戏,输入E可以退出~~~~~~~~~~~");
System.out.println("请选择你要出什么?Z——剪刀,X——石头,C——布");
//获取用户输入的字符
String command = sc.nextLine();
//输入字符转换 手势没发比较大小 就把字符转换成数字比较大小
int playerFinger = getValue(command);
if (playerFinger == -1) {//用户输入的是E ==> -1 表示退出
break;
}
else if (playerFinger == 3) {//用户输入的是 E Z X C 之外的字符 ==> 3 表示输入的不是合法的,然后继续让用户重新输入
System.out.println("输入错误,请参考说明!");
continue;
}
//当用户输入 ZXC 中的字符时才会到这一步
//用户的输入转换成了 0,1,2
//finger[0]="剪刀" finger[1]="石头" finger[2]="布" 程序第一行定义好的
System.out.println("你出的是" + FINGERS[playerFinger]);
//生成随机整数 3以内的(1,2,3)
int cpuFinger = rad.nextInt(3);
//finger[0]="剪刀" finger[1]="石头" finger[2]="布" 程序第一行定义好的
System.out.println("计算机出的是" + FINGERS[cpuFinger]);
//比较两个数字,你可以理解 0 就是剪刀,1是石头 2 是布
int result = playerFinger - cpuFinger;
if (0 == result) {//结果等于零说明两个数字一样
System.out.println("平局!");
draw++;
}
else if (-1 == result || 2 == result) {// 0-1=-1,1-2=-1,2-0=2 表示你输的三种情况 ;0 就是剪刀,1是石头 2 是布
System.out.println("你输了!");
loose++;
}
else {//剩下的情况除了平局,输局 肯定就是你赢了
System.out.println("你赢了!");
win++;
}
}
System.out.println("游戏结束!\r\n游戏统计次数");
System.out.println(String.format("赢:%d\r\n输:%d\r\n平局:%d", win, loose, draw));
}
/**
* 用户输入字符进行转换
* 输入字符 E 就返回-1 作为后续判断,表示退出程序
* 输入字符 Z 返回 0 代表剪刀
* 输入字符 X 返回 1 代表石头
* 输入字符 C 返回 2 代表布
* 输入其他字符 返回3 ,表明输入的不是符合规则的手势(0,1,2)
*
* @param command
* @return
*/
private static int getValue(String command) {
if (command.equalsIgnoreCase("E")) {
return -1;
}
if (command.equalsIgnoreCase("Z")) {
return 0;
}
if (command.equalsIgnoreCase("X")) {
return 1;
}
if (command.equalsIgnoreCase("C")) {
return 2;
}
return 3;
}
}
private static Scanner sc;
private static Random rad;
private static final String[] FINGERS = { "剪刀", "石头", "布" };
private static int win = 0, loose = 0, draw = 0;
public static void main(String[] args) {
// 捕获用户输入类
sc = new Scanner(System.in);
//产生随机数的类
rad = new Random();
//一进来就让用户输入开始游戏,直到输入E, 退出游戏。
while (true) {
System.out.println("~~~~~~~~~~~~剪刀石头布游戏,输入E可以退出~~~~~~~~~~~");
System.out.println("请选择你要出什么?Z——剪刀,X——石头,C——布");
//获取用户输入的字符
String command = sc.nextLine();
//输入字符转换 手势没发比较大小 就把字符转换成数字比较大小
int playerFinger = getValue(command);
if (playerFinger == -1) {//用户输入的是E ==> -1 表示退出
break;
}
else if (playerFinger == 3) {//用户输入的是 E Z X C 之外的字符 ==> 3 表示输入的不是合法的,然后继续让用户重新输入
System.out.println("输入错误,请参考说明!");
continue;
}
//当用户输入 ZXC 中的字符时才会到这一步
//用户的输入转换成了 0,1,2
//finger[0]="剪刀" finger[1]="石头" finger[2]="布" 程序第一行定义好的
System.out.println("你出的是" + FINGERS[playerFinger]);
//生成随机整数 3以内的(1,2,3)
int cpuFinger = rad.nextInt(3);
//finger[0]="剪刀" finger[1]="石头" finger[2]="布" 程序第一行定义好的
System.out.println("计算机出的是" + FINGERS[cpuFinger]);
//比较两个数字,你可以理解 0 就是剪刀,1是石头 2 是布
int result = playerFinger - cpuFinger;
if (0 == result) {//结果等于零说明两个数字一样
System.out.println("平局!");
draw++;
}
else if (-1 == result || 2 == result) {// 0-1=-1,1-2=-1,2-0=2 表示你输的三种情况 ;0 就是剪刀,1是石头 2 是布
System.out.println("你输了!");
loose++;
}
else {//剩下的情况除了平局,输局 肯定就是你赢了
System.out.println("你赢了!");
win++;
}
}
System.out.println("游戏结束!\r\n游戏统计次数");
System.out.println(String.format("赢:%d\r\n输:%d\r\n平局:%d", win, loose, draw));
}
/**
* 用户输入字符进行转换
* 输入字符 E 就返回-1 作为后续判断,表示退出程序
* 输入字符 Z 返回 0 代表剪刀
* 输入字符 X 返回 1 代表石头
* 输入字符 C 返回 2 代表布
* 输入其他字符 返回3 ,表明输入的不是符合规则的手势(0,1,2)
*
* @param command
* @return
*/
private static int getValue(String command) {
if (command.equalsIgnoreCase("E")) {
return -1;
}
if (command.equalsIgnoreCase("Z")) {
return 0;
}
if (command.equalsIgnoreCase("X")) {
return 1;
}
if (command.equalsIgnoreCase("C")) {
return 2;
}
return 3;
}
}
追问
感谢!!!!
真的感谢!! 我一定好好学java
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询