В этой части Учебника Perl мы начнем создавать маленькую, но веселую игру. Это была моя первая игра, которую я написал в средней школе, еще до того как вышел Perl 1.0.

Чтобы написать эту игру, необходимо изучить две простых не связанных друг с другом темы: Как генерировать случайные числа в Perl и Как получить целую часть числа.

Целая часть дробного числа

Функция int() возвращает целую часть переданного ей параметра:

use strict;
use warnings;
use 5.010;

my $x = int 3.14;
say $x;          # выведет 3

my $z = int 3;
say $z;          # тоже выведет 3.

                 # Даже это выведет 3.
my $w = int 3.99999;
say $w;

say int -3.14;   # выведет -3

Случайные числа

Вызов функции Perl'а rand($n) вернет случайное дробное число от 0 до $n. Причем это может быть 0, но не $n.

Если $n = 42, то вызов rand($n) вернет случайное число от 0 до 42. Это может быть 0, но не 42. Например, 11.26462482109582.

Если мы не зададим значения, то rand() по умолчанию даст число от 0 до 1, включая 0 и исключая 1.

Объединив rand и int, мы сможем генерировать случайные целые числа.

use strict;
use warnings;
use 5.010;

my $z = int rand 6;
say $z;

Это вернет число от 0 до 6. Оно может быть 0, но не 6. Так что это будет одно из чисел: 0,1,2,3,4,5.

Если же мы добавим к результату 1, то получим какое-то из чисел 1,2,3,4,5,6, как если бы бросили кубик.

Упражнение: игра «Угадай число»

Это начало игры, которую мы собираемся написать. Маленькой, но веселой игры.

Напишите скрипт, в которой, используя функцию rand(), компьютер «загадывает» целое число от 1 до 200. Пользователь должен угадать число.

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

Пока что не надо давать пользователю возможность угадывать несколько раз. Этим мы займемся в будущих главах. Конечно, я не могу запретить вам читать статью о цикле while в Perl, так что вы можете прочесть ее и с помощью этой конструкции дать пользователю возможность угадывать число несколько раз.