Написать игру в которой имитируется бросание кубиков компьютером и пользователем с

Обновлено: 01.07.2024

Microsoft Excel имеет встроенный язык программирования - Visual Basic for Аpplications (VBA) . Этот язык позволяет создавать приложения, выполняемые в среде Microsoft Office. Редактор Visual Basic for Application позволяет существенно расширить возможности Excel .

ЗАДАЧА . Снова бросаем игральный кубик

Разработайте программу, которая будет имитировать многократное бросание одной игральной кости, а также определять и показывать количество выпадений на кубике того или иного числа. Программа должна делать ставки, позволять начинать бросание кости, останавливать его в любой момент и переустанавливать результаты подсчета.

Игральную кость можно рассматривать как генератор случайных чисел в целочисленном интервале [1..N] с одинаковой вероятностью выпадения всех чисел интервала.

Создание интерфейса

Перед началом работы над программой в V B A , вам нужно воспользоваться графическим редактором Paint или другим, чтобы создать изображения игральной кости. Вам понадобятся шесть отдельных bmp- файлов, каждый из которых будет картинкой одной из граней кубика (кости).

Запустите VB A , начните новый проект и разместите на форме элемент управления Image , 18 надписей и четыре кнопки.

Назначение каждого элемента управления: (см. рисунок 1)

элемент управления Image — для графического представления игральной кости (одной ее грани);

надписи — для показа количества выпадений того или иного числа и для подписей к ним;

Выход — для завершения программы по щелчку на ней;

Начать — чтобы начать бросание по щелчку на кнопке;

Остановить — чтобы остановить бросание по щелчку на ней;

Сброс — чтобы обнулить счет по щелчку на кнопке.

В этой программе присутствует повторяющийся процесс (бросание кости и вывод результата) через регулярные интервалы времени функция - time r .

Private Sub atimer()

Dim Kost, a, d, stavka As Integer

Do While timer < Start + PauseTime

kost = Int(Rnd * 6) + 1

Select Case kost

Label1.Caption = Label1.Caption + 1

Label2.Caption = Label2.Caption + 1

Label3.Caption = Label3.Caption + 1

Label3.Caption = Label3.Caption + 1

Label4.Caption = Label4.Caption + 1

Label5.Caption = Label2.Caption + 1

Label6.Caption = Label6.Caption + 1

If stavka = kost Then

Label15.Caption = Label15.Caption + 3

Label15.Caption = Label15.Caption - 2

Private Sub CommandButton1_Click()

If stavka < 6 And stavka > 0 Then

Label 18. Caption = "Вы не сделали ставку . "

Private Sub CommandButton2_Click()

Private Sub CommandButton3_Click()

Private Sub CommandButton4_Click()

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

Задания для самостоятельного выполнения:

Задача 1. Эксперимент состоит в подсчете числа бросаний двух костей до выпадения двух шестерок. Требуется найти среднее число бросаний, необходимых для получения двух шестерок. (Проводится N экспериментов).

“ Информатика” № 4–8, 19/2006,” O сновы программирования на Visual Basic ”,

Программирование

Программирование

Программирование запись закреплена

Задачи: Функции C++

Написать игру в которой имитируется бросание кубиков компьютером и пользователем.
В игре 2 кубика и на каждом из них может выпасть от 1 до 6 очков. Реализовать определение программой первого ходящего. Каждый делает по четыре броска. После бросков показать, нарисованные символами кубики и количество очков, выпавших на них. После пары бросков (бросок компьютера + бросок пользователя) выводить на экран промежуточный результат – количество набранных очков игроком и компьютером. В конце сообщить о том, кто выиграл по итогам всех бросков.

using namespace std;

bool calcFirstMove();
void drowCube(int res);
int computerOrPlayerThrow();
void showIntermediateResult(int pointsOfComputer, int pointsOfUser, int numberThrow);

int main()
setlocale(LC_ALL, "rus");
srand(time(NULL));

int playerScore = 0; // для накопления очков
int computerScore = 0;
int whoMove = 0;
char userName[16] = <>;

