• укажите все клетки шахматного поля, находящиеся под боем коня, заданного координатами на шахматном поле. В Паскаль

Ответы 1

  • // PascalABC.NET 3.2, сборка 1437 от 03.05.2017// Внимание! Если программа не работает, обновите версию!type  tField=(char,integer);function GetNewField(oldfld:tField;x,y:integer;var newfld:tField):boolean;begin  Result:=true;  var xo:=oldfld[0];  case xo.ToLower of  'a':    case x of    -2,-1:Result:=false;    1:newfld:=(Succ(xo),0);    2:newfld:=(Succ(Succ(xo)),0)    end;  'b':    case x of    -2:Result:=false;    -1:newfld:=(Pred(xo),0);    1:newfld:=(Succ(xo),0);    2:newfld:=(Succ(Succ(xo)),0)    end;  'g':    case x of    -2:newfld:=(Pred(Pred(xo)),0);    -1:newfld:=(Pred(xo),0);    1:newfld:=(Succ(xo),0);    2:Result:=false    end;  'h':    case x of    -2:newfld:=(Pred(Pred(xo)),0);    -1:newfld:=(Pred(xo),0);    1,2:Result:=false    end;  else    case x of    -2:newfld:=(Pred(Pred(xo)),0);    -1:newfld:=(Pred(xo),0);    1:newfld:=(Succ(xo),0);    2:newfld:=(Succ(Succ(xo)),0)    end  end;  if Result=true then begin    var yo:=oldfld[1];    case yo of    1:      case y of      -2,-1:Result:=false;      else newfld:=(newfld[0],yo+y);      end;    2:      case y of      -2:Result:=false;      else newfld:=(newfld[0],yo+y);      end;    7:      case y of      -2,-1,1:newfld:=(newfld[0],yo+y);      2:Result:=false      end;    8:      case y of      -2,-1:newfld:=(newfld[0],yo+y);      1,2:Result:=false      end    else      newfld:=(newfld[0],yo+y);    end  endend;begin  var ax:=Arr(-2,-1,1,2);  var ay:=ax;  var s:=ReadlnString('Укажите клетку, на которой стоит конь');  var f1,f2:tField;  f1:=(s[1],s[2].ToDigit);  foreach var x in ax do    foreach var y in ay do      if abs(x)+abs(y)=3 then        if GetNewField(f1,x,y,f2) then Print(f2[0]+f2[1]);  Writelnend.ПримерыУкажите клетку, на которой стоит конь b1a3 c3 d2Укажите клетку, на которой стоит конь C5A4 A6 B3 B7 D3 D7 E4 E6
    answer img
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years