Как бросить 2 кубика одновременно и продолжать записывать их сумму - PullRequest
0 голосов
/ 23 октября 2019

Нужно написать программу, которая имитирует игру в кости. 2 игрока ходят по очереди, бросая 2 кубика. На каждом ходу они записывают сумму двух костей и добавляют ее к их сумме. Если игрок бросает дублет (обе кости имеют одинаковое значение), то игрок снова начинает бросать. Первый игрок, набравший 75 очков, выиграет

import java.util.*;

public class DieGame {

    public static void main (String[] args) {

        Random generator = new Random ();

        int die1;
        int die2;
        int sum;

        int sum = 0;

        if (die1==die2)
        {     
            do 
            {
            die1 = generator.nextInt(6) + 1;
            die2 = generator.nextInt(6) + 1;
            sum = die1 + die2;
            }
            while (sum>=75)
        }
    }
}

1 Ответ

1 голос
/ 23 октября 2019

Пара быстрых замечаний (некоторые уже заметили в комментариях): если if не делает ничего, поскольку из цикла, условие цикла инвертировано и неполно, и, наконец, сумма должна быть сохранена для обоих игроков,не только 1.

Базовым вариантом может быть:

Random generator = new Random();    
int die1, die2;
int[] sumForPlayers = { 0, 0 };

int currentPlayerIndex = 0;

do {
    die1 = generator.nextInt(6) + 1;
    die2 = generator.nextInt(6) + 1;

    sumForPlayers[currentPlayerIndex] += die1 + die2;

    if (die1 != die2) {
        currentPlayerIndex = (currentPlayerIndex + 1) % 2;
    }
} while ((sumForPlayers[0] < 75) && (sumForPlayers[1] < 75));

Затем вы можете проверить, какой игрок выигрывает, и отобразить счет вместе с некоторыми сообщениями после цикла:

if (sumForPlayers[0] >= 75) {
    // Player 1 has won! let the world know
} else {
    // Player 2 has won! Show the score details if needed
}

ура!

...