コード例 #1
0
 private static void PlaceHorizonal(World world, int line, Position.Orientation orient)
 {
     for (int i = 0; i < ShogiEnvironment.Board_X; i++)
     {
         PlacePiece(world, i, line, orient);
     }
 }
コード例 #2
0
ファイル: Rectangle.cs プロジェクト: Nucleareal/QuantumShogi
 public bool YContains(Position p)
 {
     return NumberUtil.Contains(SY, EY, p.Y);
 }
コード例 #3
0
ファイル: Rectangle.cs プロジェクト: Nucleareal/QuantumShogi
 public bool XContains(Position p)
 {
     return NumberUtil.Contains(SX, EX, p.X);
 }
コード例 #4
0
ファイル: Rectangle.cs プロジェクト: Nucleareal/QuantumShogi
 public bool Contains(Position p)
 {
     return XContains(p) && YContains(p);
 }
コード例 #5
0
ファイル: World.cs プロジェクト: Nucleareal/QuantumShogi
 private double GetRect(Position.Orientation orient)
 {
     switch (orient)
     {
         case Position.Orientation.Up: return PI(0D);
         case Position.Orientation.Down: return PI(1D);
         //case Position.Orientation.Left: return PI(0.5D);
         //case Position.Orientation.Right: return PI(1.5D);
     }
     return double.NaN;
 }
コード例 #6
0
ファイル: World.cs プロジェクト: Nucleareal/QuantumShogi
 private int GetPlayerNumber(Position.Orientation orient)
 {
     switch (orient)
     {
         case Position.Orientation.Up: return 0;
         case Position.Orientation.Down: return 1;
     }
     return -1;
 }
コード例 #7
0
ファイル: World.cs プロジェクト: Nucleareal/QuantumShogi
 public void PlacePiece(int x, int y, Position.Orientation orient)
 {
     if (orient == Position.Orientation.None)
     {
         Board[x, y] = new Piece(-1);
     }
     else
     {
         Board[x, y] = new Piece(PieceCounter++);
     }
     Board[x, y].Pos = new Position(x, y, orient);
 }
コード例 #8
0
ファイル: World.cs プロジェクト: Nucleareal/QuantumShogi
        public void OnClick(int Code)
        {
            if (mx < 0) return;
            rx = mx / ShogiEnvironment.Piece.SizeX;
            ry = my / ShogiEnvironment.Piece.SizeY;
            if (Code == (int)MouseCode.LEFTCLICK)
            {
                if (ClickedList.Count > 0)
                {
                    Position pos = new Position(rx, ry, Position.Orientation.None);

                    if (ClickedList.Contains(pos))
                    {
                        Move(cx, cy, rx, ry);
                    }
                    ClickedList.Clear();
                }
                else
                {
                    ClickedList.Clear();
                    foreach (var v in Board[rx, ry].AllTypes)
                    {
                        List<Position> res = v.Moving(this, Board[rx, ry]);
                        foreach (var r in res)
                            if (!ClickedList.Contains(r))
                                ClickedList.Add(r);
                    }
                }
            }
            cx = rx;
            cy = ry;
        }
コード例 #9
0
 private static void PlacePiece(World world, int x, int y, Position.Orientation orient)
 {
     world.PlacePiece(x, y, orient);
 }
コード例 #10
0
ファイル: Position.cs プロジェクト: Nucleareal/QuantumShogi
 public Position(Position p)
     : this(p.X, p.Y, p.Orient)
 {
 }