В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Soffik0611
Soffik0611
07.06.2021 21:52 •  Информатика

Как решить эту на pascal напишите программу, которая по изображению поля для игры в «крестики-нолики» определит, могла ли такая ситуация возникнуть в результате игры с соблюдением всех правил. напомним, что игра в «крестики-нолики» ведется на поле 3x3. два игрока ходят по очереди. первый ставит крестик, а второй – нолик. ставить крестик и нолик разрешается в любую еще не занятую клетку поля. когда один из игроков поставит три своих знака в одной горизонтали, вертикали или диагонали, или когда все клетки поля окажутся заняты, игра заканчивается. входные данные вводится три строки по три числа в каждой, описывающих игровое поле. число 0 обозначает пустую клетку, 1 – крестик, 2 – нолик. числа в строке разделяются пробелами. выходные данные требуется вывести слово yes, если указанная ситуация могла возникнуть в ходе игры, и no в противном случае. примеры входные данные 1 1 1 1 1 1 1 1 1 выходные данные no входные данные 2 1 1 1 1 2 2 2 1 выходные данные yes входные данные 1 1 1 2 0 2 0 0 0 выходные данные yes входные данные 0 0 0 0 1 0 0 0 0 выходные данные yes входные данные 1 1 1 2 2 2 0 0 0 выходные данные no

Показать ответ
Ответ:
ruan
ruan
04.10.2020 01:38
Var
 a:array[1..3,1..3] of integer;
 t:array[0..2] of boolean;
 k:array[0..2] of integer;
 i,j:integer;
 res:boolean;

begin
 for i := 1 to 3 do
 for j := 1 to 3 do
   read(a[i,j]);
 for i := 0 to 2 do
  begin
  k[i] := 0;
  t[i] := false;
  end;
 
 for i := 1 to 3 do
 for j := 1 to 3 do
   k[a[i,j]] := k[a[i,j]] + 1;
 
 for i := 1 to 3 do
   begin
   if (a[i,1] = a[i,2]) and (a[i,2] = a[i,3]) then
     t[a[i,1]] := true;
   if (a[1,i] = a[2,i]) and (a[2,i] = a[3,i]) then
     t[a[1,i]] := true;
   end;
 if (a[1,1] = a[2,2]) and (a[2,2] = a[3,3]) then
   t[a[2,2]] := true;
 if (a[3,1] = a[2,2]) and (a[2,2] = a[1,3]) then
   t[a[2,2]] := true;
 
 res := true;
 
 if (k[1] - k[2] > 1) or (k[1] - k[2] < 0) then
   res := false;
 
 if t[1] and ( t[2] or (k[1] = k[2]) ) then
   res := false;
 
 if res then
   writeln('YES')
 else
   writeln('NO')
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота