197 (игра) — различия между версиями
Проф (обсуждение | вклад) |
Проф (обсуждение | вклад) (больше квадратов и 197, хороших и разных) |
||
| Строка 40: | Строка 40: | ||
until S=W[i]; | until S=W[i]; | ||
until S=197; | until S=197; | ||
| + | writeln('Сасай, лалка!'); | ||
| + | readln; | ||
| + | end. | ||
| + | |||
| + | == Версия игры «Маятник Профа» == | ||
| + | Здесь игроки не вправе выбирать модуль квадрата, которым следует походить — выбирается лишь знак. Натуральное число, возводимое во вторую степень, соответствует номеру хода. Исходное число — 100, заходить в «минус» запрещено. Побеждает тот, кто назовёт 197 или больше. | ||
| + | |||
| + | === Сильнейшая программа === | ||
| + | var S, n: integer; zn: char; | ||
| + | begin | ||
| + | S:=100; | ||
| + | n:=0; | ||
| + | writeln('Добро пожаловать на "Маятник Профа"!'); | ||
| + | writeln('Твоя задача нажимать только + или -.'); | ||
| + | writeln('Игра в пределах неотрицательных чисел,'); | ||
| + | writeln('поэтому в некоторых случаях у тебя не будет выбора.'); | ||
| + | writeln('Для победы нужно получить 197 или более. Исходное число - 100.'); | ||
| + | writeln('Компьютер ходит первым.'); | ||
| + | repeat | ||
| + | n:=n+1; | ||
| + | if n=5 | ||
| + | then if S<=91 then S:=S-25 else S:=S+25 | ||
| + | else if (S-n*n<0) or (S+n*n>=197) then S:=S+n*n else S:=S-n*n; | ||
| + | writeln('Ход компьютера: ',S); | ||
| + | if S<197 then | ||
| + | begin | ||
| + | n:=n+1; | ||
| + | if S>=n*n then | ||
| + | begin | ||
| + | write('Твой ход (+/-',n*n,'): '); | ||
| + | readln(zn); | ||
| + | if zn='+' then S:=S+n*n else S:=S-n*n; | ||
| + | end | ||
| + | else S:=S+n*n; | ||
| + | writeln('Твой ход: ',S); | ||
| + | end; | ||
| + | until S>=197; | ||
writeln('Сасай, лалка!'); | writeln('Сасай, лалка!'); | ||
readln; | readln; | ||
Версия 17:05, 20 марта 2016
197 — гениальнейшая игра, придуманная не менее гениальным Профом. Играют двое. Первый называет квадрат какого-либо натурального числа, второй добавляет к нему ещё один квадрат натурального числа и называет сумму, и т. д. по очереди. У кого получится число 197 — тот и побеждает. Называть число, большее 197, запрещено.
Анализ
При кажущейся простоте игра изобилует множеством вариантов, поэтому просчитать в уме все ходы наперёд могут только люди с IQ=197 и выше. Однако известно, что при наилучшей игре обоих игроков всегда победит второй, поскольку среди множества чисел, ведущих шаг за шагом к победе, нет ни одного квадрата. Например, последние 3 «победных» числа — это 190, 192 и 195. Назвавший одно из них или другое такое число гарантирует себе победу вне зависимости от того, как будет ходить его противник:
- …190 → 191 → 195 → 196 → 197
- …190 → 194 → 195 → 196 → 197
Для пущего интереса можно усложнить игру, запретив, например, называть два одинаковых квадрата подряд. В любом случае играть в «197» — одно удовольствие для истинных интеллектуалов.
Игра с компьютером
Мудрейшему Профу удалось написать сильнейшую компьютерную программу для этой игры. Для игры достаточно установить Паскаль и вбить следующий код:
var h, S, i, c: integer; W: array[1..37] of integer;
label No;
begin
writeln('Добро пожаловать в "197"! Первым ходом пишешь квадрат натурального числа, потом сразу сумму.');
S:=0;
W[1]:=5; W[2]:=10; W[3]:=15; W[4]:=17; W[5]:=20; W[6]:=27; W[7]:=47; W[8]:=50;
W[9]:=55; W[10]:=60; W[11]:=65; W[12]:=67; W[13]:=70; W[14]:=73; W[15]:=78;
W[16]:=88; W[17]:=102; W[18]:=112; W[19]:=125; W[20]:=130; W[21]:=132;
W[22]:=135; W[23]:=140; W[24]:=145; W[25]:=153; W[26]:=158; W[27]:=163;
W[28]:=175; W[29]:=177; W[30]:=180; W[31]:=182; W[32]:=185; W[33]:=187;
W[34]:=190; W[35]:=192; W[36]:=195; W[37]:=197;
repeat
No:
write('Твой ход: ');
readln(h);
if (round(sqrt(h-S))=sqrt(h-S)) and (h<197) then S:=h else
begin
writeln('Ты неправильно походил, мудила!');
goto No;
end;
i:=38;
repeat
i:=i-1;
for c:=1 to 14 do if S+c*c=W[i] then
begin
S:=W[i];
writeln('Ход компьютера: ', S);
end;
until S=W[i];
until S=197;
writeln('Сасай, лалка!');
readln;
end.
Версия игры «Маятник Профа»
Здесь игроки не вправе выбирать модуль квадрата, которым следует походить — выбирается лишь знак. Натуральное число, возводимое во вторую степень, соответствует номеру хода. Исходное число — 100, заходить в «минус» запрещено. Побеждает тот, кто назовёт 197 или больше.
Сильнейшая программа
var S, n: integer; zn: char;
begin
S:=100;
n:=0;
writeln('Добро пожаловать на "Маятник Профа"!');
writeln('Твоя задача нажимать только + или -.');
writeln('Игра в пределах неотрицательных чисел,');
writeln('поэтому в некоторых случаях у тебя не будет выбора.');
writeln('Для победы нужно получить 197 или более. Исходное число - 100.');
writeln('Компьютер ходит первым.');
repeat
n:=n+1;
if n=5
then if S<=91 then S:=S-25 else S:=S+25
else if (S-n*n<0) or (S+n*n>=197) then S:=S+n*n else S:=S-n*n;
writeln('Ход компьютера: ',S);
if S<197 then
begin
n:=n+1;
if S>=n*n then
begin
write('Твой ход (+/-',n*n,'): ');
readln(zn);
if zn='+' then S:=S+n*n else S:=S-n*n;
end
else S:=S+n*n;
writeln('Твой ход: ',S);
end;
until S>=197;
writeln('Сасай, лалка!');
readln;
end.