Example #1
0
    private void OnBoardChanged(ushort slateIndex, MatchModel.SlateStatus slateStatus)
    {
        Debug.Log("board changed " + slateIndex + " changed to " + slateStatus);

        SlateIndex  = slateIndex;
        SlateStatus = slateStatus;
    }
Example #2
0
        public static void TestWinners()
        {
            MatchModel.SlateStatus[] arr = new MatchModel.SlateStatus[9];
            ushort winnerID = 0;

            if (GetWinner(arr, 1, 2, out winnerID))
            {
                Console.WriteLine($"A winner: {winnerID}");
            }
            else
            {
                Console.WriteLine($"A no winner");
            }

            arr[0] = MatchModel.SlateStatus.PLAYER1;
            arr[1] = MatchModel.SlateStatus.PLAYER1;
            arr[2] = MatchModel.SlateStatus.PLAYER1;

            if (GetWinner(arr, 1, 2, out winnerID))
            {
                Console.WriteLine($"B winner: {winnerID}");
            }
            else
            {
                Console.WriteLine($"B no winner");
            }

            arr[0] = MatchModel.SlateStatus.PLAYER2;
            arr[1] = MatchModel.SlateStatus.PLAYER1;
            arr[2] = MatchModel.SlateStatus.PLAYER2;
            arr[3] = MatchModel.SlateStatus.NONE;
            arr[4] = MatchModel.SlateStatus.PLAYER2;
            arr[5] = MatchModel.SlateStatus.NONE;
            arr[6] = MatchModel.SlateStatus.PLAYER1;
            arr[7] = MatchModel.SlateStatus.NONE;
            arr[8] = MatchModel.SlateStatus.PLAYER2;

            if (GetWinner(arr, 1, 2, out winnerID))
            {
                Console.WriteLine($"C winner: {winnerID}");
            }
            else
            {
                Console.WriteLine($"C no winner");
            }
        }
Example #3
0
    void Update()
    {
        if (SlateStatus != MatchModel.SlateStatus.NONE)
        {
            GameObject pawnGO;
            if (SlateStatus == MatchModel.SlateStatus.MINE)
            {
                // my pawn
                pawnGO = Instantiate(MyPawnSample);
            }
            else
            {
                // his pawn
                pawnGO = Instantiate(HisPawnSample);
            }

            GameObject slate = SlateGameObjects[SlateIndex];
            pawnGO.transform.parent        = slate.transform;
            pawnGO.transform.localPosition = new Vector3();

            SlateStatus = MatchModel.SlateStatus.NONE;

            Debug.Log("current turn is: " + MatchModel.CurrentMatch.CurrentPlayerClientID + " i'm: " + NetworkingManager.Instacne.ClientID);

            SetPlayerTurn(MatchModel.CurrentMatch.CurrentPlayerClientID == NetworkingManager.Instacne.ClientID);

            if (MatchModel.CurrentMatch.Win)
            {
                // match ended, we have a winner
                winPanel.SetActive(true);
                winText.text = MatchModel.CurrentMatch.IWin ? "Yah, dique que tu si y uno no y uuuuuu" : "Tu no sirve manin";
            }
            else if (MatchModel.CurrentMatch.Draw)
            {
                winPanel.SetActive(true);
                winText.text = "Hay bobop (en online ;3)";
            }
        }
    }
Example #4
0
    void Update()
    {
        if (SlateStatus != MatchModel.SlateStatus.NONE)
        {
            GameObject pawnGO;
            if (SlateStatus == MatchModel.SlateStatus.MINE)
            {
                // my pawn
                pawnGO = Instantiate(MyPawnSample);
            }
            else
            {
                // his pawn
                pawnGO = Instantiate(HisPawnSample);
            }

            GameObject slate = SlateGameObjects[SlateIndex];
            pawnGO.transform.parent        = slate.transform;
            pawnGO.transform.localPosition = new Vector3();

            SlateStatus = MatchModel.SlateStatus.NONE;

            Debug.Log("current turn is: " + MatchModel.CurrentMatch.CurrentPlayerClientID + " i'm: " + NetworkingManager.Instacne.ClientID);

            SetPlayerTurn(MatchModel.CurrentMatch.CurrentPlayerClientID == NetworkingManager.Instacne.ClientID);

            if (MatchModel.CurrentMatch.Win)
            {
                // match ended, we have a winner
                winPanel.SetActive(true);
                winText.text = MatchModel.CurrentMatch.IWin ? "I WON!" : "I'm a loser!";
            }
            else if (MatchModel.CurrentMatch.Draw)
            {
                winPanel.SetActive(true);
                winText.text = "we both are losers";
            }
        }
    }
Example #5
0
        public static bool GetWinner(MatchModel.SlateStatus[] slates, ushort player1ClientID, ushort player2ClientID, out ushort winnerClientID)
        {
            if (indexs == null)
            {
                // create win rows/columns/diagonal

                indexs = new List <int[]>();
                // horizontal rows
                indexs.Add(new int[3] {
                    0, 1, 2
                });
                indexs.Add(new int[3] {
                    3, 4, 5
                });
                indexs.Add(new int[3] {
                    6, 7, 8
                });

                // vertical columns
                indexs.Add(new int[3] {
                    0, 3, 6
                });
                indexs.Add(new int[3] {
                    1, 4, 7
                });
                indexs.Add(new int[3] {
                    2, 5, 8
                });

                // diagonal
                indexs.Add(new int[3] {
                    0, 4, 8
                });
                indexs.Add(new int[3] {
                    2, 4, 6
                });
            }

            winnerClientID = 0;

            foreach (int[] line in indexs)
            {
                MatchModel.SlateStatus status = slates[line[0]];
                if (status == MatchModel.SlateStatus.NONE)
                {
                    continue;
                }
                if (slates[line[1]] == status && slates[line[2]] == status)
                {
                    // we have a winner
                    if (status == MatchModel.SlateStatus.PLAYER1)
                    {
                        winnerClientID = player1ClientID;
                    }
                    else
                    {
                        winnerClientID = player2ClientID;
                    }

                    return(true);
                }
            }

            return(false);
        }