cout « "Ваше имя (латиницей): ";
cin » userName;

whoMove = calcFirstMove(); // если будет 0 - ходит игрок, 1 - ходит компьютер

showIntermediateResult(computerScore, playerScore, i);
>

bool calcFirstMove() // генерирует и возвращает случайное число 0 или 1
return rand() % 2;
>

int computerOrPlayerThrow() // реализация броска пары кубиков и возврат полученных очков
int result = 0;
char c = 0;

int tmp = 0; // для накопления очков пары брошенных кубиков
for (int i = 0; i < 2; ++i) tmp = 1 + rand() % 6;
drowCube(tmp);
result += tmp;
cout « endl;
>

cout « "Всего на кубиках " « result « " очков";
return result;
>

Комментарии к исходному коду: Определяем прототипы в строках 7 – 10. В строке 25 в переменную whoMove запишется случайное число которое вернет функция calcFirstMove(). Для себя определим, что если она вернет 0 – ходит игрок, 1 – ходит компьютер. В строках 27 – 45 находится конструкция вложенных циклов for. Во вложенном цикле (строки 29 – 42) происходит реализация поочередных бросков: учитывается, кто бросает первым, накапливаются очки, подсчитанные функцией computerOrPlayerThrow(). В строке 41 меняется значение переменной whoMove на противоположное, для смены ходящего. Внешний цикл считает количество пар бросков. Так же в нём функция showIntermediateResult() показывает промежуточные результаты.

Определения всех функций находятся в строках 65 – 159. showIntermediateResult() принимает количество очков игрока и компьютера, после каждой пары бросков и выводит промежуточный результат. Так же функция принимает значение счетчика цикла для отображения номера броска.

drowCube() вызывается в функции computerOrPlayerThrow(). Она принимает результат сгенерированного в computerOrPlayerThrow() случайного числа (от 1 до 6) и рисует соответствующий кубик.


Написать игру, в которой имитируется бросание кубиков
Написать игру, в которой имитируется бросание кубиков компьютером и пользователем. В игре 2.

Написать игру в которой имитируется бросание кубиков
Этап первый Написать игру в которой имитируется бросание кубиков игроком. Игра должна представлять.

Бросание трех кубиков
Привет, если бросить три (шестигранных кубика) , то какова вероятность того выпадет две 5 и одна.

Смоделировать бросание каждым из двух игроков трех игральных кубиков
Смоделировать бросание каждым из двух игроков трех игральных кубиков.Определить ,кто из игроков.

Решение

Добавлено через 14 минут
Только нужно 27 строку удалить или закомментировать. Поскольку мы делаем по два броска за раз, то очередность хода не меняется.


Смоделировать бросание двух игральных кубиков: при запуске вывести случайное число от 2 до 12
Помогите .напишите программу, которая моделирует бросание двух игральных кубиков: при запуске.


Смоделировать бросание каждым из двух игроков трех игральных кубиков.Определить ,кто из игроков получил большую сумму очков.
Смоделировать бросание каждым из двух игроков трех игральных кубиков.Определить ,кто из игроков.


Игра бросание кубика JS
Здравствуйте, я Очень начинающий. Мне нужна ваша помощь. Нужно имея игру &quot;Орел - решка&quot;.


Игра Кости, игра с компьютером
Всем привет! Делаю консольную игру Кости. Условия такие: 1) Перед игрой все игроки бросают.


Игра "Бросание игральных костей (кубики)"
Доброго времени суток, очень необходимо составить игру, от этой игры и работы в целом зависит.

Игра с компьютером
Здравствуйте форумчане! Я создал игру &quot;города&quot; и она работает, но только с двумя игроками. Хотел бы.

3. Объявить три массива. Первые два заполнить случайными значениями от 10 до 30. В элементы третьего массива записать сумму соответствующих элементов первых двух массивов. (в нулевую ячейку третьего – сумму нулевых ячеек первого и второго массивов и так далее). Затем найти среднее арифметическое элементов третьего массива, максимальное значение и минимальное значение, которые он хранит.

