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之面向对象
下一篇: SA本地域名证书服务器搭建