Игра камень ножницы бумага на паскале с выигрышной стратегией

14 сентября 2019 - Администратор

Игра камень ножницы бумага на паскале с компьютером с выигрышной стратегией

В статье Игра камень ножницы бумага на паскаль мы создали игру с компьютером, Ходы компьютера зависели от выбора случайного числа. На этом уроке будет написана программа  с анализом ходов игрока на паскале. Если человек будет выбирать один и тот же вариант, допустим, камень, то компьютер выберет вариант, побеждающий камень. Это наша первая экспертная система на Паскале
Для анализа вариантов ответа пользователя будет создан массив, в который будут записываться ходы человека
 Подробнее о массивах в паскале
a : array[1..3] of integer;
var i, k, n, b: integer;
begin
for i:=1 to 3 do
begin
r := 0;
while (r=0) do
begin
writeln('Выберите 1 - Камень 2 - Ножницы 3 - Бумага');
readln (hod);

Будет проведено 4 раунда игры «Камень – ножницы – бумага». В 3 из них компьютер играет произвольным образом.   
comp := random(2)+1;
После 3 раундов рассмотрим массив ответов пользователя. Подсчитаем количество ответов каждого варианта, для каждого варианта своя переменная Переменная k будет отвечать за количество выбранных вариантов ответа «Камень», n – за вариант ответа «Ножницы», переменная b – за «бумагу». В случае, если какой-либо вариант ответа был выбран 2 раза, компьютер выберет свой вариант, который побеждает любимый вариант человека  
if k > 2 then 
begin
comp := 3;
end;
if n > 2 then
begin
comp := 1;
end;
if b > 2 then 
begin
comp := 2;

Полная версия программы «Камень – ножницы – бумага» на Паскале с выигрышной стратегией
var hod,comp,r : integer;
a : array[1..3] of integer;
var i, k, n, b: integer;
begin
for i:=1 to 3 do
begin
r := 0;
while (r=0) do
begin
writeln('Выберите 1 - Камень 2 - Ножницы 3 - Бумага');
readln (hod);
if (hod = 1) or (hod = 2) or (hod = 3) then 
begin
r :=1;
end;
end;
a[i] := hod;
writeln('Вы выбрали');
case hod of
1 : writeln('Камень');
2 : writeln('Ножницы');
3 : writeln('Бумагу');
end;
comp := random(2)+1;
writeln('Компьютер выбрал');
case comp of
1 : writeln('Камень');
2 : writeln('Ножницы');
3 : writeln('Бумагу');
end;
if (hod = comp) then
begin
writeln('Ничья');
end;
if (hod = 1) and (comp = 2) then
begin
writeln('Вы выиграли');
end;
if (hod = 1) and (comp = 3) then 
begin
writeln('Выиграл компьютер');
end;
if (hod = 2) and (comp = 1) then
begin
writeln('Выиграл компьютер');
end;
if (hod = 2) and (comp = 3) then
begin
writeln('Вы выиграли');
end;
if (hod = 3) and (comp = 1) then
begin
writeln('Вы выиграли');
end;
if (hod = 3) and (comp = 2) then
begin
writeln('Выиграл компьютер');
end;
end;
k := 0;
n := 0;
b := 0;
for i := 1 to 3 do
begin
if a[i] = 1 then 
begin
k := k+1;
end;
if a[i] = 2 then 
begin
n := n+1;
end;
if a[i] = 3 then
begin
b := b+1;
end;
end;
r := 0;
while (r=0) do
begin
writeln('Выберите 1 - Камень 2 - Ножницы 3 - Бумага');
readln (hod);
if (hod = 1) or (hod = 2) or (hod = 3) then 
begin
r :=1;
end;

end;
if k > 2 then 
begin
comp := 3;
end;
if n > 2 then
begin
comp := 1;
end;
if b > 2 then 
begin
comp := 2;
end;
writeln('Компьютер выбрал');
case comp of
1 : writeln('Камень');
2 : writeln('Ножницы');
3 : writeln('Бумагу');
end;
if (hod = comp) then
begin
writeln('Ничья');
end;
if (hod = 1) and (comp = 2) then
begin
writeln('Вы выиграли');
end;
if (hod = 1) and (comp = 3) then 
begin
writeln('Выиграл компьютер');
end;
if (hod = 2) and (comp = 1) then
begin
writeln('Выиграл компьютер');
end;
if (hod = 2) and (comp = 3) then
begin
writeln('Вы выиграли');
end;
if (hod = 3) and (comp = 1) then
begin
writeln('Вы выиграли');
end;
if (hod = 3) and (comp = 2) then
begin
writeln('Выиграл компьютер');
end;
end.

Вернуться к содержанию курса Паскаль

Полезно почитать по теме массивы в Паскаль

Массивы в Паскаль

Комментарии (0)

Нет комментариев. Ваш будет первым!