设计如下接口和类:
(1)犯规接口,包括三种情况:接触犯规、干扰犯规、拖延犯规。
(2)得分接口,包括两种情况:主动进攻得分,失误(对方得分),返回值均为整数。
(3)实现上述两个接口的某球类比赛类。比赛得分规则为:主动进攻得1分,失误对方得1分,如犯规2次给对方加1分。
(4)测试程序或类。某队员每次进攻,65%的概率主动进攻得分,26%的概率失误,9%的概率犯规(三种犯规情况均等)。假定该队员一直是进攻方,如该队员得到5分则获胜,对方得到5分则失败。请输出每次进攻的得失分情况,以及最后比赛结果。
import java.util.Random;
interface fangui{
int jiechu(int x);
int ganrao(int x);
int tuoyan(int x);
}
interface defen{
int jingong(int x);
int shiwu(int x);
}
class math implements fangui,defen{
@Override
public int shiwu(int x) {
x++;
return x;
}
@Override
public int jiechu(int x) {
x++;
return x;
}
@Override
public int ganrao(int x) {
x++;
return x;
}
@Override
public int tuoyan(int x) {
x++;
return x;
}
@Override
public int jingong(int x) {
x++;
return x;
}
}
public class Main2{
public static void main(String args[]) {
Random ra = new Random();
math ma = new math();
int me = 0;
int he = 0;
int loag = 0;
double num = 0;//随机数
while(me <5 && he < 5) {
num = Math.random();
if(num >= 0 && num < 0.65) {
me = ma.jingong(me);
System.out.println("我方进攻,我方得一分,当前得分为:"+me);
}
if(num >= 0.65 && num < 0.91) {
he = ma.shiwu(he);
System.out.println("我方失误,对方得一分,对方当前得分为:"+he);
}
if(num >= 0.91 && num <0.94) {
loag = ma.jiechu(loag);
System.out.println("我方接触犯规");
if(loag == 2) {
he++;
loag = 0;
System.out.println("我方犯规两次,对方得一分,对方当前得分为:"+he);
}
}
if(num >=0.94 && num <0.97) {
loag = ma.ganrao(loag);
System.out.println("我方干扰犯规");
if(loag == 2) {
he++;
loag = 0;
System.out.println("我方犯规两次,对方得一分,对方当前得分为:"+he);
}
}
if(num >= 0.97 && num < 1) {
loag = ma.tuoyan(loag);
System.out.println("我方拖延犯规");
if(loag == 2) {
he++;
loag = 0;
System.out.println("我方犯规两次,对方得一分,对方当前得分为:"+he);
}
}
}
if(me == 5) {
System.out.println("比赛结束,我方获胜!!");
}
if(he == 5) {
System.out.println("比赛结束,对方获胜!!");
}
}
}