Example #1
0
    public void UpdateGrid(TetrominoOnLANV2 tetromino, string IdPlayer)    //заполнение массива grid
    {
        Debug.Log(DateTime.Now.ToString("hh:mm:ss:ffff") + ": Обновление внутренней информации об " + tetromino.name + " с id: " + IdPlayer + " в игровом поле");

        int num = GetNumPlayer(IdPlayer);

        for (int x = 0; x < gridArr[num].GetLength(0); x++)
        {
            for (int y = 0; y < gridArr[num].GetLength(1); y++)
            {
                if (gridArr[num][x, y] != null)
                {
                    if (gridArr[num][x, y].parent == tetromino.transform)
                    {
                        gridArr[num][x, y] = null;

                        Debug.Log(DateTime.Now.ToString("hh:mm:ss:ffff") + ": Очищена устаревшая внутренняя информация об " + tetromino.name
                                  + " с id: " + IdPlayer + " в ячейке"
                                  + " Х: " + x
                                  + " Y: " + y);
                    }
                }
            }
        }

        Debug.Log(DateTime.Now.ToString("hh:mm:ss:ffff") + ": Удалена устаревшая внутренняя информация об " + tetromino.name + " с id: " + IdPlayer + " в игровом поле");

        foreach (Transform mino in tetromino.transform)
        {
            Vector2 pos = RoundVec2(mino.position);
            Vector2 vec = new Vector2(pos.x - num * shiftFactorFrame, pos.y);

            if (ToLowerCoordinates(pos).y < gridMaxHeight && ToLowerCoordinates(vec).x < gridMaxWidth && ToLowerCoordinates(vec).x >= 0)
            {
                gridArr[num][(int)(ToLowerCoordinates(vec).x), (int)(ToLowerCoordinates(vec).y)] = mino;

                Debug.Log(DateTime.Now.ToString("hh:mm:ss:ffff") + ": Внесенна новая внутренняя информация об " + tetromino.name
                          + " с id: " + IdPlayer + " в ячейке"
                          + " Х: " + ((int)vec.x / stepSize)
                          + " Y: " + ((int)vec.y / stepSize));
            }
        }

        Debug.Log(DateTime.Now.ToString("hh:mm:ss:ffff") + ": Внесенна новая внутренняя информация об " + tetromino.name + " с id: " + IdPlayer + " в игровом поле");
    }
Example #2
0
    public bool ItGameOver(TetrominoOnLANV2 tetromino)     //Проверка на проигрыш
    {
        int num = GetNumPlayer(tetromino.IdPlayer);

        Debug.Log(DateTime.Now.ToString("hh:mm:ss:ffff") + ": Проверка на проигрыш для " + num + " игрока");

        for (int x = 0; x < gridMaxWidth; x++)
        {
            foreach (Transform tetramino in tetromino.transform)
            {
                Vector2 vec = RoundVec2(tetramino.position);
                if (ToLowerCoordinates(vec).y > gridMaxHeight - 1)
                {
                    Debug.Log(DateTime.Now.ToString("hh:mm:ss:ffff") + ": Проверка на проигрыш дала результат: " + num + " игрок проиграл");

                    return(true);
                }
            }
        }

        Debug.Log(DateTime.Now.ToString("hh:mm:ss:ffff") + ": Проверка на проигрыш дала результат: " + num + " игрок НЕ проиграл");
        return(false);
    }