22、简化版本的类和对象人机猜拳



public class CaiQuan {
/*人机猜拳程序
 * 玩家类
 * 成员变量:名字、积分
 * 方法:出拳
 * 电脑类
 * 成员变量:名字、积分
 * 方法:出拳
 * 游戏类
 * 成员变量:玩家的对象、电脑的对象、对战次数
 * 方法:数据初始化、宣布游戏规则、计算比赛结果、宣布比赛结果
 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//创建游戏类的对象并实例化
		Game q=new Game();
		//调用游戏类的开始游戏的方法
		q.startGame();
		}
	}



	
	/**电脑类*/
public class Computer {
	
	/**电脑的名字*/
	public String name;
	
	/**电脑的积分*/
	public int score;
	/**
	 * 电脑的出拳
	 * @return 出拳结果:1、剪刀2、石头3、布
	 */
	public int showFist(){
		//产生一个1-3之间的随机数
		int show=(int)(Math.random()*3)+1;
		//输出出拳的结果并返回
		switch (show) {
		case 1:
			System.out.println(name+"的出拳:剪刀");
			break;
		case 2:
			System.out.println(name+"的出拳:石头");
			break;
		case 3:
			System.out.println(name+"的出拳:布");
			break;
		}
		return show;
	}
}



import java.util.Scanner;

/**游戏类*/
public class Game {
	
	/**玩家的对象*/
	public Person p;
	
	/**电脑的对象*/
	public Computer c;
	
	/**对战次数*/
	public int count;
	
	/**数据初始化*/
	public void initial() {
		p=new Person();
		c=new Computer();
		count=0;
	}
	
	/**开始游戏*/
	public void startGame() {
		System.out.println("欢迎进入游戏世界");
		System.out.println("人机猜拳游戏开始");
		//告知游戏规则
		System.out.println("出拳规则:1、剪刀2、石头3、布");
		//声明一个变量存储是否退出系统
		String exit="n";
		Scanner input =new Scanner(System.in);
		do {
			//调用数据初始化方法
			initial();
			//选择对手的角色
			System.out.println("请选择对手的角色(1、刘备2、孙权3、曹操):");
			//声明一个变量存储对手的角色
			int role=input.nextInt();
			//给电脑添加名字
			switch (role) {
			case 1:
				c.name="刘备";
				break;
			case 2:
				c.name="孙权";
				break;
			case 3:
				c.name="曹操";
				break;
			}
		//提示输入玩家的名字
			System.out.println("请输入你的名字:");
			p.name=input.next();
			//输出对战人员的信息
			System.out.println(p.name+"VS"+c.name);
			//询问是否开始游戏
			System.out.println("要开始吗?(y/n)");
			String start = input.next();
			//开始每一局游戏
			//定义一个变量存储用户的出拳编号
			int pFist;
			//定义一个变量存储电脑的出拳编号
			int cFist;
			while (start.equals("y")) {
				//玩家出拳
				pFist=p.showFist();
				//电脑出拳
				cFist=c.showFist();
				//显示判决结果
				if ((pFist==1&&cFist==1)||(pFist==2&&cFist==2)||(pFist==3&&cFist==3)){
					System.out.println("结果:平局!");
				} else if((pFist==1&&cFist==3)||(pFist==2&&cFist==1)||(pFist==3&&cFist==2)){
					System.out.println("结果:玩家赢!");
				}
				else{
					System.out.println("结果:电脑赢");
					//电脑赢了积分加1
					c.score++;
				}
				//对战次数加1
				count++;
				//询问玩家是否开始下一轮游戏
				System.out.println("是否开始下一轮游戏?(y/n)");
				start=input.next();
			}
			//显示比赛结果
			showResult();
			//询问玩家是否开始下一局游戏
			System.out.println("要进行下一局游戏吗?()");
			exit=input.next();
		} while (true);
	}
	/**计算比赛结果
	 * @return 1、平局2、玩家赢3、电脑赢
	 */
	public int calcResult(){
		if (p.score==c.score) {
			return 1;
		}else if(p.score>c.score){
			return 2;
		}else{
			return 3;
		}
	}
/**显示比赛结果*/
	public void showResult(){
		//显示对战双方的名字
		System.out.println(p.name+"VS"+c.name);
		//显示对战此数
		System.out.println("对战次数:"+count);
		//显示双方最终的得分
		System.out.println("名字\t分数");
		System.out.println(p.name+"\t"+p.score);
		System.out.println(c.name+"\t"+c.score);
		//显示对战的结果
		//声明一个变量存储对战结果,对战结果通过调用计算对战结果的方法得到
		int result =caloResult();
		switch (result) {
		case 1:
			System.out.println("结果:平手");
			break;
		case 2:
			System.out.println("结果:玩家赢");
		case 3:
			System.out.println("结果:电脑赢");
			break;
	}
	}
	/**计算比赛结果
	 * @return1、平局2、玩家赢3、电脑赢*/
	public int caloResult(){
		
		return 0;
	}
	/**显示比赛结果*/
	public void showReault(){
	}
	}





import java.util.Scanner;

/**游戏类*/
public class Game {
	
