Консультация № 175626
26.12.2009, 19:56
0.00 руб.
0 2 2
Смоделировать бросание кубика (т.е. с помощью датчика случайных чисел получить одно из чисел 1,2,…,6) каждым из двух игроков. Определить, кто из игроков получил на кубике большое очков.

Обсуждение

Неизвестный
26.12.2009, 20:40
общий
это ответ
Здравствуйте, maksim0390.
ну как-то так:

Приложение:
uses crt;
Var
ch:char;
a,b:integer;
begin
randomize;
clrscr;
writeln('Начало игры!!!');

writeln('Бросает первый игрок (для броска нажмите любую клавишу)');
readkey;
a:=1+random(6);

writeln('Первому игроку выпала ',a);
writeln('Бросает второй игрок (для броска нажмите любую клавишу):');
ch:=readkey;
b:=1+random(6);

writeln('Второму игроку выпала ',b);
if a>b then
writeln('У первого игрока очков больше!') else
if a<b then
writeln('У второго игрока очков больше!') else
writeln('У игроков равное количество очков!');
readkey;
end.
Неизвестный
27.12.2009, 02:38
общий
это ответ
Здравствуйте, maksim0390.

Предлагаю этот вариант решения:
Код:
program Kubik;    {название программы}
uses crt; {подключаем модуль для работы с функциями clrscr и readkey}

var
Name1, Name2 : String[12]; {строки имен}
Score1, Score2 : Byte; {переменные для хранения значения очков}
I, CurrSc : Byte; {переменная счётчик(I) и переменная текущего выпавшего очка}

BEGIN {начинаем программу}
clrscr; {функция очистки экрана}
randomize; {для работы генератора псевдослучайных чисел}

Writeln;
Write(' Введите имя первого игрока : ');
Readln(Name1); {ввод имени с клавиатуры}
Write(' Введите имя второго игрока : ');
Readln(Name2); {ввод имени с клавиатуры}

Writeln;

For I := 1 to 12 do {цикл выполняется 12 раз}
begin
if Odd(I) then {если I нечётный значит очередь игрока #1}
begin
Write(' ',Name1,' бросает кубик...');
CurrSc := Random(6) + 1; {генерируем число текущего броска и сохраняем его в переменной текущего очка}

Score1 := Score1 + CurrSc; {суммируем очки}
Write(' Выпало ',CurrSc,' очков ');
Readln; {ожидание нажатия клавиши Enter}
end
else
begin
Write(' ',Name2,' бросает кубик...');
CurrSc := Random(6) + 1; {генерируем число текущего броска и сохраняем его в переменной текущего очка}

Score2 := Score2 + CurrSc; {суммируем очки}
Write(' Выпало ',CurrSc,' очков ');
Readln; {ожидание нажатия клавиши Enter}
end;
end;

Writeln;
Writeln(' Итоги: ');
Writeln(' Игрок ',Name1,' ',Score1,' оч.');
Writeln(' Игрок ',Name2,' набрал ',Score2,' оч.');
Writeln;
{подводим итоги}
if Score1 < Score2 then Writeln(' Победил игрок ***',Name2,'*** ');
if Score1 > Score2 then Writeln(' Победил игрок ***',Name1,'*** ');
if Score1 = Score2 then Writeln(' Ничья ');
readkey; {ожидание нажатия клавиши}
END.


KUBIK.PAS (1.2 кб)

Результат работы программы:


Если возникнут вопросы - пишите в мини-форум. Удачи
Форма ответа