570 lines
19 KiB
Plaintext
570 lines
19 KiB
Plaintext
query field("e5") neighbors printstream count
|
|
|
|
open database g;
|
|
query readpgn('f:\sochi84.pgn') printstream count;
|
|
|
|
query readpgn('C:\secondo-sdk\secondo\Tests\Testspecs\chessalgebra\wjc.pgn') printstream count;
|
|
|
|
'wjc.pgn'
|
|
|
|
let wjc = readpgn('C:\secondo-sdk\secondo\Tests\Testspecs\chessalgebra\wjc.pgn') transformstream extend[No: seqnext()] consume
|
|
let twic = readpgn('F:\twic657.pgn') transformstream extend[No: seqnext()] consume;
|
|
let wjc = readpgn('/home/fp0708/Tests/Testspecs/chessalgebra/wjc.pgn') transformstream extend[No: seqnext()] consume;
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[1] pieces < wjc feed filter[.No = 2] extract[elem] getposition[28] pieces;
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getkey["Event"];
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getkey["Event"];
|
|
"WJun"
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getkey["Round"];
|
|
"1"
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getkey["ECO"];
|
|
"B47"
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getkey["Result"];
|
|
"0-1"
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getkey["Date"];
|
|
"2006.10.03"
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[5];
|
|
(6 ((9 5 7 11 13 7 0 9) (3 3 3 0 0 3 3 3) (0 0 0 0 0 5 0 0) (0 0 0 3 3 0 0 0) (0 0 2 0 0 0 0 0) (0 0 0 0 2 0 0 0) (2 2 0 2 0 2 2 2) (8 4 6 10 12 6 4 8)) 0 127)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6];
|
|
(7 ((9 5 7 11 13 7 0 9) (3 3 3 0 0 3 3 3) (0 0 0 0 0 5 0 0) (0 0 0 2 3 0 0 0) (0 0 0 0 0 0 0 0) (0 0 0 0 2 0 0 0) (2 2 0 2 0 2 2 2) (8 4 6 10 12 6 4 8)) 1 15)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7];
|
|
(8 ((9 5 7 11 13 7 0 9) (3 3 3 0 0 3 3 3) (0 0 0 0 0 0 0 0) (0 0 0 5 3 0 0 0) (0 0 0 0 0 0 0 0) (0 0 0 0 2 0 0 0) (2 2 0 2 0 2 2 2) (8 4 6 10 12 6 4 8)) 0 15)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[1] pieces < wjc feed filter[.No = 2] extract[elem] getposition[28] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[5] pieces < wjc feed filter[.No = 2] extract[elem] getposition[6] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[5] pieces < wjc feed filter[.No = 2] extract[elem] getposition[7] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces < wjc feed filter[.No = 2] extract[elem] getposition[7] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6];
|
|
(7 ((9 5 7 11 13 7 0 9) (3 3 3 0 0 3 3 3) (0 0 0 0 0 5 0 0) (0 0 0 2 3 0 0 0) (0 0 0 0 0 0 0 0) (0 0 0 0 2 0 0 0) (2 2 0 2 0 2 2 2) (8 4 6 10 12 6 4 8)) 1 15)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7];
|
|
(8 ((9 5 7 11 13 7 0 9) (3 3 3 0 0 3 3 3) (0 0 0 0 0 0 0 0) (0 0 0 5 3 0 0 0) (0 0 0 0 0 0 0 0) (0 0 0 0 2 0 0 0) (2 2 0 2 0 2 2 2) (8 4 6 10 12 6 4 8)) 0 15)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[lastmove(wjc feed filter[.No = 2] extract[elem])];
|
|
(73 ((0 0 0 0 0 0 0 13) (0 0 0 0 0 0 8 3) (0 3 0 0 0 6 0 0) (3 0 0 0 0 0 0 0) (2 0 0 0 0 0 0 5) (0 0 0 0 0 0 0 2) (0 0 0 0 0 0 2 12) (0 0 0 0 9 0 0 0)) 1 0)
|
|
|
|
query wjc feed filter[.No = 5] extract[elem] getmove[7];
|
|
((0 "Knight" "pawn" "f" 2 "d" 3 FALSE 0 0 15))
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getmove[lastmove(wjc feed filter[.No = 2] extract[elem])];
|
|
((0 "bishop" "none" "a" 7 "f" 2 FALSE 0 0 0))
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] positions transformstream head[3] consume;
|
|
elem:(0 (("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "Knight" "Rook") ("Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("pawn" "pawn" "pawn" "pawn" "pawn" "pawn" "pawn" "pawn") ("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")) 1 15)
|
|
elem:(1 (("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "Knight" "Rook") ("Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "pawn" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("pawn" "pawn" "none" "pawn" "pawn" "pawn" "pawn" "pawn") ("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")) 0 95)
|
|
elem:(2 (("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "none" "Rook") ("Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn" "Pawn") ("none" "none" "none" "none" "none" "Knight" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "pawn" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("pawn" "pawn" "none" "pawn" "pawn" "pawn" "pawn" "pawn") ("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")) 1 15)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] history head[3] consume;
|
|
"No":1
|
|
"Pos":(1 (("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "Knight" "Rook") ("Pawn" "Pawn" "Pawn" "Pawn" "none" "Pawn" "Pawn" "Pawn") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "Pawn" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("pawn" "pawn" "pawn" "pawn" "pawn" "pawn" "pawn" "pawn") ("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")) 0 159)
|
|
"Move":((0 "Pawn" "none" "e" 1 "e" 3 FALSE 0 0 15))
|
|
|
|
"No":2
|
|
"Pos":(2 (("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "Knight" "Rook") ("Pawn" "Pawn" "Pawn" "Pawn" "none" "Pawn" "Pawn" "Pawn") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "Pawn" "none" "none" "none") ("none" "none" "pawn" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("pawn" "pawn" "none" "pawn" "pawn" "pawn" "pawn" "pawn") ("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")) 1 223)
|
|
"Move":((0 "pawn" "none" "c" 6 "c" 4 FALSE 0 0 31))
|
|
|
|
query field("e4");
|
|
"e4"
|
|
|
|
query field("e4") = field("e4");
|
|
TRUE
|
|
|
|
query field("e4") = field("g6");
|
|
FALSE
|
|
|
|
query field("e4") < field("g6");
|
|
TRUE
|
|
|
|
query field("e4") > field("g6");
|
|
FALSE
|
|
|
|
query field("a5") > field("d2");
|
|
TRUE
|
|
|
|
query field("a5") < field("d2");
|
|
FALSE
|
|
|
|
query iswhite( field("a5") );
|
|
FALSE
|
|
|
|
query iswhite( field("e2") );
|
|
TRUE
|
|
|
|
query file( field("e2") );
|
|
e
|
|
|
|
query file( field("a1") );
|
|
a
|
|
|
|
query row( field("a1") );
|
|
1
|
|
|
|
query row( field("f5") );
|
|
5
|
|
|
|
query north( field("f5") );
|
|
"f6"
|
|
|
|
query north( field("d1") );
|
|
"d2"
|
|
|
|
query north( field("h8") );
|
|
undef
|
|
|
|
query east( field("h8") );
|
|
undef
|
|
|
|
query east( field("d3") );
|
|
"e3"
|
|
|
|
query south( field("d3") );
|
|
"d2"
|
|
|
|
query south( field("d1") );
|
|
undef
|
|
|
|
query west( field("d1") );
|
|
"c1"
|
|
|
|
query west( field("a3") );
|
|
undef
|
|
|
|
query northwest( field("a3") );
|
|
undef
|
|
|
|
query northwest( field("h8") );
|
|
undef
|
|
|
|
query northwest( field("a1") );
|
|
undef
|
|
|
|
query northwest( field("h1") );
|
|
"g2"
|
|
|
|
query northeast( field("h1") );
|
|
undef
|
|
|
|
query northeast( field("f5") );
|
|
"g6"
|
|
|
|
query southwest( field("f5") );
|
|
"e4"
|
|
|
|
query southwest( field("d1") );
|
|
undef
|
|
|
|
query southeast( field("d2") );
|
|
"e1"
|
|
|
|
query southeast( field("h7") );
|
|
undef
|
|
|
|
query field("g6") is_neighbor field("h7");
|
|
TRUE
|
|
|
|
query field("g6") is_neighbor field("h4");
|
|
FALSE
|
|
|
|
query field("g6") left field("h4");
|
|
FALSE
|
|
|
|
query field("g6") left field("e6");
|
|
FALSE
|
|
|
|
query field("g6") left field("f6");
|
|
FALSE
|
|
|
|
query field("g6") left field("h6");
|
|
TRUE
|
|
|
|
query field("g6") right field("f6");
|
|
TRUE
|
|
|
|
query field("g6") above field("f5");
|
|
FALSE
|
|
|
|
query field("g6") above field("g7");
|
|
FALSE
|
|
|
|
query field("g6") above field("g5");
|
|
TRUE
|
|
|
|
query field("g6") below field("g7");
|
|
TRUE
|
|
|
|
query field("g6") neighbors printstream count;
|
|
8
|
|
|
|
query piece("Pawn")
|
|
"Pawn"
|
|
|
|
query piece("Pawn");
|
|
"Pawn"
|
|
|
|
query piece("none");
|
|
"none"
|
|
|
|
query piece("king");
|
|
"king"
|
|
|
|
query iswhite(piece("king"));
|
|
FALSE
|
|
|
|
query iswhite(piece("King"));
|
|
TRUE
|
|
|
|
query iswhite(piece("none"));
|
|
FALSE
|
|
|
|
query piece("king") = piece("Queen")
|
|
FALSE
|
|
|
|
query piece("king") = piece("king")
|
|
TRUE
|
|
|
|
query piece("king") is piece("king");
|
|
TRUE
|
|
|
|
query piece("king") is piece("King");
|
|
TRUE
|
|
|
|
query piece("king") is piece("pawn");
|
|
FALSE
|
|
|
|
query piece("king") samecolor piece("pawn");
|
|
TRUE
|
|
|
|
query piece("king") samecolor piece("Pawn");
|
|
FALSE
|
|
|
|
query piecevalue( piece("king") );
|
|
0
|
|
|
|
query piecevalue( piece("Queen") );
|
|
9
|
|
|
|
query wjc feed filter[.No = 5] extract[elem] getmove[7];
|
|
((0 "Knight" "none" "g" 1 "f" 3 FALSE 0 0 15))
|
|
|
|
query wjc feed filter[.No = 5] extract[elem] getmove[7] = wjc feed filter[.No = 5] extract[elem] getmove[7];
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 5] extract[elem] getmove[7] = wjc feed filter[.No = 5] extract[elem] getmove[6];
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 5] extract[elem] getmove[7];
|
|
((0 "Knight" "none" "g" 1 "f" 3 FALSE 0 0 15))
|
|
|
|
query startfield(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
"g1"
|
|
|
|
query endfield(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
"f3"
|
|
|
|
query agent(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
"Knight"
|
|
|
|
query captures(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
FALSE
|
|
|
|
query captured(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
"none"
|
|
|
|
query check(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
FALSE
|
|
|
|
query is_mate(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
FALSE
|
|
|
|
query is_stalemate(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
FALSE
|
|
|
|
query is_castling(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
FALSE
|
|
|
|
query is_enpassant(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
FALSE
|
|
|
|
query enpassant_field(wjc feed filter[.No = 5] extract[elem] getmove[7]);
|
|
undef
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces;
|
|
(8 7 2 2 2 2 2 2 1 1 1 1)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces piececount[piece("Pawn")];
|
|
7
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[36] pieces piececount[piece("Pawn")];
|
|
6
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[36] pieces piececount[piece("knight")];
|
|
1
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[36] pieces;
|
|
(5 6 1 1 2 2 2 2 1 1 1 1)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[36] pieces = wjc feed filter[.No = 2] extract[elem] getposition[36] pieces;
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[36] pieces = wjc feed filter[.No = 2] extract[elem] getposition[20] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces = wjc feed filter[.No = 2] extract[elem] getposition[7] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces;
|
|
(8 7 2 2 2 2 2 2 1 1 1 1)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] pieces;
|
|
(7 7 2 2 2 2 2 2 1 1 1 1)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces ~ wjc feed filter[.No = 2] extract[elem] getposition[7] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces ~ wjc feed filter[.No = 2] extract[elem] getposition[6] pieces;
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces < wjc feed filter[.No = 2] extract[elem] getposition[6] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces > wjc feed filter[.No = 2] extract[elem] getposition[6] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces < wjc feed filter[.No = 2] extract[elem] getposition[7] pieces;
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pieces > wjc feed filter[.No = 2] extract[elem] getposition[7] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] pieces > wjc feed filter[.No = 2] extract[elem] getposition[6] pieces;
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] pieces < wjc feed filter[.No = 2] extract[elem] getposition[6] pieces;
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[5] moveNo;
|
|
5
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[34] moveNo;
|
|
34
|
|
|
|
query even(2)
|
|
TRUE
|
|
|
|
query odd(2)
|
|
FALSE
|
|
|
|
query odd(5)
|
|
TRUE
|
|
|
|
query odd(4)
|
|
FALSE
|
|
|
|
query odd(0)
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[34] includes [ wjc feed filter[.No = 2] extract[elem] getposition[34] ];
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[34] includes [ wjc feed filter[.No = 2] extract[elem] getposition[15] ];
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[34] piececount[piece("Pawn")];
|
|
6
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[34] pieces;
|
|
(6 6 1 1 2 2 2 2 1 1 1 1)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[34] piececount[piece("bishop")];
|
|
2
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] = wjc feed filter[.No = 2] extract[elem] getposition[6];
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] = wjc feed filter[.No = 2] extract[elem] getposition[7];
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] < wjc feed filter[.No = 2] extract[elem] getposition[7];
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] > wjc feed filter[.No = 2] extract[elem] getposition[7];
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] > wjc feed filter[.No = 2] extract[elem] getposition[6];
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[7] < wjc feed filter[.No = 2] extract[elem] getposition[6];
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] < wjc feed filter[.No = 2] extract[elem] getposition[7];
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] > wjc feed filter[.No = 2] extract[elem] getposition[7];
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] ~ wjc feed filter[.No = 2] extract[elem] getposition[7];
|
|
FALSE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] ~ wjc feed filter[.No = 2] extract[elem] getposition[6];
|
|
TRUE
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] apply_ply[wjc feed filter[.No = 2] extract[elem] getmove[7] ];
|
|
(7 (("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "none" "Rook") ("Pawn" "Pawn" "Pawn" "none" "none" "Pawn" "Pawn" "Pawn") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none""none" "Knight" "Pawn" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "pawn" "none" "none" "none") ("pawn" "pawn" "none" "pawn" "none" "pawn" "pawn" "pawn") ("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")) 0 15)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6];
|
|
(6 (("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "none" "Rook") ("Pawn" "Pawn" "Pawn" "none" "none" "Pawn" "Pawn" "Pawn") ("none" "none" "none" "none" "none" "Knight" "none" "none") ("none" "none" "none" "pawn" "Pawn" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "pawn" "none" "none" "none") ("pawn" "pawn" "none" "pawn" "none" "pawn" "pawn" "pawn") ("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")) 1 15)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getmove[7];
|
|
((0 "Knight" "pawn" "f" 3 "d" 4 FALSE 0 0 15))
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] posrange[field("a1"),field("c3")];
|
|
(0 (("Rook" "Knight" "Bishop" "none" "none" "none" "none" "none") ("Pawn" "Pawn" "Pawn" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none")) 1 0)
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6] pos_fields head[3] consume;
|
|
"Field":"a1"
|
|
"Piece":"Rook"
|
|
|
|
"Field":"b1"
|
|
"Piece":"Knight"
|
|
|
|
"Field":"c1"
|
|
"Piece":"Bishop"
|
|
|
|
let pos3 = [const position value (6 (("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "none" "Rook") ("Pawn" "Pawn" "Pawn" "none" "none" "Pawn" "Pawn" "Pawn") ("none" "none" "none" "none" "none" "Knight" "none" "none") ("none" "none" "none" "pawn" "Pawn" "none" "none" "none") ("none" "none" "none" "none" "none" "none" "none" "none") ("none" "none" "none" "none" "pawn" "none" "none" "none") ("pawn" "pawn" "none" "pawn" "none" "pawn" "pawn" "pawn") ("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")) 1 15)];
|
|
query pos3;
|
|
|
|
open database x;
|
|
let mat1 = [const material value(8 7 2 2 2 2 2 2 1 1 1 1)];
|
|
query mat1;
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[2] attackcount[f3];
|
|
3
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[2] attackcount[h3];
|
|
2
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[2] attackcount[h5];
|
|
1
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[2] attackcount[f5];
|
|
1
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[2] attackcount[b5];
|
|
1
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] attackcount[b5];
|
|
0
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] attackcount[a6];
|
|
2
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] attackcount[d4];
|
|
1
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] attackcount[d6];
|
|
1
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] attackcount[d5];
|
|
0
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] attackcount[d5];
|
|
0
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] protectcount[d5];
|
|
1
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] protectcount[f3];
|
|
2
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] protectcount[h6];
|
|
0
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[3] protectcount[a6];
|
|
1
|
|
|
|
query wjc feed filter[.No = 2] extract[elem] getposition[6];
|
|
(
|
|
6
|
|
(
|
|
("Rook" "Knight" "Bishop" "Queen" "King" "Bishop" "none" "Rook")
|
|
("Pawn" "Pawn" "Pawn" "none" "none" "Pawn" "Pawn" "Pawn")
|
|
("none" "none" "none" "none" "none" "Knight" "none" "none")
|
|
("none" "none" "none" "pawn" "Pawn" "none" "none" "none")
|
|
("none" "none" "none" "none" "none" "none" "none" "none")
|
|
("none" "none" "none" "none" "pawn" "none" "none" "none")
|
|
("pawn" "pawn" "none" "pawn" "none" "pawn" "pawn" "pawn")
|
|
("rook" "knight" "bishop" "queen" "king" "bishop" "knight" "rook")
|
|
)
|
|
1
|
|
15
|
|
)
|
|
|
|
Secondo => query wjc feed filter[.No = 2] extract[elem] getposition[60];
|
|
|
|
Move number: 60, Turn: white, Enpassant file: None
|
|
White castling[ long: no, short: no ]
|
|
Black castling[ long: no, short: no ]
|
|
|
|
_________________
|
|
8 | r |
|
|
7 | p k |
|
|
6 | p p |
|
|
5 | |
|
|
4 | P p b |
|
|
3 | P N |
|
|
2 | P P P |
|
|
1 | R K |
|
|
-----------------
|
|
a b c d e f g h
|
|
|
|
|
|
Secondo => query wjc feed filter[.No = 2] extract[elem] getposition[60] king attackedby[Bishop];
|
|
FALSE
|
|
|
|
Secondo => query wjc feed filter[.No = 2] extract[elem] getposition[61];
|
|
|
|
Move number: 61, Turn: black, Enpassant file: None
|
|
White castling[ long: no, short: no ]
|
|
Black castling[ long: no, short: no ]
|
|
|
|
_________________
|
|
8 | r |
|
|
7 | p k |
|
|
6 | p p |
|
|
5 | |
|
|
4 | P N b |
|
|
3 | P |
|
|
2 | P P P |
|
|
1 | R K |
|
|
-----------------
|
|
a b c d e f g h
|
|
|
|
|
|
Secondo => query wjc feed filter[.No = 2] extract[elem] getposition[61] Pawn attackedby[rook];
|
|
TRUE
|
|
|
|
let rel2 = [const rel(tuple([Name: string, Field: field])) value(("Peter" a1)("Klaus" h3))];
|
|
query rel2 feed consume;
|
|
|
|
Name:Peter
|
|
Field:a1
|
|
|
|
Name:Klaus
|
|
Field:h3 |