	/**玩家的对象*/
	public Person p;
	
	/**电脑的对象*/
	public Computer c;
	
	/**对战次数*/
	public int count;
	
	/**数据初始化*/
	public void initial() {
		p=new Person();
		c=new Computer();
		count=0;
	}
	
	/**开始游戏*/
	public void startGame() {
		System.out.println("欢迎进入游戏世界");
		System.out.println("人机猜拳游戏开始");
		//告知游戏规则
		System.out.println("出拳规则:1、剪刀2、石头3、布");
		//声明一个变量存储是否退出系统
		String exit="n";
		Scanner input =new Scanner(System.in);
		do {
			//调用数据初始化方法
			initial();
			//选择对手的角色
			System.out.println("请选择对手的角色(1、刘备2、孙权3、曹操):");
			//声明一个变量存储对手的角色
			int role=input.nextInt();
			//给电脑添加名字
			switch (role) {
			case 1:
				c.name="刘备";
				break;
			case 2:
				c.name="孙权";
				break;
			case 3:
				c.name="曹操";
				break;
			}
		//提示输入玩家的名字
			System.out.println("请输入你的名字:");
			p.name=input.next();
			//输出对战人员的信息
			System.out.println(p.name+"VS"+c.name);
			//询问是否开始游戏
			System.out.println("要开始吗?(y/n)");
			String start = input.next();
			//开始每一局游戏
			//定义一个变量存储用户的出拳编号
			int pFist;
			//定义一个变量存储电脑的出拳编号
			int cFist;
			while (start.equals("y")) {
				//玩家出拳
				pFist=p.showFist();
				//电脑出拳
				cFist=c.showFist();
				//显示判决结果
				if ((pFist==1&&cFist==1)||(pFist==2&&cFist==2)||(pFist==3&&cFist==3)){
					System.out.println("结果:平局!");
				} else if((pFist==1&&cFist==3)||(pFist==2&&cFist==1)||(pFist==3&&cFist==2)){
					System.out.println("结果:玩家赢!");
				}
				else{
					System.out.println("结果:电脑赢");
					//电脑赢了积分加1
					c.score++;
				}
				//对战次数加1
				count++;
				//询问玩家是否开始下一轮游戏
				System.out.println("是否开始下一轮游戏?(y/n)");
				start=input.next();
			}
			//显示比赛结果
			showResult();
			//询问玩家是否开始下一局游戏
			System.out.println("要进行下一局游戏吗?()");
			exit=input.next();
		} while (true);
	}
	/**计算比赛结果
	 * @return 1、平局2、玩家赢3、电脑赢
	 */
	public int calcResult(){
		if (p.score==c.score) {
			return 1;
		}else if(p.score>c.score){
			return 2;
		}else{
			return 3;
		}
	}
/**显示比赛结果*/
	public void showResult(){
		//显示对战双方的名字
		System.out.println(p.name+"VS"+c.name);
		//显示对战此数
		System.out.println("对战次数:"+count);
		//显示双方最终的得分
		System.out.println("名字\t分数");
		System.out.println(p.name+"\t"+p.score);
		System.out.println(c.name+"\t"+c.score);
		//显示对战的结果
		//声明一个变量存储对战结果,对战结果通过调用计算对战结果的方法得到
		int result =caloResult();
		switch (result) {
		case 1:
			System.out.println("结果:平手");
			break;
		case 2:
			System.out.println("结果:玩家赢");
		case 3:
			System.out.println("结果:电脑赢");
			break;
	}
	}
	/**计算比赛结果
	 * @return1、平局2、玩家赢3、电脑赢*/
	public int caloResult(){
		
		return 0;
	}
	/**显示比赛结果*/
	public void showReault(){
	}
	}




猜你喜欢

转载自blog.csdn.net/qq_44739706/article/details/90055198