using namespace std;

const int SIZE = 10;

// заполняем первые два массива

averageValue = sum / SIZE;


    1. Объявить два целочисленныхмассивас разными размерами и написать функцию, которая заполняет их элементы значениями и показывает на экран. Функция должна принимать два параметра – массив и его размер.

    2. Необходимо создать двумерный массив 5 х 5. Далее написать функцию, которая заполнит его случайными числами от 30 до 60. Создать еще две функции, которые находят максимальный и минимальный элементы этого двумерного массива. (О генерации случайных чисел есть отдельная статья)

    using namespace std;

    const int SIZE = 5;

    void fillAndShowArray(int[][SIZE], const int size);

    int findMinElement(int[][SIZE], const int size);

    int findMaxElement(int[][SIZE], const int size);

    fillAndShowArray(matrix, SIZE); //заполняем и показываем массив

    Показать код

    3. Написать игру в которой имитируется бросание кубиков компьютером и пользователем. В игре 2 кубика и на каждом из них может выпасть от 1 до 6 очков. Реализовать определение программой первого ходящего. Каждый делает по четыре броска. После бросков показать, нарисованные символами кубики и количество очков, выпавших на них. После пары бросков (бросок компьютера + бросок пользователя) выводить на экран промежуточный результат – количество набранных очков игроком и компьютером. В конце сообщить о том, кто выиграл по итогам всех бросков.

    using namespace std;

    void drowCube(int res);

    void showIntermediateResult(int pointsOfComputer, int pointsOfUser, int numberThrow);

    int computerScore = 0;

    cout > userName;
    whoMove = calcFirstMove(); // если будет 0 - ходит игрок, 1 - ходит компьютер

    for (int i = 0; i playerScore)

    > while (c != 'y' && c != 'Y');
    int tmp = 0; // для накопления очков пары брошенных кубиков


    После ввода пользователем ответа в ячейку B2 случайным образом генерирует одно из указанных чисел, которое выводится в ячейке В3, и определяется результат прогноза («Верно» или «Неверно»).

    Решение:

    В ячейку В3 введите формулу: =1 + ЦЕЛОЕ(СЛЧИС()*2), а в ячейку В4 - формулу: = ЕСЛИ(В2 = В3; ”Верно”;”Неверно”).

    Однако, при таком оформлении листа еще до ввода играющим своего мнения в ячейку В2 проявятся 2 недостатка:

    1. В ячейке В3 будет выводиться какое-то число, нужно чтобы оно появлялось только после ввода значения в ячейку В2. Это можно сделать, используя функцию ЕПУСТО: =ЕСЛИ(ЕПУСТО(B2);" ";1+ЦЕЛОЕ(СЛЧИС()*2))
    2. В ячейке В4 будет выводиться ответ «Неверно», что некорректно. Чтобы устранить этот недостаток, здесь также следует применить функцию ЕПУСТО:

    Теперь ответы в ячейке будут появляться только при наличии чисел в ячейке В2.

    2. Игра «Чет или нечет» (вариант 2)

    Правила игры. Играющий дожжен спрогнозировать 11 случайных чисел 1 или 2 (ячейки В3:В13), после чего в ячейках С3:С13 появляются числа, сгенерированные компьютером, а также определяется результат игры.

    В ячейке В18 должен быть выведен текст «Вы выиграли!» или «Выиграл компьютер!» (ничьей быть не может). Текст в ячейках А15:А18 и В16:В18 должен выводиться только после заполнения играющим ячейки В13 и исчезать после ее очистки. Необходимые формулы оформите самостоятельно.

    Игра моделирует бросание игрального кубика каждым из 2 участников, после чего определяется результат:

    Игра

    Результат выводится в ячейке В6 в виде «Выиграл Петя» или «Выиграл Вася» или «ничья». Число в ячейке В3 и текст в ячейках А3 и А4 должны выводиться только после ввода имени первого игрока, а число В5 и текст в ячейках А5, А6, В6 – только после ввода имени второго игрока.

    Читайте также: