2013-08-29 2 views
1

Меня попросили запрограммировать игру Yahtzee на Java. Дело в том, у меня есть вектор 5 значений (которые представляют собой кость) и значения генерируется случайным образом с помощью этого кода:Векторы в Java - Yahtzee Game

Value= 1 + (int)(Math.random() * (5.999)) 

Теперь проблема заключается в том, что когда-то числа генерируются (или кости были брошены), игроку разрешено выбирать некоторые из значений и удерживать их (сделать их постоянными), поэтому тогда, когда генерируются новые значения, выбранные не изменяются.

Я пытался сделать это с помощью логической переменной, но без везения. Каким будет сохранить значения векторной константы? Я бы очень признателен за любую помощь, спасибо!

+1

Вы можете умножить на '6'. Вектор был заменен ArrayList в 1998 году. Вы сохраняете значения константы Vector, не меняя их. Можете ли вы пояснить, почему вы вообще меняете вектор (если вы не хотите его менять)? –

+2

Любые причины не использовать стандартный массив, если всегда есть 5 кубиков? – Cruncher

+0

Также не используйте сложное выражение. Просто используйте 'Random # nextInt()'. – chrylis

ответ

2

Предлагаю использовать List<Integer>. Удалите все значения, которые игрок не удерживает, а затем снова заполните его до размера 5 при следующем броске.

Другой способ будет сделать Dice класс с randomize() и hold() методами, и имеют randomize() генерировать новое случайное значение, только если hold() не называется.

+0

Спасибо! У меня есть класс «Dice», как вы говорите. Создал метод 'hold()', и теперь он работает нормально, генерирует только те значения, которые не сохраняются. –