【java小游戏】老虎杠子鸡游戏

老虎棒子鸡游戏规则:
在这里插入图片描述

一个克制一个
  老虎吃鸡
  鸡吃虫子
  虫子蛀杠子
  杠子打老虎
  形成一个完美循环
  无克制类别的直接地平不分胜负
  比如
  老虎和虫子
  杠子和鸡
  都是平局
  继续出直到胜负位置
  值得一提的是
  这是个俩人之间对抗的游戏
  超出就无法定出胜负了
  
GameRule类

import java.util.Scanner;

public class GameRule {
	private int count;
	private Player player;
	private Robot robot;
	
	public Player getPerson() {
		return player;
	}
	public void setPerson(Player person) {
		this.player=person;
	}
	
	public Robot getRobot() {
		return robot;
	}
	public void setRobot(Robot robot) {
		this.robot=robot;
	}
	
	public int  getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count=count;
	}
	
	public void initial() {
		player=new Player();
		robot=new Robot();
	}

	public void startGame(){
		int role=0;
		System.out.println("────────────────猜拳───────────────────");
		System.out.println("   1.老虎    2.杠子   3.鸡     4.虫子    \n");
		System.out.println("   请选择角色:1.阿迪力  2.黄飞鸿  3.马致明");		
		System.out.println("──────────────────────────────────────");
		
		Scanner reader=new Scanner(System.in);
		role=reader.nextInt();
		boolean rightRole=true;
		switch(role) {
		case 1:
			System.out.println("您选择了阿迪力这个角色对战");
			player.setName("阿迪力");
			break;
		case 2:
			System.out.println("您选择了黄飞鸿这个角色对战");
			player.setName("黄飞鸿");
			break;
		case 3:
			System.out.println("您选择了马致明这个角色对战");
			player.setName("马致明");
			break;
		default:
			System.out.println("输入错误");
			rightRole=false;
			break;
		}
		
		if(rightRole) {
			String flag="y";
			do {
				int num1=0;//用户出拳值
				int num2=0;//机器人出拳值
				num1=player.showFist();
				num2=robot.showFist();
				
				//用户获胜
				if((num1==1&&num2==3)||(num1==2&&num2==1)||(num1==3&&num2==4)||(num1==4&&num2==4)) {
					System.out.println("恭喜,您赢了!!");	
					player.setScore(player.getScore()+1);
					System.out.print("本局对战结果:");	
					System.out.print(player.getName() +"1分,");	
					System.out.println("机器人0分!");	
				}
				//平局
				else if((num1==num2)||(num1==1&&num2==4)||(num1==4&&num2==1)||(num1==2&&num2==3)||(num1==3&&num2==2)) {
					System.out.println("平局,加油!");	
				}
				//机器人获胜
				else {
					System.out.println("哈哈,您输了!");	
					System.out.print("本局对战结果:");	
					System.out.print(player.getName() +"0分,");	
					System.out.println("机器人1分!");
					robot.setScore(robot.getScore()+1);
				}
				//增加游戏次数
				count++;
				System.out.println("输入y继续,n退出");	
				flag=reader.next();
				while(!"n".equals(flag) && !"y".equals(flag)) {
					System.out.println("请重新输入");
					flag=reader.next();
				}
				
				if("n".equals(flag))
					System.out.println("───────────────谢谢使用─────────────────");
			
			}while("y".equals(flag));

			
			//最终对战成绩
			System.out.println("\t"+player.getName()+"    vs    机器人");
			int win=player.getScore();
			int lost=robot.getScore();
			System.out.println("\t对战"+count+"局,"+"您胜了"+win+"局,输"+lost+"局,平"+(count-win-lost));		
			
			if(player.getScore()>robot.getScore()) {
				System.out.println("\t结果:您是战神,你赢了!");
			}
			else if(player.getScore()==robot.getScore()) {
				System.out.println("\t结果:不相上下哦!");
			}
			else {
				System.out.println("\t结果:您输得很惨啊!");
			}
		}
		else {
				System.out.println("输入有错,退出系统!");
		}
		System.out.println("──────────────────────────────────────");
	}
		
}

Player类

import java.util.Scanner;

public class Player {
	
	private String name="匿名";
	private int score;
	
	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 Player(String name,int score) {
		super();
		this.name=name;
		this.score=score;
	}
	public Player() {
		super();
	}
	
	public int showFist() {
		int temp=0;
		System.out.println("请出拳:(1.老虎,  2.杠子,  3.鸡,  4.虫子)");
		Scanner reader=new Scanner(System.in);
		temp=reader.nextInt();
		switch(temp) {
		case 1:
			System.out.println("您出的是老虎");
			break;
		case 2:
			System.out.println("您出的是杠子");
			break;
		case 3:
			System.out.println("您出的是鸡");
			break;
		case 4:
			System.out.println("您出的是虫子");
			break;
		default:
			System.out.println("输入错误");
			break;			
		}
		return temp;
	}

}

Robot类

import java.util.Scanner;

public class Robot {
	private int score;
	
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score=score;
	}	
	
	public int showFist() {
		int temp=(int)(Math.random()*4+1);
		switch(temp) {
		case 1:
			System.out.println("机器出的是老虎");
			break;
		case 2:
			System.out.println("机器出的是杠子");
			break;
		case 3:
			System.out.println("机器出的是鸡");
			break;
		case 4:
			System.out.println("机器出的是虫子");
			break;
		default:
			break;			
		}
		return temp;
	}
}

StartGame类(测试类)

public class StartGame {

	public static void main(String[] args) {
		GameRule game=new GameRule();
		// 初始化
		game.initial();
		game.startGame();
	}

}

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汇潮学堂

你的鼓励才是我的最大收获

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值