Java人机猜拳大战


[code]
import java.util.Scanner;

/**
 * 人机猜拳大战——玩家类
 * 
 * @author QCD
 *
 */
public class Player {
	Scanner input = new Scanner(System.in);
	String playerName = "";// 玩家姓名
	String result = "";// 出拳结果

	public String getResult() {
		return result;
	}

	public String getPlayerName() {
		return playerName;
	}

	public void setPlayerName(String playerName) {
		this.playerName = playerName;
	}

	/**
	 * 输入玩家姓名
	 * 
	 * @return
	 */
	public String player() {
		playerName = input.next();
		return playerName;

	}

	/**
	 * 判断出拳结果
	 * 
	 * @return
	 */
	public String chuQuan2() {
		int chuquan = input.nextInt();
		switch (chuquan) {
		case 1:
			result = "剪刀";
			break;
		case 2:
			result = "石头";
			break;
		case 3:
			result = "布";
			break;
		default:
			break;
		}
		return result;

	}

}



import java.util.Scanner;

/**
 * 人机猜拳大战——电脑类
 * 
 * @author QCD
 *
 */
public class Computer {
	Scanner input = new Scanner(System.in);
	String dName = "";// 电脑名字
	String result = null;// 随机出拳结果

	public String getResult() {
		return result;
	}

	public void setResult(String result) {
		this.result = result;
	}

	public String getdName() {
		return dName;
	}

	public void setdName(String dName) {
		this.dName = dName;
	}

	/**
	 * 产生电脑名字结果
	 * 
	 * @return
	 */
	public String diannao() {
		int num1 = input.nextInt();
		switch (num1) {
		case 1:
			dName = "刘备";
			break;
		case 2:
			dName = "孙权";
			break;
		case 3:
			dName = "曹操";
			break;
		default:
			break;
		}
		return dName;

	}

	/**
	 * 随机产生电脑出拳结果
	 * 
	 * @return
	 */
	public String chuQuan1() {
		int random = (int) (Math.random() * 3 + 1);
		switch (random) {
		case 1:
			result = "剪刀";
			break;
		case 2:
			result = "石头";
			break;
		case 3:
			result = "布";
			break;
		default:
			break;
		}
		return result;

	}

}



/**
 * 人机猜拳大战——游戏类
 * 
 * @author QCD
 *
 */
public class Game {
	int count1 = 0;// 玩家积分
	int count2 = 0;// 电脑积分
	int time = 0;// 对战次数

	/**
	 * 对战方法
	 * 
	 * @param computer
	 * @param player
	 */
	public void pK(Computer computer, Player player) {
		/* 将玩家和电脑出拳结果进行判断 */
		if (player.getResult().equals(computer.getResult())) {
			System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧!");

		} else if ((player.getResult() == "剪刀" && computer.getResult() == "布")
				|| (player.getResult() == "石头" && computer.getResult() == "剪刀")
				|| (player.getResult() == "布" && computer.getResult() == "石头")) {
			System.out.println("结果:赢了电脑,哈哈,这才叫实力!");
			count1++;

		} else {
			System.out.println("结果:输给电脑,哎,今天运气不好!");
			count2++;
		}
	}

	/**
	 * 输出战绩的方法
	 * 
	 * @param computer
	 * @param player
	 */
	public void showResult(Computer computer, Player player) {
		/*每一局对战结束输出对战结果*/
		System.out.println("++++++++++++++++++《一局完》++++++++++++++++++");
		System.out.println("------------------------------------------");
		System.out.println(computer.dName + "  VS  " + player.getPlayerName());
		System.out.println("对战次数:" + time);
		System.out.println("\n姓名\t得分");
		System.out.println(player.getPlayerName() + "\t" + count1);
		System.out.println(computer.dName + "\t" + count2);
		if (count1 == count2) {
			System.out.println("结果:打成平手,下次再和你一分高下!");
		} else if (count1 > count2) {
			System.out.println("结果:玩家赢了,这才叫实力,人类是不可战胜的!");
		} else {
			System.out.println("结果:电脑赢了,不要灰心,回去好好练习再来吧!");
		}
		System.out.println("------------------------------------------");
	}

}



import java.util.Scanner;

public class TestGame {
	/**
	 * 人机猜拳大战——测试类
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);// 键盘接收类
		String answer;// 回答
		Game game = new Game();// 创建游戏对象
		/* 主菜单 */
		System.out.println("---------------欢迎进入游戏世界---------------\n");
		System.out.println("\n\t**********************");
		System.out.println("\t******* 猜拳,开始  *******");
		System.out.println("\t**********************\n");
		System.out.println("出拳规则:1.剪刀 2.石头 3.布");
		/* 选择对方角色 */
		System.out.print("请选择对方角色(1:刘备 2.孙权 3.曹操):");
		Computer computer = new Computer();
		computer.diannao();
		/* 输入玩家姓名 */
		System.out.print("请输入你的姓名:");
		Player player = new Player();
		player.player();
		System.out.println(player.getPlayerName() + "  VS  " + computer.getdName() + "  对战");
		/* 对战开始 */
		System.out.print("\n要开始吗?(y/n):");
		answer = input.next();
		while (!"n".equalsIgnoreCase(answer)) {
			game.count1 = 0;// 玩家积分归零
			game.count2 = 0;// 电脑积分归零
			game.time = 0;// 对战次数归零
			do {
				System.out.print("\n请出拳:1.剪刀 2.石头 3.布(输入相应数字):");
				player.chuQuan2();
				System.out.println("你出拳:" + player.getResult());
				computer.chuQuan1();
				System.out.println(computer.getdName() + "出拳:" + computer.getResult());
				/* 将玩家和电脑出拳结果进行判断 */
				game.pK(computer, player);
				game.time++;
				System.out.print("\n是否开始下一轮(y/n):");
				answer = input.next();
			} while (!"n".equalsIgnoreCase(answer));
			/* 输出对战结果 */
			game.showResult(computer, player);
			System.out.print("\n要开始下一局吗?(y/n):");
			answer = input.next();
		}
		System.out.println("欢迎您下次光临!!!");
		input.close();
	}

}
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值