石头、剪刀、布猜拳游戏

// 石头、剪刀、布猜拳游戏

import java.util.Scanner;

public class Guess {
	
	// 定义类的成员变量
	int c_Person;				// 机器人名字代号
	String c_PersonName = "";   // 机器人名字
	String m_PersonName;		// 玩家名字
	int m_PersonNum;			// 玩家选择的游戏数字选项
	int c_PersonNum = (int)(Math.random()*3+1);   // 取电脑游戏数字的随机数
	String m_list = "";			// 标记玩家的游戏选项
	String c_list = "";			// 标记电脑的游戏等式
	int fireNum = 0 ;   		// 记录对战次数
	int m_score = 0 ;			// 记录玩家胜利次数
	int c_score = 0 ;			// 记录电脑胜利次数
	
	
	// 开始界面
	public static void InterFace() {
		System.out.println("-------------- 欢 迎 进 入 游 戏 世 界 -------------");
		System.out.println("\n\t\t*****************");
		System.out.println("\t\t**  猜拳, 开始  **");
		System.out.println("\t\t*****************\n");
		System.out.println("------------------------------------------------\n");
	}
	
	// 机器人设定
	public void Select_C_Person() {

		Scanner input = new Scanner(System.in);

		 System.out.println("*** 出拳规则:1.剪刀 2.石头 3.布 ***\n");
		 
		 while(true){
			 System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操):");
			 if(input.hasNextInt()){
				 c_Person = input.nextInt();
				 if (c_Person==1 || c_Person==2 || c_Person==3){
					 break;
				 }else {
					 System.out.println("只能输入1,2,3三个数!\n");
				 }
			 } else {
				 input.next();
				 System.out.println("输入错误!\n");
			 }
		 }
		 
		 switch (c_Person) {
		 case 1:
			 c_PersonName = "刘备";
			 break;
		 case 2:
			 c_PersonName = "孙权";
			 break;
		 case 3:
			 c_PersonName = "曹操";
			 break;
		 default:
			 System.out.println("只需1-3选择对方角色。");
		 }		
		 
	}
	
	// 玩家设定
	public void Select_M_Person(){
		
		// 输入玩家
		 Scanner input = new Scanner(System.in);
		 System.out.print("请输入你的姓名:");
		 m_PersonName = input.next();    	
		 
		 System.out.println("\n" + m_PersonName + "  VS  " + c_PersonName + "  对战\n");
	}
	
	// 判断是否开始游戏
	public void Game(){

		Scanner input = new Scanner(System.in);
		System.out.print("现在开始游戏吗?(y/n)"); 
		String select = input.next();		
		 
		while(true){ 
			 
			 if (select.equals("y")){
				 Start();		// 开始游戏
				 fireNum++;
			 } else if (select.equals("n")) {
				 Result();		//游戏统计结果
				break;
				 
			 } else {
				 System.out.println("只能输入y或者n!!!!!");
			 }
			 
			 System.out.print("\n要再来一局吗?(y/n)"); 
			 select = input.next();
			 
		 }
	}
	
	// 游戏开始
	public void Start(){
		 Scanner input = new Scanner(System.in);
		 
		 while(true){
			 System.out.print("\n请出拳:1.剪刀 2.石头 3.布 (输入相应数字):");
			 if (input.hasNextInt()){
				 m_PersonNum = input.nextInt();
				 if (m_PersonNum==1 || m_PersonNum==2 || m_PersonNum==3){
					 break;
				 } else {
					 System.out.println("只能输入1,2,3三个数!\n");
				 }
			 } else {
				 input.next();
				 System.out.println("输入错误!\n");
			 }
			 
		 }
		 
 
		 // 玩家的选项
		 switch(m_PersonNum){
		 case 1:
			 m_list = "剪刀";
			 break;
		 case 2:
			 m_list = "石头";
		 	 break;
		 case 3:
			 m_list = "布";
			 break;
		 default:
			 System.out.println("只能输入1-3三个数字!!!");
		 }
		 // 电脑的选项
		 switch(c_PersonNum){
		 case 1:
			 c_list = "剪刀";
			 break;
		 case 2:
			 c_list = "石头";
		 	 break;
		 case 3:
			 c_list = "布";
			 break;
		 default:
			 System.out.println("只能输入1-3三个数字!!!");
		 }
		 
		 Result_case();
	}
	
	// 判断输入结果
	public void Result_case(){
		
		 if(m_PersonNum == c_PersonNum){
			 System.out.println("\n" + m_PersonName + "出拳: " + m_list);
			 System.out.println(c_PersonName + "出拳: " + c_list);
			 System.out.println("----------------------------------");
			 System.out.println("结果:-o- 和局,嘿嘿!");
			 System.out.println("----------------------------------");

		 } else if (m_PersonNum==1 && c_PersonNum==2 || m_PersonNum==2 && c_PersonNum==3 || m_PersonNum==3 && c_PersonNum==1){
			 System.out.println("\n" + m_PersonName + "出拳: " + m_list);
			 System.out.println(c_PersonName + "出拳: " + c_list);
			 System.out.println("----------------------------------");
			 System.out.println("结果: ⊙﹏⊙ 卖糕的,手气不会这么背吧!");
			 System.out.println("----------------------------------");
			 c_score++;
			 
		 } else if (m_PersonNum==1 && c_PersonNum==3 || m_PersonNum==2 && c_PersonNum==1 || m_PersonNum==3 && c_PersonNum==2) {
			 System.out.println("\n" + m_PersonName + "出拳: " + m_list);
			 System.out.println(c_PersonName + "出拳: " + c_list);
			 System.out.println("----------------------------------");
			 System.out.println("结果:(∩_∩) 恭喜,你赢了!");
			 System.out.println("----------------------------------");
			 m_score++;				
		 }
	}
	
	// 输出游戏统计结果
	public void Result(){

		 System.out.println("+++++++++++++++++++++++++++");
		 System.out.println(m_PersonName + "  VS  " + c_PersonName + "  对战");
		 System.out.println("+++++++++++++++++++++++++++\n");
		 System.out.println("对战次数:" + fireNum);
		 System.out.println("\n姓名:\t成绩:");
		 System.out.println(m_PersonName + "\t" + m_score);
		 System.out.println(c_PersonName + "\t" + c_score);
		 
		 if(m_score>c_score){
			 System.out.println("\n结果:恭喜恭喜!!!");
		 }else{
			 System.out.println("\n结果:再接再厉!!!");
		 }
		 
		 System.out.println("\n\n---------------- 游 戏 结 束 !!! ---------------");
	}
	

	// 主执行程序
	public static void main(String[] args){
		Guess g = new Guess();
		InterFace();
		g.Select_C_Person();	// 选机器人
		g.Select_M_Person();	// 玩家设定
		g.Game();		// 游戏流程
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值