剪刀石头布游戏

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();//执行游戏
    }

}

 

posted @ 2013-01-17 15:49  后飞IT  阅读(276)  评论(0编辑  收藏  举报