Advertisement
lPestl

Untitled

Oct 21st, 2018
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '              04. Метод "Строковый анализатор"
  2.  
  3. Module Program
  4.     '  Функция подсчета ходов
  5.    Function CalcPacManPath(width As Int32, height As Int32, row As Int32, column As Int32) As UInt64
  6.         Dim count As UInt64 = 0     ' количество шагов (счетчик)
  7.        Dim indexRow As Int32 = 1   ' индекс текущей строки
  8.        ' Пройдем по строка с низу до текущей
  9.        While indexRow < row
  10.             ' прибавляя количество съеденных объектов в полной строке
  11.            count += width
  12.             indexRow += 1
  13.         End While
  14.         ' Если текущая строка - четная
  15.        If indexRow Mod 2 = 0 Then
  16.             count += width - (column - 1)   ' Добавляем часть строки справа от точки
  17.        Else                                ' иначе
  18.            count += column                 ' добавляем левую часть
  19.        End If
  20.         ' Вернем значение
  21.        Return count
  22.     End Function
  23.  
  24.     ' Tests
  25.    Sub Main()
  26.         Dim N As Int32 = 3
  27.         Dim M As Int32 = 3
  28.         Dim row As Int32 = 1
  29.         Dim column As Int32 = 1
  30.         Console.WriteLine($"N x M = {N} x {M};")
  31.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  32.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  33.        
  34.         row = 1
  35.         column = 2
  36.         Console.WriteLine($"N x M = {N} x {M};")
  37.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  38.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  39.        
  40.         row = 1
  41.         column = 3
  42.         Console.WriteLine($"N x M = {N} x {M};")
  43.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  44.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  45.        
  46.         row = 2
  47.         column = 3
  48.         Console.WriteLine($"N x M = {N} x {M};")
  49.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  50.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  51.        
  52.         row = 2
  53.         column = 2
  54.         Console.WriteLine($"N x M = {N} x {M};")
  55.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  56.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  57.        
  58.         row = 2
  59.         column = 1
  60.         Console.WriteLine($"N x M = {N} x {M};")
  61.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  62.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  63.        
  64.         row = 3
  65.         column = 1
  66.         Console.WriteLine($"N x M = {N} x {M};")
  67.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  68.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  69.        
  70.         row = 3
  71.         column = 2
  72.         Console.WriteLine($"N x M = {N} x {M};")
  73.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  74.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  75.        
  76.         row = 3
  77.         column = 3
  78.         Console.WriteLine($"N x M = {N} x {M};")
  79.         Console.WriteLine($"ROW x COLUMN = {row} x {column}")
  80.         Console.WriteLine($"Answer = {CalcPacManPath(N, M, row, column)} ")
  81.     End Sub
  82.  
  83. End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement