石头、剪子、布游戏系统

package cn.xtgj.model;

public class Person implements Comparable<Person>{
    public int num1=0;
    public int num2=0;
    public int num3=0;
    public String name1;
    public String name2;
    public String name3;
    //无参构造方法
    public Person(){
        
    }
    public Person(int num1, int num2, int num3, String name1, String name2,String name3) {
        super();
        this.num1 = num1;
        this.num2 = num2;
        this.num3 = num3;
        this.name1 = name1;
        this.name2 = name2;
        this.name3 = name3;
    }
    public int compareTo(Person o) {
        return this.num1-o.num1;
    }
    
}


package cn.xtgj.dao;

import java.util.Scanner;

/**
 * 项目名称:
    石头剪子布游戏系统
    1、规则同日常游戏,石头赢剪子,剪子布赢,布赢石头
    2、支持二人、三人、四人玩(可选做一种)
    3、能设定局次、奖分规则(如几次为一局)
    4、系统统计得分、排名
    5、(选做:支持人与电脑玩)
 *
 */
public class Dao {
    //Person p=new Person();
    Scanner sc=new Scanner(System.in);
    public int num1;//马云输入的
    public int num2;//俞敏洪输入的
    public int num3;//雷军输入的
    
    public void oneGame(){
        System.out.println("马云:");
        System.out.println("请输入:(1)剪刀  (2)石头  (3)布");
        num1=sc.nextInt();
        switch(num1){
            case 1:
                System.out.println("马云:剪刀");
                break;
            case 2:
                System.out.println("马云:石头");
                break;
            case 3:
                System.out.println("马云:布");
                break;
            default:
                System.out.println("你输入有误,请重新输入!");
        }
    }
    
    public void twoGame(){
        System.out.println("俞敏洪:");
        System.out.println("请输入:(1)剪刀  (2)石头  (3)布");
        num2=sc.nextInt();
        switch(num2){
            case 1:
                System.out.println("俞敏洪:剪刀");
                break;
            case 2:
                System.out.println("俞敏洪:石头");
                break;
            case 3:
                System.out.println("俞敏洪:布");
                break;
            default:
                System.out.println("你输入有误,请重新输入!");
        }
    }
    public void threeGame(){
        System.out.println("雷军:");
        System.out.println("请输入:(1)剪刀  (2)石头  (3)布");
        num3=sc.nextInt();
        switch(num3){
            case 1:
                System.out.println("雷军:剪刀");
                break;
            case 2:
                System.out.println("雷军:石头");
                break;
            case 3:
                System.out.println("雷军:布");
                break;
            default:
                System.out.println("你输入有误,请重新输入!");
        }
    }
    
    /*//电脑
    public void computer(){
        System.out.println("电脑");
        int num=(int)(Math.random()*3)+1;
        switch(num){
        case 1:
            System.out.println("电脑:剪刀");
            break;
        case 2:
            System.out.println("电脑:石头");
            break;
        case 3:
            System.out.println("电脑:布");
            break;
        }
    }*/
    
    public void score(){
        //奖分
    }
}

package cn.xtgj.daomain;

import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

import cn.xtgj.dao.Dao;
import cn.xtgj.model.Person;
/**
 *
 * 项目名称:
    石头剪子布游戏系统
    1、规则同日常游戏,石头赢剪子,剪子布赢,布赢石头
    2、支持二人、三人(可选做一种)
    3、能设定局次、奖分规则(如几次为一局)
    4、系统统计得分
    5、(选做:支持人与电脑玩)
 *
 *
 */
public class GameMain {
    static Person p=new Person();
    static Dao dao=new Dao();
    static Scanner sc=new Scanner(System.in);
    static int options;
    
