На этой неделе в моем классе будет соревнование ботов, и мы должны сделать так, чтобы наши боты победили всех остальных ботов. Соревнование: камень, ножницы, бумага, динамит, воздушный шар. Динамит бьет все, кроме водяного шара, а водяной шар бьет только динамит. Учитель написал боевую арену и несколько других ботов, умного бота, бота-принтера (бумагу), случайного бота и своего бота, чтобы показать нам несколько примеров. Мне понравился умный бот, и я использовал его для создания своего, и, видимо, мне нужно сделать больше в своем боте. Я не знаю, что еще добавить и как сделать так, чтобы мой бот выигрывал. Мне также нужно следить за тем, сколько у меня динамита.
У меня такие вопросы: что добавить в бота, чтобы он выигрывал и как следить за динамитом? Вот мой бот:
public class herro1cb extends Bot {
public herro1cb(int dynamiteQuantity) {
super(dynamiteQuantity);
_dynamiteLeft = dynamiteQuantity;
setName("Chelsea");
}
@Override
public Move doMove(Move opponentsPrior, int points) {
switch( opponentsPrior ){
case Dynamite:
return _dynamiteLeft > 0 ? Move.Dynamite : Move.WaterBalloon;
case WaterBalloon:
return Move.Scissors;
case Scissors:
return Move.Rock;
case Paper:
return Move.Scissors;
case Rock:
return Move.Paper;
default:
return _dynamiteLeft > 0 ? Move.Rock : Move.Dynamite;
}
}
}
Вот что расширено:
public abstract class Bot implements Comparable<Bot> {
private String _name;
protected int _dynamiteLeft = 0;
public Bot( int dynamiteQuantity ){
_dynamiteLeft = dynamiteQuantity;
}
public String getName(){
return this._name;
}
public void setName(String value){
this._name = value;
}
public abstract Move doMove(Move opponentsPrior,int points);
public void reset(int dynamiteRenewal){
_dynamiteLeft = dynamiteRenewal;
}
@Override
public int compareTo(Bot o) {
return +Integer.compare( this.hashCode() , o.hashCode() );
}
}
Заранее спасибо!