Delphi. Учимся на примерах
Шрифт:
num:= Random(StrToInt(finish.Text) – StrToInt(start.Text)) + StrToInt(start.Text);
kolvo:= 0; //обнуляем количество попыток
big:= StrToInt(finish.Text); //самое большое число
small:= StrToInt(start.Text); //самое маленькое число
end;
Сначала мы включаем генератор случайных чисел, затем выбираем случайное число из заданного диапазона, и в конце устанавливаем для компьютера диапазон в пределах от наименьшего до наибольшего числа. В дальнейшем мы будем постепенно сужать этот диапазон.
Самое главное событие — нажатие кнопки Принять вариант. Создадим для этого кнопки обработчик события OnClick:
procedure TForm1.Button2Click(Sender: TObject);
begin
//увеличиваем количество попыток на единицу
kolvo:= kolvo + 1;
if not comp.Checked then //если идет игра с человеком
begin
if pl1.Enabled then begin //если ход первого игрока
//если вариант больше загаданного числа, ставим знак >
if StrToInt(ch1.Text) > num then znak1.Caption:= '>';
//если вариант меньше загаданного числа, ставим знак <
if StrToInt(ch1.Text) < num then znak1.Caption:= '<';
if StrToInt(ch1.Text) = num then //если число угадано
begin
znak1.Caption:= '='; //изменим знак на "="
//вместо знака "X" показываем загаданное число
х.Caption:= IntToStr(num);
//выводим сообщение о победе первого игрока
ShowMessage('Победил первый игрок!' + #13#10 + 'Число угадано за ' + IntToStr(kolvo) + ' попытки')
end;
//передаем ход второму игроку
pl1.Enabled:= False;
ch1.Enabled:= False;
ch2.Enabled:= True;
pl2.Enabled:= True;
Exit; //прерываем выполнение процедуры
end;
if pl2.Enabled then begin //если ход второго игрока
{сравниваем загаданное число с вариантом второго игрока и ставим соответствующий знак}
if StrToInt(ch2.Text) > num then znak2.Caption:= '>';
if StrToInt(ch2.Text) < num then znak2.Caption := '<';
if StrToInt(ch2.Text) = num then begin
znak2.Caption := '=';
x.Caption:= IntToStr(num);
ShowMessage('Победил второй игрок!' + #13#10 + 'Число угадано за ' + IntToStr(kolvo) + ' попытки')
end;
end;
//передаем ход первому игроку
рl2.Enabled:= False;
ch2.Enabled:= False;
ch1.Enabled:= True;
pl1.Enabled:= True;
Exit;
end;
if comp.Checked then begin //если игра против компьютера
{проверяем вариант первого игрока и ставим соответствующий знак}
if StrToInt(ch1.Text) > num then znak1.Caption:= '>';
if StrToInt(ch1.Text) < num then znak1.Caption:= '<';
if StrToInt(ch1.Text) = num then begin
znak1.Caption:= '=';
x.Caption:= IntToStr(num);
ShowMessage('Вы победили!' + #13#10 + 'Число угадано за ' + IntToStr(kolvo) + ' попытки');
Exit;
end;
//если вариант первого игрока больше загаданного числа
if znak1.Caption = '>' then begin
maximum[kolvo]:= StrToInt(ch1.Text); {добавляем в массив наибольших чисел вариант первого игрока}
max;
//ищем наибольшее число
end;
//если вариант первого игрока меньше загаданного числа
if znak1.Caption = '<' then begin
minimum[kolvo]:= StrToInt(ch1.Text); {добавляем число в массив наименьших чисел, выданных первым игроком}
min;//ищем наименьшее число
end;
//после всех расчетов, компьютер выдает свой вариант
ch2.Text:= IntToStr(Random(big– small)+ small);
Поделиться:
Популярные книги
Матабар V
5. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Путь Шедара
4. Другая сторона
Фантастика:
боевая фантастика
6.83
рейтинг книги
Найденыш
2. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Тициан Табидзе: жизнь и поэзия
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Геном хищника. Книга девятая
9. Я - Легенда!
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXX
30. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Кодекс Крови. Книга VIII
8. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 6
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Князь Медведев. Дилогия
Медведев
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Крови. Книга II
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Князь Андер Арес 3
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Прайм. Хомори
2. Легенда
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Первый среди равных
1. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Мажор. Дилогия.
Фантастика:
боевая фантастика
8.05