forked from kota/81SquareShogi
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Movement.as
executable file
·80 lines (70 loc) · 1.71 KB
/
Movement.as
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/**
* ...
* @author Default
* @version 0.1
*/
package {
import flash.geom.Point;
public class Movement {
private var _turn:int;
private var _from:Point;
private var _to:Point;
private var _koma:Koma;
private var _promote:Boolean;
private var _capture:Boolean;
private var _time:int;
public function Movement(turn:int, from:Point, to:Point, koma:Koma, promote:Boolean, capture:Boolean, time:int=0 ) {
_turn = turn;
_from = from;
_to = to;
_koma = koma;
_promote = promote;
_capture = capture;
_time = time;
}
private function toHumanCoordinates(p:Point):Point{
return new Point(9-p.x,p.y+1);
}
public function toCSA():String{
var from:Point;
if(_from.x > Kyokumen.HAND){
from = new Point(0,0);
} else {
from = toHumanCoordinates(_from);
}
var to:Point = toHumanCoordinates(_to);
var buff:String = _turn == 0 ? "+" : "-"
buff += from.x.toString() + from.y.toString() + to.x.toString() + to.y.toString();
if (_promote) {
buff += Kyokumen.koma_names[_koma.type + Koma.PROMOTE];
} else {
buff += Kyokumen.koma_names[_koma.type];
}
return buff;
}
public function get from():Point {
return this._from;
}
public function get to():Point {
return this._to;
}
public function get koma():Koma {
return this._koma;
}
public function get promote():Boolean {
return this._promote;
}
public function get capture():Boolean{
return this._capture;
}
public function set promote(v:Boolean):void {
this._promote = v;
}
public function get turn():int {
return this._turn;
}
public function get time():int {
return this._time;
}
}
}