面向对象方法剪刀石头布小游戏

题目如下:

在这里插入图片描述

代码如下:

package FingerGame;

import java.util.Scanner;

public class FingerGame {//父类
	private int finger;

	FingerGame() {
		super();
	}

	int getFinger() {
		return finger;
	}

	void setFinger(int finger) {
		this.finger = finger;
	}
	
}
class Computer extends FingerGame{//继承父类
	public Computer() {
		super();
		
	}
	void random() {//电脑随机出拳并输出
			super.setFinger((int)(Math.random()*2+1));
			if(getFinger()==1)
				System.out.println("电脑选择了:剪刀");
			if(getFinger()==2) 
				System.out.println("电脑选择了:石头");
			if(getFinger()==3)
				System.out.println("电脑选择了:布");
		}
}
//人类
class Man  extends Computer{
	private int fingerm;

	Man() {
		super();
	}

	int getFingerm() {
		return fingerm;
	}

	void setFingerm(int fingerm) {
		this.fingerm = fingerm;
	}
	void input() {//人类选择出拳并输出
		System.out.println("输入你要出的拳");
		System.out.println("1:剪刀   2:石头   3:布");
		Scanner sc=new Scanner(System.in);
		fingerm=sc.nextInt();
		if(fingerm==1)
			System.out.println("你选择了:剪刀");
		if(fingerm==2) 
			System.out.println("你选择了:石头");
		if(fingerm==3)
			System.out.println("你选择了:布");
		
	}	
	
	
}
class Play extends Man{
	private int socrec;//电脑得分
	private int socrem;//人类得分
	private int count;//平局
	
	Play() {
		super();
	}

	void play() {
		for(int i=1;i<=100;i++) {					//游戏循环100次,直到决出胜负
			System.out.println("=================================");
			System.out.println("当前是第"+i+"回合");
			super.input();							//调用人类方法
			super.random();							//调用电脑方法
			if(super.getFinger()==1&super.getFingerm()==3||
					super.getFinger()==2&super.getFingerm()==1||
					super.getFinger()==3&super.getFingerm()==2) {
						socrec++;					//电脑赢加一分
						System.out.println("你输了!当前比分:"+socrec+"比"+socrem);
	}		else if(super.getFingerm()==1&super.getFinger()==3||
			super.getFingerm()==2&super.getFinger()==1||
			super.getFingerm()==3&super.getFinger()==2) {
						socrem++;					//人类赢加一分
						System.out.println("你赢了!当前比分:"+socrec+"比"+socrem);
	}else if(super.getFingerm()==super.getFinger()) {//平局
						count++;
						System.out.println("平局!当前比分:"+socrec+"比"+socrem);
						
	}
	
		  if(socrec>=3) {							//电脑胜利
			  System.out.println("最终电脑获得了胜利,比分为:"+socrec+"比"+socrem);
			  System.out.println("平局:"+count+"次");
			  return;
		  }
		  if(socrem>=3) {							//人胜利
			  System.out.println("最终你获得了胜利,比分为:"+socrec+"比"+socrem);
			  System.out.println("平局:"+count+"次");
			  return;
		  }
		  System.out.println("第"+i+"回合结束了");
	}
	}
}
//测试类
public class TextFingerGame {
	public static void main(String[] args) {
		Play a=new Play();
		a.play();
		
	}
}

=======================================================================

运行效果:

在这里插入图片描述
如果错误,欢迎批评指正!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值