Ejemplo n.º 1
0
 public void Enter(OthelloRuleManager manager)
 {
     active = true;
     if (!manager.ReverseDiskExists())
     {
         GameManager.Instance.NextTurn();
     }
 }
Ejemplo n.º 2
0
    public void Init()
    {
        ruleManager = new OthelloRuleManager();
        view        = new View();
        currentTurn = new Player(Color.Black);
        nextTurn    = new Player(Color.White);

        ruleManager.OnFinished += Finish;
    }
Ejemplo n.º 3
0
    public override void Execute(OthelloRuleManager manager)
    {
        if (GameManager.Instance.IsFinished)
        {
            return;
        }
        if (!active)
        {
            return;
        }

        int x, y;

        while (true)
        {
            try
            {
                var line      = Console.ReadLine();
                var coodinate = line.Split(',');
                if (coodinate.Length != 2)
                {
                    Console.WriteLine("Usage for this format.");
                    Console.WriteLine("Example: 2,3");
                    continue;
                }

                x = Int32.Parse(coodinate[0]);
                y = Int32.Parse(coodinate[1]);

                if (manager.CanPut(x, y))
                {
                    break;
                }

                Console.WriteLine("You don't put here.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
            }
        }

        manager.Put(this, x, y);
        GameManager.Instance.NextTurn();
    }
Ejemplo n.º 4
0
 public abstract void Execute(OthelloRuleManager manager);
Ejemplo n.º 5
0
    public void Exit(OthelloRuleManager manager)
    {
        active = false;

        manager.CountDisks();
    }