コード例 #1
0
        private ESTAT_JOC EsGuanyador(int r, int c)
        {   //  0 1 2 3 4
            //  X X x X O
            //  O O x O O
            //  O O O O O
            //  O O O O O
            //  O O O O O


            CASELLA player = tauler[r, c];

            //r  c      r  c     r   c     r   c
            int[,] direccions = { { 0, 1 }, { 1, 0 }, { 1, 1 }, { 1, -1 } };
            //  0 1
            //  1 0
            //  1 1
            //  1 -1

            for (int d = 0; d < direccions.GetLength(0); d++)
            {
                int seguidesPositiu = scanner(r, c, player, direccions[d, 0], direccions[d, 1]);
                int seguidesNegatiu = scanner(r, c, player, -direccions[d, 0], -direccions[d, 1]);
                if (seguidesPositiu + seguidesNegatiu - 1 == INLINE)
                {
                    return(ESTAT_JOC.WIN);
                }
            }
            if (casellesPlenes == N * N)
            {
                //empat
                return(ESTAT_JOC.TIE);
            }
            return(ESTAT_JOC.TO_BE_CONTINUED);
        }
コード例 #2
0
        int scanner(int r, int c, CASELLA player, int dr, int dc)
        {
            int seguides = 0;

            while (c >= 0 && r >= 0 && c < N && r < N && tauler[r, c] == player)
            {
                r += dr;
                c += dc;
                seguides++;
            }
            return(seguides);
        }
コード例 #3
0
 private void gameOverWin(CASELLA c)
 {
     gameOverAsync("Has guanyat!", "Felicitats player " + c.ToString());
 }