2015-12-07 4 views
1

Мне нужно создать Java-программу, которая воспроизводит игру со следующими правилами;Запуск Jam Java-трафика

  • Есть две команды.
  • «Совет» начинается следующим образом: т. Е. 2 ​​на каждой команде; X X null Y Y.
  • Участники той же команды не могут прыгать друг с другом.
  • Участники противоположной команды могут прыгать друг на друга, только если за противоположным членом команды они пробегают пробел, они прыгают.
  • Участники одной из команд могут двигаться только в пустом месте, они не могут двигаться назад.
  • Цель состоит в том, чтобы они переключали места. то есть Y Y null X X.

Вот мое решение с приведенным выше примером;

XXOYY - MOVE X
XOXYY - У ДЖАМП Х
XYXOY - MOVE Y
XYOYX - Х ДЖАМП У

Повторить в обратном направлении ..

OYXYX - Х ДЖАМП У
YOXYX - MOVE Y
YYXOX - Y JUMP X
Y Y O X X - MOVE X

Я не уверен, как сделать это масштабируемая для обработки больших размеров команды, или если я даже на правильном пути. Любая помощь на этом была бы весьма признательна.

Вот что я до сих пор;

public static void main(String[] args) { 

    Scanner keyboard = new Scanner(System.in); 

    int teamSize = 0, i = 0; 

    System.out.print("How many members on each team?"); 
    teamSize = keyboard.nextInt(); 

    //set board and it's size 
    String[] board = new String[(teamSize*2) + 1]; 

    //set team positions 
    int x = 1, y = 1; 
    for (i = 0; i < teamSize; i++) { 
     board[i] = "X"; 
     board[i + teamSize + 1] = "Y"; 
    } 
    System.out.print("\nBoard: " + Arrays.toString(board)); 

    // firstMove - MOVE X 
    String pre1move = board[teamSize]; // original center value 
    board[i] = board[i-1]; 
    board[i-1] = pre1move; 
    System.out.print("\nX moved up: " + Arrays.toString(board)); 
    // secondMove - Y JUMP X 
    // thirdMove - MOVE Y 
    // fourthMove - X JUMP Y 

    // repeat pattern in reverse 
} 
+2

Подождите. Итак, каков реальный вопрос, который вы задаете? – Mike

+0

Извините, я попытался объяснить, насколько мог, мне нужна помощь в руководстве по выполнению заданной задачи, чтобы программа взяла массив, такой как XX null YY, и отменил его, чтобы стать YY null XX, следуя приведенным выше правилам , Я застрял и не уверен, куда идти отсюда. –

+0

Вы случайно попытались двигаться и прыгать в своей рукописной версии и наткнулись на решение, или можете сформулировать некоторые причины или правила для выбранных вами ходов? – phatfingers

ответ

1

Это довольно трудно ответить на ваш вопрос, не только прямо вверх, давая вам код для него ..... Итак, позвольте мне увидеть, если я могу объяснить общую стратегию, вы должны принять.

В настоящее время в вашем коде с пропущенным кодом в самом низу вашего метода main вы на самом деле указываете «Хорошо, этот конкретный парень должен специально перейти в это пространство». Теперь это работает, но только в этом точном сценарии, где у вас есть 2 против 2. Когда вы пытаетесь сыграть 3 против 3, 4 против 4 и т. Д., Вы правы в том, что вы сказали ранее; это не будет масштабироваться.

Что вам нужно сделать, это настроить свой код, чтобы вы могли допросить его Player, и это отношение к другому Player s и самому Board. Вы должны создать классы Java Player и задать им переменные экземпляра, такие как Direction и Name, чтобы вы могли определить, в каком направлении они путешествуют.

Затем с этой информацией, вы можете задать более общие вопросы на данный момент в игре для любого отдельного Player:

  • Я Player X. Я путешествую Right.Могу ли я:

  • Шаг дальше направо?

- Есть ли еще Player X на моем пути?

- Я собираюсь уйти с конца доски (и, следовательно, в моем последнем положении)?

- и т.д.

Так что, если вы можете задать более общие вопросы с учетом текущей ситуации Player «s, игра весы.

Я знаю, что это расплывчато, но, как я уже сказал, это самое лучшее, что вы получите без точного решения. Удачи.

+0

Спасибо, Майк! На самом деле это именно то, что мне нужно. –

+0

Рад, что я мог бы помочь. – Mike

Смежные вопросы