    //创建集合
    static TreeMap<String,Integer> map=new TreeMap<String,Integer>();
    public static void main(String[] args) {
        System.out.println("***猜拳游戏***");
        while(true){
            System.out.println("请输入玩法:(A)二人游戏 (B)三人游戏   (C)查看得分和排名 (D)退出系统 ");
            String option=sc.next();
            if("a".equalsIgnoreCase(option)){
                //二人游戏
                p.num1=0;//将分数清空
                p.num2=0;//将分数清空
                System.out.println("请设定局数:");
                //只有输入数字才生效
                if(sc.hasNextInt()){
                    options=sc.nextInt();
                }
                for(int count=0;count<options;count++){
                    System.out.println("玩家一,请输入:");
                    dao.oneGame();//玩家一
                    System.out.println();
                    System.out.println("玩家二,请输入:");
                    dao.twoGame();//玩家二
                    System.out.println();
                    if((dao.num1==1 && dao.num2==3) || (dao.num1==2 && dao.num2==1) || (dao.num1==3 && dao.num2==2)){
                        System.out.println("玩家一获胜(马云胜!)");
                        p.num1++;
                    }
                    else if((dao.num2==1 && dao.num1==3) || (dao.num2==2 && dao.num1==1) || (dao.num2==3 && dao.num1==2)){
                        System.out.println("玩家二获胜(俞敏洪胜!)");
                        p.num2++;
                    }
                    else{
                        System.out.println("平分秋色...");
                    }
                }
                map.clear();//清空
                map.put("马云",p.num1);
                map.put("俞敏洪",p.num2);
            }
            
            else if("b".equalsIgnoreCase(option)){
                //三人游戏
                //清空之前的计分
                p.num1=0;
                p.num2=0;
                p.num3=0;
                System.out.println("请设定局数:");
                //只有输入数字才生效
                if(sc.hasNextInt()){
                    options=sc.nextInt();
                }
                for(int count=0;count<options;count++){
                    System.out.println("玩家一,请输入:");
                    dao.oneGame();
                    System.out.println("玩家二,请输入:");
                    dao.twoGame();
                    System.out.println("玩家三,请输入:");
                    dao.threeGame();
                    if((dao.num1==1 && dao.num2==3 && dao.num3==3) || (dao.num1==2 && dao.num2==1 && dao.num3==1) || (dao.num1==3 && dao.num2==2 && dao.num2==2)){
                        System.out.println("玩家一获胜,(马云胜!)");
                        p.num1++;
                    }
                    else if((dao.num2==1 && dao.num1==3 && dao.num3==3) || (dao.num2==2 && dao.num1==1 && dao.num3==1) || (dao.num2==3 && dao.num1==2 && dao.num2==2)){
                        System.out.println("玩家二获胜,(俞敏洪胜!)");
                        p.num2++;
                    }
                    else if((dao.num3==1 && dao.num2==3 && dao.num1==3) || (dao.num3==2 && dao.num2==1 && dao.num1==1) || (dao.num3==3 && dao.num2==2 && dao.num1==2)){
                        System.out.println("玩家三获胜,(雷军胜!)");
                        p.num3++;
                    }
                    else if((dao.num1==1 && dao.num2==1 && dao.num3==3) || (dao.num1==2 && dao.num2==2 && dao.num3==1) || (dao.num1==3 && dao.num2==3 && dao.num3==2)){
                        System.out.println("玩家一和玩家二战胜了玩家三,(马云和俞敏洪获胜!)");
                        p.num1++;
                        p.num2++;
                    }
                    else if((dao.num1==1 && dao.num3==1 && dao.num2==3) || (dao.num1==2 && dao.num3==2 && dao.num2==1) || (dao.num1==3 && dao.num3==3 && dao.num2==2)){
                        System.out.println("玩家一和玩家三战胜了玩家二,(马云和雷军获胜!)");
                        p.num1++;
                        p.num3++;
                    }
                    else if((dao.num2==1 && dao.num3==1 && dao.num1==3) || (dao.num2==2 && dao.num3==2 && dao.num1==1) || (dao.num2==3 && dao.num3==3 && dao.num1==2)){
                        System.out.println("玩家二和玩家三战胜了玩家一,(俞敏洪和雷军获胜!)");
                        p.num2++;
                        p.num3++;
                    }
                    else if((dao.num1==1 && dao.num2==2 && dao.num3==3) || (dao.num1==1 && dao.num2==3 && dao.num3==2) || (dao.num2==1 && dao.num1==2 && dao.num3==3) || (dao.num2==1 && dao.num1==3 && dao.num3==2) || (dao.num3==1 && dao.num1==3 && dao.num2==2) || (dao.num3==1 && dao.num1==2 && dao.num2==3) || (dao.num1==1 && dao.num2==1 && dao.num3==1) || (dao.num1==2 && dao.num2==2 && dao.num3==2) || (dao.num1==3 && dao.num2==3 && dao.num3==3)){
                        System.out.println("平分秋色...");
                    }
                }
                map.clear();//先清空之前的
                map.put("马云",p.num1);
                map.put("俞敏洪",p.num2);
                map.put("雷军",p.num3);
            }
            
            else if("c".equalsIgnoreCase(option)){
                //查看排名奖分系统
                Set<Entry<String,Integer>> set=map.entrySet();
                Iterator<Entry<String,Integer>> it=set.iterator();
                System.out.println("姓名 得分");
                while(it.hasNext()){
                    System.out.println(it.next());                    
                }
            }
            
            else if("d".equalsIgnoreCase(option)){
                //退出系统
                System.out.println("已退出...");
                System.exit(0);
            }
            else{
                System.out.println("你输入的有误,请重新输入!");
            }
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值