рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реАрдЦреЗрдВ, рд╕реЛрдХреЛрдмрди рд▓рд┐рдЦреЗрдВ

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЕрднреА рднреА рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рдмреИрд╢ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдЙрдирдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЬреАрдм рд▓рдЧрддреА рд╣реИред рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдмреИрд╢ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдЧреЗрдо рд╕реЛрдХреЛрдмрди (рдпрд╛ рд▓реЛрдбрд░, рдЬреИрд╕рд╛ рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИ) рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



рдореБрдЦреНрдп рдмрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ


рдЪрд░ рдореЗрдВ рдЪрд░

рдмреИрд╢ рдореЗрдВ рдХреЛрдИ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рднреА, рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:
y=11 # B="" #    x = 3 #  -  

рдПрдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдбреЙрд▓рд░ рдЪрд┐рд╣реНрди рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЪрд░ рдирд╛рдо рдХреЛ рдШреЗрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░ рдХрднреА-рдХрднреА рдЖрд╡рд╢реНрдпрдХ) рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрднреА рднреА рдЙрджреНрдШрд╛рдЯрди рдмреНрд░реИрдХреЗрдЯ рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдбреЙрд▓рд░ рдХрд╛ рдЪрд┐рд╣реНрди рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди (рдкреВрд░реНрдгрд╛рдВрдХ) рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 r=$(( $x + $y )) #        r=$(( ${x} + ${y} )) #    

рдмреИрд╢ рдореЗрдВ рдРрд░реЗ рдХреЗрд╡рд▓ рдПрдХ рдЖрдпрд╛рдореА рд╣реИрдВ, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдмреИрдЪреЛрдВ рдореЗрдВ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ:
 map[3]=4 map[${r}]="_" map=( 1 2 3 4 5 6 ) #    


рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ

рдЗрдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрд╕реНрдХреЗрдк рд╕реАрдХреНрд╡реЗрдВрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
 echo "Hello, world!" #, ! echo -en "\E[3;3f Hello, world!" #     (3;3),      echo "${x}" #    echo -en "\E[${x};${y}f Hello!" #,       escape- 

рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рд░реАрдб рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
 read B # ,     B read -n 1 B #      read -t 1 -n 1 B #        


рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрд░рдЪрдирд╛рдУрдВ

рдпрджрд┐-рддреЛ-рдФрд░ рдирд┐рд░реНрдорд╛рдг:
 if [[ "$B" = "Q" ]] # ,       then #  fi #  if [[ "$B" -eq 3 ]] #  then # fi #  

рдорд╛рдорд▓рд╛ рдФрд░ рдирд┐рд░реНрдорд╛рдг:
 while ( [ "$B" != "Q" ] ) do #  - ,       # done case "$B" in #  switch "W" ) 1;; #      "S" ) 2;; [QZ] ) 3;; #  ,    esac # case 

рд▓реВрдк рдХреЗ рд▓рд┐рдП:
 for (( value=1 ; value<LIMIT; value++ )) do # LIMIT -  # done 


рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХрдВрдкреНрдпреВрдЯрд░ рдЧреЗрдо рд╕реЛрдХреЛрдмрди


 #!/bin/bash #  Sokoban #    map=( WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWW _ _ _ WWWWWWWWWWWW WWWWW = _ _ WWWWWWWWWWWW WWWWW _ _ = WWWWWWWWWWWW WWW _ _ = _ = _ WWWWWWWWWWW WWW _ W _ WW _ WWWWWWWWWWW W _ _ _ W _ WW _ WWWWWW _ _ oo W W _ = _ _ = _ _ _ _ _ _ _ _ _ _ _ oo W WWWWW _ WWW _ W _ WWW _ _ oo W WWWWW _ _ _ _ _ WWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWW ) #     x=9 y=11 #       B,        B="" #   (     ) LIMIT=20 #  echo -en "\E[2J" #     while ( [ "$B" != "q" ] ) do #    for (( mx=1 ; mx<LIMIT; mx++ )) do for (( my=1 ; my<LIMIT; my++ )) do r=$(($mx*20+$my)) #    ,    echo -en "\E[${mx};${my}f${map[${r}]}" done done #      echo -en "\E[22;2fWASD - move, Q - quit" echo -en "\E[23;2fW - wall, X - hero, = and @ - chest, o - place for chest" #  -  (     ,   ) echo -en "\E[${x};${y}fX\E[${x};${y}f" #       B="" #    read -s -t 1 -n 1 B # ,        nx=0 ny=0 #  ,        case "$B" in [wW] ) nx=$(( - 1));; [sS] ) nx=$(( 1));; [aA] ) ny=$(( - 1));; [dD] ) ny=$(( 1));; # ,   -  CAPS LOCK [qQ] ) B="q";; esac #  ,      r=$(( ($x + $nx) * $LIMIT + $y + $ny )) #  -    r2=$(( ($x + $nx + $nx) * $LIMIT + $y + $ny +$ny )) #    ,  if [[ "${map[${r}]}" = "_" ]] then #    x=$(( $x + $nx )) y=$(( $y + $ny )) fi #       if [[ "${map[${r}]}" = "o" ]] then x=$(( $x + $nx )) y=$(( $y + $ny )) fi #,    ? if [[ "${map[${r}]}" = "=" ]] then #   ,    if [[ "${map[${r2}]}" = "_" ]] then map[${r2}]="=" map[${r}]="_" x=$(( $x + $nx )) y=$(( $y + $ny )) fi #     -    if [[ "${map[${r2}]}" = "o" ]] then map[${r2}]="@" map[${r}]="_" x=$(( $x + $nx )) y=$(( $y + $ny )) fi fi #  ,     if [[ "${map[${r}]}" = "@" ]] then #    - ,   if [[ "${map[${r2}]}" = "_" ]] then map[${r2}]="=" map[${r}]="o" x=$(( $x + $nx )) y=$(( $y + $ny )) fi #     -    if [[ "${map[${r2}]}" = "o" ]] then map[${r2}]="@" map[${r}]="o" x=$(( $x + $nx )) y=$(( $y + $ny )) fi fi #        done #   Q -       echo -en "\E[2J" 


рд╡рд╛рд╣! рд╕рдм рдХреБрдЫ рдкрд╕рдВрдж рд╣реИред рдмреЗрд╢рдХ, рдореИрдВ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдореИрдВ рдПрдХ 3 рдбреА рдЗрдВрдЬрди рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЖрд░реНрдХреЗрдб рдордВрдЪ рдЦреЗрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

Source: https://habr.com/ru/post/In120198/


All Articles