import java.util.Scanner;
public class Player {
//属性 name score
private String name;
private int score=0;
public Player() {
super();
}
public Player(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
//获得名字
public void setName(String name) {
this.name = name;
}
//获得分数
public int getScore() {
return score;
}
//设置分数
public void setScore(int score) {
this.score = score;
}
//返回玩家出拳
public int showFist(){
Scanner sc=new Scanner(System.in);//new一个输入
int act=-1;
//正确输入1 2 3 ,只有在这个范围内才不会重新提醒输入
do{
System.out.println("剪刀石头布分别代表这1、2、3....\n请出拳");
act=sc.nextInt();
}while(act<1||act>3);
//对应输出玩家的出拳方式
switch(act){
case 1:System.out.println("你的出拳是剪刀....");break;
case 2:System.out.println("你的出拳是石头....");break;
case 3:System.out.println("你的出拳是布....");break;
}
return act;//返回出拳的值
}
}
import java.util.*;
public class Machine {
private String name;
private int score=0;
public Machine(String name) {
super();
this.name = name;
}
public Machine() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
//类似于玩家的那个函数。。只是一个是随机数 一个是用户输入
public int showFist() {
Random r=new Random();//new 一个随机数
int act=r.nextInt(2)+1;//产生随机数 nextInt(2)-> 产生 0 1 2 所以必须加上+1 -> 1 2 3
switch(act){
case 1:System.out.println(name+"出的是剪刀....");break;
case 2:System.out.println(name+"出的是石头....");break;
case 3:System.out.println(name+"出的是布....");break;
}
return act;
}
}
import java.util.Scanner;
public class Referee {
Player player;
Machine machine;
private int count;
public int getCount() {
return count;
}
public Referee(){
player=new Player();
machine=new Machine();
}
private void calcResult(int comp1,int comp2){
//玩家输的情况
if((comp1==1&&comp2==2)||
(comp1==2&&comp2==3)||
(comp1==3&&comp2==1)){
//加分
machine.setScore(machine.getScore()+1);
//输出获胜信息
System.out.println(machine.getName()+"获胜....");
}else if(comp1==comp2){//平局的时候
System.out.println(player.getName()+"和"+machine.getName()+"平手");
}else{
//玩家赢的情况
player.setScore(player.getScore()+1);
System.out.println(player.getName()+"获胜....");
}
count++;//记录进行的盘数
}
private void showResult(){
//输出对应的信息
System.out.println(player.getName()+"VS"+machine.getName());
System.out.println("双方的对战结果是:=========================");
System.out.println("总共进行的场数:"+getCount());
System.out.println("双方比分 : =========================");
System.out.println(player.getScore()+"VS"+machine.getScore());
if(player.getScore()>machine.getScore()){
System.out.println(player.getName()+"获胜...");
}else if(player.getScore()==machine.getScore()){
System.out.println("双方平局");
}else{
System.out.println(machine.getName()+"获胜...");
}
}
public void startGame(){
//输入用户名
Scanner sc=new Scanner(System.in);
System.out.println("请输入您的昵称");
String name=sc.nextLine();
//设置玩家昵称
player.setName(name);
System.out.println("您的昵称是:"+player.getName());
System.out.println("你的对手有1、比尔盖茨 2、乔布斯 3、马云 ...请选择相应的序号");
//选择对应的对手
int choice=sc.nextInt();
switch(choice){
case 1:machine.setName("比尔盖茨");break;
case 2:machine.setName("乔布斯");break;
case 3:machine.setName("马云");break;
}
System.out.println();
String isYes="yes";
while(isYes.equalsIgnoreCase("yes")){//忽略大小写的字符串比较
//玩家出拳
int comp1=player.showFist();
//机器出拳
int comp2=machine.showFist();
//计算结果
calcResult(comp1, comp2);
System.out.println("是否继续游戏/YES NO");
isYes=sc.next();
}
showResult();//输出结果情况
}
}
//mora项目的主函数
public class StartGame {
public static void main(String[] args) {
Referee re=new Referee();
re.startGame();//执行游戏
}
}