namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter04.Listing04_51
{
    public class Program
    {
        public static void Main()
        {
            string input = "";

            int shifter; // Liczba pozycji, o jaką należy przesunąć maskę,
                         // by ustawić bit.
            int position; // Ustawiany bit.

            // Wywołanie int.Parse() przekształca wartość zmiennej input na liczbę całkowitą.
            // Wywołanie "int.Parse(input) – 1" jest potrzebne, ponieważ 
            // tablice są indeksowane od zera.
            shifter = int.Parse(input) - 1;

            // Przesunięcie maski 00000000000000000000000000000001
            // o wartość zmiennej shifter.
            position = 1 << shifter;

            // Wykonanie operacji OR na polach wcześniej zaznaczonych przez gracza
            // i na nowym polu.
            // Ponieważ zmienna currentPlayer ma wartość 1 lub 2,
            // należy odjąć 1, by wykorzystać wartość tej zmiennej jako
            // indeks w indeksowanej od 0 tablicy.
            playerPositions[currentPlayer - 1] |= position;
        }

        public static int[] playerPositions { get; set; }
        public static int currentPlayer { get; set; }
    }
}
