Exemple #1
0
    private void SpawnAllChesmans()
    {
        activeChessman = new List <GameObject>();
        Chessmens      = new Chessmen[8, 8];
        EnPassantMove  = new int[2] {
            -1, -1
        };

        //Spawn the white team!
        //King
        SpawnChessman(0, 3, 0);

        //Queen
        SpawnChessman(1, 4, 0);

        //Rooks
        SpawnChessman(2, 0, 0);
        SpawnChessman(2, 7, 0);

        //Bishops
        SpawnChessman(3, 2, 0);
        SpawnChessman(3, 5, 0);

        //Knights
        SpawnChessman(4, 1, 0);
        SpawnChessman(4, 6, 0);

        //Pawns
        for (int i = 0; i < 8; i++)
        {
            SpawnChessman(5, i, 1);
        }

        //Spawn the black team!
        //King
        SpawnChessman(6, 4, 7);

        //Queen
        SpawnChessman(7, 3, 7);

        //Rooks
        SpawnChessman(8, 0, 7);
        SpawnChessman(8, 7, 7);

        //Bishops
        SpawnChessman(9, 2, 7);
        SpawnChessman(9, 5, 7);

        //Knights
        SpawnChessman(10, 1, 7);
        SpawnChessman(10, 6, 7);

        //Pawns
        for (int i = 0; i < 8; i++)
        {
            SpawnChessman(11, i, 6);
        }
    }
Exemple #2
0
    private void MoveChessmen(int x, int y)
    {
        if (allowedMoves[x, y])
        {
            Chessmen c = Chessmens[x, y];

            if (c != null && c.isWite != isWiteTurn)
            {
                //Caprure a piece

                //If it is a king
                if (c.GetType() == typeof(Korol))
                {
                    EndGame();
                    return;
                }

                activeChessman.Remove(c.gameObject);
                Destroy(c.gameObject);
            }

            if (selectedChessmen.GetType() == typeof(Peshka))
            {
                if (y == 7)
                {
                    activeChessman.Remove(selectedChessmen.gameObject);
                    Destroy(selectedChessmen.gameObject);
                    SpawnChessman(1, x, y);
                    selectedChessmen = Chessmens[x, y];
                }
                else if (y == 0)
                {
                    activeChessman.Remove(selectedChessmen.gameObject);
                    Destroy(selectedChessmen.gameObject);
                    SpawnChessman(7, x, y);
                }
            }


            Chessmens[selectedChessmen.CurrentX, selectedChessmen.CurrentY] = null;
            selectedChessmen.transform.position = GetTileCenter(x, y);
            selectedChessmen.SetPosition(x, y);
            Chessmens[x, y] = selectedChessmen;
            isWiteTurn      = !isWiteTurn;
        }

        selectedChessmen.GetComponent <MeshRenderer>().material = previousMat;
        BoardHighlights.Instance.Hidenhighlights();
        selectedChessmen = null;
    }
Exemple #3
0
    private void SelectChessmen(int x, int y)
    {
        if (Chessmens[x, y] == null)
        {
            return;
        }

        if (Chessmens[x, y].isWite != isWiteTurn)
        {
            return;
        }

        bool hasAtLeastOneMove = false;

        allowedMoves = Chessmens[x, y].PossibleMove();
        for (int i = 0; i < 8; i++)
        {
            for (int j = 0; j < 8; j++)
            {
                if (allowedMoves[i, j])
                {
                    hasAtLeastOneMove = true;
                }
            }
        }
        if (!hasAtLeastOneMove)
        {
            return;
        }


        allowedMoves            = Chessmens[x, y].PossibleMove();
        selectedChessmen        = Chessmens[x, y];
        previousMat             = selectedChessmen.GetComponent <MeshRenderer>().material;
        selectedMat.mainTexture = previousMat.mainTexture;
        selectedChessmen.GetComponent <MeshRenderer>().material = selectedMat;
        BoardHighlights.Instance.HighlightAllowedMoves(allowedMoves);
    }
Exemple #4
0
 public void Eat(Chessmen who)
 {
     who.IsAlive = false;
 }
Exemple #5
0
 public void Move(Chessmen who)
 {
     who.X += 2;
     who.Y += 2;
 }