示例#1
0
    static private MinoKind GetNextMino(List <MinoKind> left)
    {
        if (left.Count == 0)
        {
            left.AddRange(Mino7Bag);
        }

        Random   random      = new Random();
        int      index       = random.Next(0, left.Count);
        MinoKind returnValue = left[index];

        left.RemoveAt(index);

        return(returnValue);
    }
示例#2
0
 public Mino(Vector2[] positions, Rotate rotation, MinoKind kind)
 {
     this.positions = positions;
     this.rotation  = rotation;
     this.kind      = kind;
 }
示例#3
0
    /// <summary>
    /// ミノを生成する
    /// </summary>
    /// <param name="kind">ミノの種類</param>
    /// <returns>Minoオブジェクト</returns>
    static public Mino CreateMino(MinoKind kind)
    {
        Mino mino = new Mino();

        mino.kind      = kind;
        mino.rotation  = Rotate.Zero;
        mino.positions = new Vector2[4];

        switch (kind)
        {
        case MinoKind.I:
            mino.positions[0] = new Vector2(3, 19);
            mino.positions[1] = new Vector2(4, 19);
            mino.positions[2] = new Vector2(5, 19);
            mino.positions[3] = new Vector2(6, 19);
            break;

        case MinoKind.O:
            mino.positions[0] = new Vector2(4, 19);
            mino.positions[1] = new Vector2(5, 19);
            mino.positions[2] = new Vector2(4, 20);
            mino.positions[3] = new Vector2(5, 20);
            break;

        case MinoKind.T:
            mino.positions[0] = new Vector2(4, 20);
            mino.positions[1] = new Vector2(3, 19);
            mino.positions[2] = new Vector2(4, 19);
            mino.positions[3] = new Vector2(5, 19);
            break;

        case MinoKind.S:
            mino.positions[0] = new Vector2(4, 20);
            mino.positions[1] = new Vector2(5, 20);
            mino.positions[2] = new Vector2(3, 19);
            mino.positions[3] = new Vector2(4, 19);
            break;

        case MinoKind.Z:
            mino.positions[0] = new Vector2(3, 20);
            mino.positions[1] = new Vector2(4, 20);
            mino.positions[2] = new Vector2(4, 19);
            mino.positions[3] = new Vector2(5, 19);
            break;

        case MinoKind.L:
            mino.positions[0] = new Vector2(5, 20);
            mino.positions[1] = new Vector2(3, 19);
            mino.positions[2] = new Vector2(4, 19);
            mino.positions[3] = new Vector2(5, 19);
            break;

        case MinoKind.J:
            mino.positions[0] = new Vector2(3, 20);
            mino.positions[1] = new Vector2(3, 19);
            mino.positions[2] = new Vector2(4, 19);
            mino.positions[3] = new Vector2(5, 19);
            break;

        case MinoKind.Empty:
            throw new Exception();
        }

        return(mino);
    }