Advertisement
Guest User

Untitled

a guest
Dec 6th, 2013
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. class Program
  4. {
  5.     static int numberOfKnights(int[,] matr)
  6.     {
  7.         int count = 0;
  8.         for (int i = 0; i < 8; i++)
  9.         {
  10.             for (int j = 0; j < 8; j++)
  11.             {
  12.                 if (matr[i, j] == 1) count++;
  13.             }
  14.         }
  15.         return count;
  16.     }
  17.  
  18.     static int sumFromMatrix(int[,] matr)
  19.     {
  20.         int sum = 0;
  21.         for (int i = 0; i < 8; i++)
  22.         {
  23.             for (int j = 0; j < 8; j++)
  24.             {
  25.                 sum += matr[i, j] * (1 << (7 - j));
  26.             }
  27.         }
  28.         return sum;
  29.     }
  30.  
  31.     static int getBit(int number, int position)
  32.     {
  33.         return (number >> position) & 1;
  34.     }
  35.     static void Main(string[] args)
  36.     {
  37.         int[,] field = new int[8, 8];
  38.         for (int i = 0; i < 8; i++)
  39.         {
  40.             int currentNumber = int.Parse(Console.ReadLine());
  41.             for (int j = 0; j < 8; j++)
  42.             {
  43.                 field[7 - i, j] = getBit(currentNumber, 7 - j);
  44.             }
  45.         }
  46.  
  47.         int initialKnights = numberOfKnights(field);
  48.         int fallen = 0;
  49.         while (true)
  50.         {
  51.             string command = Console.ReadLine();
  52.             if (command == "end") break;
  53.             int attackerRow = 7 - int.Parse(Console.ReadLine());
  54.             int attackerColumn = int.Parse(Console.ReadLine());
  55.             command = Console.ReadLine();
  56.             int defenderRow = 7 - int.Parse(Console.ReadLine());
  57.             int defenderColumn = int.Parse(Console.ReadLine());
  58.  
  59.             field[attackerRow, attackerColumn] = 0;
  60.  
  61.             if (defenderColumn < 0 || defenderColumn > 7)
  62.             {
  63.                 if (defenderRow == 7 || defenderRow == 6) fallen++;
  64.                 continue;
  65.             }
  66.  
  67.             if (command == "kill")
  68.             {
  69.                 if (field[defenderRow, defenderColumn] == 0)
  70.                 {
  71.                     if ((defenderColumn != 0 && field[defenderRow, defenderColumn - 1] == 1) && !(defenderColumn != 7 && field[defenderRow, defenderColumn + 1] == 1))
  72.                     {
  73.                         field[defenderRow, defenderColumn - 1] = 0;
  74.                         continue;
  75.                     }
  76.                     if (!(defenderColumn != 0 && field[defenderRow, defenderColumn - 1] == 1) && (defenderColumn != 7 && field[defenderRow, defenderColumn + 1] == 1))
  77.                     {
  78.                         field[defenderRow, defenderColumn + 1] = 0;
  79.                         continue;
  80.                     }
  81.                     if (!(defenderColumn != 0 && field[defenderRow, defenderColumn - 1] == 1) && !(defenderColumn != 7 && field[defenderRow, defenderColumn + 1] == 1))
  82.                     {
  83.                         field[defenderRow, defenderColumn] = 1;
  84.                     }
  85.                 }
  86.             }
  87.  
  88.             if (command == "move")
  89.             {
  90.                 if ((!(defenderColumn != 0 && field[defenderRow, defenderColumn - 1] == 1) && !(defenderColumn != 7 && field[defenderRow, defenderColumn + 1] == 1)))
  91.                 {
  92.                     field[defenderRow, defenderColumn] = 1;
  93.                 }
  94.             }
  95.         }
  96.  
  97.         Console.WriteLine(initialKnights);
  98.         Console.WriteLine(numberOfKnights(field) + fallen);
  99.         Console.WriteLine(sumFromMatrix(field));
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement