将更改的赛道实施到我的Java驱动程序中

时间:2016-11-17 23:50:04

标签: java arrays

我需要创建一个如下所示的赛道:

 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y
---------------------------------------------------------------------------
|AB|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
---------------------------------------------------------------------------

其中A是汽车而B是另一辆汽车。

他们需要使用预先确定的速度和燃油消耗率以这样的方式沿着赛道前进:

 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y
---------------------------------------------------------------------------
|  |  |  |A |  |  |  |  |  | B|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
---------------------------------------------------------------------------



 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y
---------------------------------------------------------------------------
|  |  |  |  |  |  |  |  |  |  |A |  |  |  |  |  |  |  |  |  |B |  |  |  |  |
---------------------------------------------------------------------------

在我的主方法驱动程序(我的赛车游戏的控制器)中,我有赛道开始时的赛道输出:

public static void main(String [] args)
{
    System.out.println(" A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y");
    System.out.println("---------------------------------------------------------------------------");
    System.out.println("|VP|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |");
    System.out.println("---------------------------------------------------------------------------");



}

但我不知道如何在连续几轮比赛中更新赛车的位置。这个赛道图画应该作为一个数组实现吗?使用System.out.print("");创建静态赛道。

2 个答案:

答案 0 :(得分:0)

如果汽车A位于第5位,您可以在打印汽车之前打印4 |,然后打印其余部分

类似

    int len = 20;
    String trackBit = "| ";
    int pos = 5;

    for (int x = 0; x < len; x++) {
        if (x == pos) {
          System.out.print("|A");
        }
        else {
          System.out.print(trackBit);
        }
    }

答案 1 :(得分:0)

这是简单的解决方案

public class RacingGame {

    private static final String track = "|VP|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |";

    public static void PrintTrack(int charA, int charB) {
        StringBuilder modifiedTrack = new StringBuilder(track);
        int indexA = charA*3-1;
        int indexB = charB*3-1;
        if(indexA == indexB) indexB--;
        modifiedTrack.replace(indexA, indexA, "A");
        modifiedTrack.replace(indexB, indexB, "B");

        System.out.println(" A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y");
        System.out.println("---------------------------------------------------------------------------");
        System.out.println(modifiedTrack);
        System.out.println("---------------------------------------------------------------------------");
    }
}