一、要求:
1、人出拳:1.剪刀 2.石头 3.布。
输入后提示用户本次出的是什么拳,如果输入其他数字提示输入有误,请重新输入
2、计算机出拳:取1-3的随机数,输出本次计算机出的是什么拳
3、比较人与计算机谁剩谁负,并输出提示
4、比赛一局结束后提示“是否继续比赛”,用户选择继续比赛那就继续猜拳。用户选择不继续则退出比赛
二、涉及知识点:JAVA基础语法、面向对象
三、完整代码
package com.zgb.base;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
//定义人,用于出拳
class Person{
public int in(){
//输出提示信息
System.out.println("请出拳[1-石头;2-剪刀;3-布]");
Scanner sc = new Scanner(System.in);
//定义变量,接收用户输入
int num = sc.nextInt();
//判断用户输入
switch(num){
case 1:
System.out.println("你出的是:石头");
break;
case 2:
System.out.println("你出的是:剪刀");
break;
case 3:
System.out.println("你出的是:布");
break;
default:
System.out.println("输入有误");
num = -1;
break;
}
return num;
}
}
//定义计算机,用于出拳
class Computer{
private static List<Integer> random = new ArrayList<Integer>();
{
random.add(1);
random.add(2);
random.add(3);
}
public int in(){
//计算机默认取1-3的随机数
Collections.shuffle(random);
int num = random.get(0);
//判断计算机输入
switch(num){
case 1:
System.out.println("计算机出的是:石头");
break;
case 2:
System.out.println("计算机出的是:剪刀");
break;
case 3:
System.out.println("计算机出的是:布");
break;
}
return num;
}
}
class FingerPlay{
public static void main(String[] args){
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("***************开始猜拳游戏*****************");
System.out.println("");
System.out.println("");
//开始出拳
start("y");
}
//开始出拳
public static void start(String is){
//定义是否结束比赛的标志
Person p = new Person();
int p_num = -1;
Computer c = new Computer();
int c_num = -1;
while(is.equals("y")){
//获取人的出拳信息
p_num = p.in();
//如果人出拳有误,提示重新出拳
while(p_num==-1){
System.out.println("***************请重新出拳:[1-石头;2-剪刀;3-布]*****************");
System.out.println("");
System.out.println("");
p_num = p.in();
}
c_num = c.in();
is = compare(p_num,c_num);
}
}
//比赛结果
public static String compare(int p_num,int c_num){
//判断平局
if(p_num == c_num){
System.out.println("本次平局,继续努力!");
}
//判断人赢
if((p_num == 1 && c_num == 2)||(p_num == 2 && c_num == 3)||(p_num == 3 && c_num == 1)){
System.out.println("~_~恭喜你获胜了!");
}
//判断计算机赢
if((c_num == 1 && p_num == 2)||(c_num == 2 && p_num == 3)||(c_num == 3 && p_num == 1)){
System.out.println("很抱歉,你输了!");
}
System.out.println("是否继续比赛?y/n");
Scanner sc = new Scanner(System.in);
String is = sc.next();
if(is.equals("y")){
start(is);
}else{
System.out.println("比赛结束");
}
return is;
}
}
四、能力提升。
请在以上代码的基础上添加“退出比赛后,输出本轮比赛,总共比了几次,人胜了几次,计算机胜了几次,打平了几次”