如何为赛车比赛创建最佳算法?

时间:2015-10-30 13:26:38

标签: java

我应该通过一个应用来控制汽车比赛。 所以在一场比赛中,我有例如5辆车。我想知道这辆车在每个转弯的位置,最后一次,以及所有车的最佳回合。现在我想知道什么样的数据结构是最好的解决方案。

我创建了这个对象:

package Auto;

    import java.security.Timestamp;

    public class Macchina {
        Integer corsia;
        Integer giro;
        Timestamp ultimoTempo;
        Timestamp migliorTempo;


        public void setCorsia(Integer corsia) {
            this.corsia = corsia;
        }

        public void setGiro(Integer giro) {
            this.giro = giro;
        }
        public Timestamp getUltimoTempo() {
            return ultimoTempo;
        }
        public void setUltimoTempo(Timestamp ultimoTempo) {
            this.ultimoTempo = ultimoTempo;
        }
        public Timestamp getMigliorTempo() {
            return migliorTempo;
        }
        public void setMigliorTempo(Timestamp migliorTempo) {
            this.migliorTempo = migliorTempo;
        }

       public Macchina(int c, int g)
       {
           this.corsia=c;
           this.giro=g;
       }

       public int getCorsia(){
           return corsia;
       }

       public int getGiro(){
           return giro;
       }
    }

此类用于存储比赛中汽车的信息。

1 个答案:

答案 0 :(得分:1)

请记住,汽车有速度。 赛道上有距离和赛车。 您的对象设计应该反映出来。

根据汽车的属性数量,您可能不需要汽车对象。

如果您计划扩展赛车计划,您可能需要一个抽象的车辆类。特别是如果赛道变得复杂,汽车变得多变。

如果您只想在离散时间找到类似汽车位置的东西,并且当汽车到达一定距离时,则可能会出现以下情况。 伪代码:

track { 
int length, time, Maxtime;
array<int> carSpeeds, carPositions;
main(){
Maxtime=100;
 for(time=1; time<MaxTime; time++){
   for(int j= 0; j < carSpeeds.size(); j++){
      carPositions[j] = time*careSpeed // reset for each lap.
   // if position is greater than track length, you might have a winner or a tie. 
   }
 }
}
}

您可以添加最大距离和其他内容。

如果你想最终模拟具有扭曲能力的太空飞船赛车到各种航点,水下城市之间的潜艇比赛,以及带有快捷方式的越野赛车,代码应具有高内聚力和低耦合性。但是,许多迭代中的第一个可能看起来与上面类似。