Kso57
05.03.2023 08:40

НА ЯЗЫКЕ PYTHON Поиграем в игру "Змейка". Змейка ходит по прямоугольному полю и собирает еду. Змейка занимает незамкнутую цепочку клеток. Две соседние клетки змейки имеют одну общую сторону. Еда занимает одну клетку. Змейка ест только своей головой. Съеденная клетка становится частью змейки. Змейка не может выходить за границы поля. Змейка может находиться на любой клетке, если это не запрещено перечисленными выше условиями.

На вход подается прямоугольное поле: количество строк (до 100) и количество столбцов (до 100), за ними по строкам подаются числа 0, 1, 2, 3. 0 означает, что в текущей клетке нет еды и нет змейки. 1 означает, что в текущей клетке находится еда и нет змейки. 2 или 3 означает, что в текущей клетке находится змейка. 3 означает, что в клетке находится голова змейки.

Программа должна составить действия змейки, чтобы та съела всю еду, или определить, что съесть всю еду нельзя. Условимся, что клетка поля с минимальными координатами находится сверху слева, а клетка поля с максимальными координатами находится снизу справа. Тогда действие 0 означает движение головы на соседнюю клетку сверху, действие 1 означает движение головы на соседнюю клетку слева, действие 2 означает движение головы на соседнюю клетку внизу, действие 3 означает движение головы на соседнюю клетку справа. Голова может переместиться только на пустую клетку или клетку с едой.

Fарантируется что по исходным данным положение змейки определяется однозначно

Программа печатает последовательность чисел 0, 1, 2, 3, если можно съесть всю еду, и -1 иначе.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
тто
21.05.2023 14:03
1) F=Av(¬A&B)
По закону дистрибутивности раскроем скобки
(Av¬A)&(AvB)
Av¬A = 1, значит остаётся AvB

2) F =A&(¬AvB)
По тому же закону раскрываем скобки
(A&¬A)v(A&B)
A&¬A = 0, значит остаётся A&B

3. (AvB)&(¬BvA)&(¬CvB)
По закону склеивания (AvB)&(¬BvA) = A , получается, что выражение принимает вид
A&(¬CvB)
Можно раскрыть скобки, получим
A&¬C v A&B

4) F =(1v(AvB))v((AC)&1) 
Скобка (1v(AvB)) = 1, так как 1 v ЧТОУГОДНО = 1
Получаем выражение
1v((AC)&1) = 1, так как 1 v ЧТОУГОДНО = 1
ответ 1
0,0(0 оценок)
Ответ:
bopoh234567
03.07.2022 05:33
Program pr;
uses crt;

Var mas:array[1..1000, 1..1000] of integer;
N,M,i,j,k:integer;

Begin
Writeln('Введите размер матрицы N*M');
Write('N = ');
readln(N);
Write('M = ');
readln(M);

if (M>1000) or (N>1000) or (M<1) or (N<1)
then  
Writeln('Ошибка, указанные значения выходят за пределы матрицы')   else   
        Begin      
 Writeln('Введите элементы матрицы');      

k:=0; 
 for i:=1 to N do     
  for j:=1 to M do     
    Begin     
      readln(mas[i,j]);       
      if (mas[i,j] mod 2 = 0) then k:=k+1;     
    end; 
  
    Writeln();   
    Writeln('Исходная матрица');
   
   for i:=1 to N do   
     Begin     
       for j:=1 to M do     
          Begin     
             Write(mas[i,j], ' ')     
           end;     
      Writeln();   
     end;         

Writeln();   
Writeln('Количество четных элементов = ',k);      
 end;

readln;
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота