欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java之面向对象小程序

程序员文章站 2022-03-24 20:01:58
...

有个比赛项目,两个选手一个裁判。比赛规则:选手出手指头,根据出的手指头个数来定输赢。规则:5赢4、4赢3、3赢2、2赢1、1赢5.其他算平局。使用面向对象来模拟出比赛:两个选手要定出输赢。

public class Contest{

    private int a;
    private int b;
    /**
      *定义一个比较大小的方法
      *与以往的常见的比较大小的三目运算
      *a>b?a:b不同的是,它返回的是字符串
      */
    public String max(int a,int b){
       if((a==1)&&(b==5)||(a==5)&&(b==1)){      return a>b?"b":"a";
}
        return a>b?"a":"b";
    }
    /**
      *仔细观察比赛规则可以发现
      *除开平局以外的几对数字相差为1或者4
      *相差为1时数值大的赢,相差为4时数值小的赢
      */
    public boolean One(int a,int b){
        int c=a-b;
        if(c==1||-c==1||c==4||-c==4){
            return true;
        }
        return false;
    }
    /**
      *最大程度地模拟比赛规则
      */
    public void rule(){
        //a和b都取区间[1,5]里的整数
        a=(int)(Math.random()*5+1);
        b=(int)(Math.random()*5+1);
        /*如果One(a,b)方法为真,就代表
          非平局,再用max(a,b)方法得出
          获胜者*/
        if(One(a,b)){
            System.out.println("选手a出"+a+",选手b出"+b+"\t选手"+max(a,b)+"赢了");
        }else{
            System.out.println("平局");
        }
    }
    public static void main(String[] args){
        Contest ct=new Contest();
        for(int i=0;i<10;i++){
           ct.rule();
        }
    }

}

注:
原创代码,如有雷同,纯属巧合
代码有许多不足,欢迎留言讨论和更正

相关标签: java 编程语言