Суббота, 20.04.2024, 07:30
Сайт учителей информатики
ГБОУ СОШ № 11 г. Москвы
Приветствую Вас Гость | RSS
Главная Задача «Камень, ножницы, бумага» Регистрация Вход
Кабинет информатики

К уроку информатики

Планирование

Олимпиады и конкурсы

ЕГЭ и ГИА по информатике

Открытые мероприятия по информатике

Форма входа

Задача «Камень, ножницы, бумага»

Задача 1. Камень, ножницы, бумага.
Оценка 25 баллов.

Камень, ножницы, бумага — популярная детская игра на руках, изобретенная в Китае и известная во многих странах мира.

Игроки считают вслух «Камень … Ножницы … Бумага… Раз… Два… Три», одновременно качая кулаками. На счет «Три» они одновременно показывают при помощи пальцев один из трех знаков: камень, ножницы или бумагу.

Победитель определяется по следующим правилам:

  • Камень побеждает ножницы («камень затупляет или ломает ножницы»)
  • Ножницы побеждают бумагу («ножницы разрезают бумагу»)
  • Бумага побеждает камень («бумага заворачивает камень»)
  • Если игроки показали одинаковый знак, то засчитывается ничья и игра переигрывается.

В классическом варианте в игру играют вдвоем, однако возможна игра большего количества участников.

Материал из Википедии — свободной энкиклопедии.

При игре в «Камень, ножницы, бумага» втроем выигрывает игрок, победивший обоих своих соперников, если такого игрока нет, то засчитывается ничья.

Напишите программу, определяющую кто выигрывает в игре для трех игроков.

Формат входных данных

С клавиатуры вводятся три числа a,b,c (1<=a,b,c<=3) — информация о знаках, показанных первым, вторым и третьим игроком соответственно. Информация о знаке кодируется следующим образом 1 означает камень, 2 — ножницы, 3 — бумагу.

Формат выходных данных

На экран вывести номер победившего игрока или 0 в случае ничьей.

Пример входных и выходных данных

Ввод

Вывод

1
2
3

0

1
1
2

0

2
1
2

2

Решение:

Var

  a: array [1..3] of integer;

  i: integer;

  Ind, Ind2: integer;

  zn1, zn2: integer;

 

Begin

  cls;

  Writeln('Камень - 1');

  Writeln('Ножницы - 2');

  Writeln('Бумага - 3');

  Writeln('Введите код хода первого игрока: ');

  Readln(a[1]);

  Writeln('Введите код хода второго игрока: ');

  Readln(a[2]);

  Writeln('Введите код хода третьего игрока: ');

  Readln(a[3]);

  // Находим

  if (((a[1]=a[2]) and (a[2]=a[3])) or ((a[1]&lt;&gt;a[2]) and (a[2]&lt;&gt;a[3]) and (a[1]&lt;&gt;a[3]))) then

   begin

    Writeln('0'); exit

   end;

  // Найдем индекс того, у которого единственный вариант

  if a[1]=a[2] then

  begin

    ind:=3;

    ind2:=1;

  end;

  if a[2]=a[3] then

  begin

    ind:=1;

    ind2:=2;

  end;

  if a[1]=a[3] then

  begin

    ind:=2;

    ind2:=1;

  end;

 

  zn1:=a[Ind];

  zn2:=a[ind2];

 

  // Находим победителя

  if (zn1=1) and (zn2=2) then

     writeln(ind)

  else if (zn1=2) and (zn2=3) then

    Writeln(Ind)

  else if (zn1=3) and (zn2=1) then

    Writeln(Ind)

  else

      writeln(0);

 

end.

ГБОУ СОШ № 11

Учителя информатики

Цитатник

Обратная связь

Поиск

Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

Архив записей

Informatika11 © 2024 Бесплатный хостинг uCoz