[Toss-devel-svn] SF.net SVN: toss:[1537] trunk/Toss
Status: Beta
Brought to you by:
lukaszkaiser
|
From: <luk...@us...> - 2011-08-13 01:39:42
|
Revision: 1537
http://toss.svn.sourceforge.net/toss/?rev=1537&view=rev
Author: lukstafi
Date: 2011-08-13 01:39:33 +0000 (Sat, 13 Aug 2011)
Log Message:
-----------
GDL translation fixing: small specification fix regarding same variables from both positive and negated state terms; Structure corrected to discard adding new elements with existing names; fixes in preparing precondition and other data for rule generation; for turn-based translation, consider only legal clause tuples with single player having non-noop move.
Modified Paths:
--------------
trunk/Toss/Arena/DiscreteRule.ml
trunk/Toss/GGP/TranslateFormula.ml
trunk/Toss/GGP/TranslateGame.ml
trunk/Toss/GGP/TranslateGameTest.ml
trunk/Toss/GGP/tests/connect5-raw.toss
trunk/Toss/GGP/tests/connect5-simpl.toss
trunk/Toss/GGP/tests/tictactoe-raw.toss
trunk/Toss/Solver/Structure.ml
trunk/Toss/www/reference/reference.tex
Modified: trunk/Toss/Arena/DiscreteRule.ml
===================================================================
--- trunk/Toss/Arena/DiscreteRule.ml 2011-08-12 14:07:42 UTC (rev 1536)
+++ trunk/Toss/Arena/DiscreteRule.ml 2011-08-13 01:39:33 UTC (rev 1537)
@@ -719,12 +719,12 @@
List.map fst (List.filter (fun (rel, ar) ->
let selector = Structure.free_for_rel rel ar in
let res = Solver.M.check selector rphi in
- (* {{{ log entry *)
+ (* {{{ log entry *)
if !debug_level > 3 then (
Printf.printf "compile_rule.expand_def_rels: %s on %s = %b\n%!"
rel (Structure.str selector) res
);
- (* }}} *)
+ (* }}} *)
res
) signat)
else [rel] in
@@ -836,6 +836,24 @@
embedding formula, but we need to avoid negating their support *)
let lhs_opt_rels, lhs_pos_tups, lhs_pos_expanded =
compile_opt_rels lhs_rels in
+ (* {{{ log entry *)
+ if !debug_level > 3 then (
+ Printf.printf "compile_rule: lhs_pos_tups=%s\n%!"
+ (String.concat "; "(List.map (fun (rel,tups)->
+ rel^"{"^String.concat ";"(List.map (fun tup ->
+ "("^String.concat ", "
+ (Array.to_list (Array.map (
+ Structure.elem_name rule_src.lhs_struc) tup))^")") tups)^"}")
+ lhs_pos_tups));
+ Printf.printf "compile_rule: lhs_pos_expanded=%s\n%!"
+ (String.concat "; "(List.map (fun (rel,tups)->
+ rel^"{"^String.concat ";"(List.map (fun tup ->
+ "("^String.concat ", "
+ (Array.to_list (Array.map (
+ Structure.elem_name rule_src.lhs_struc) tup))^")") tups)^"}")
+ lhs_pos_expanded));
+ );
+ (* }}} *)
let lhs_all_tups n =
List.map Array.of_list (Aux.product (
Aux.fold_n (fun acc -> lhs_elems::acc) [] n)) in
@@ -862,6 +880,17 @@
with Not_found -> failwith
("not in signature: " ^ rel))))
base_emb_rels in
+ (* {{{ log entry *)
+ if !debug_level > 3 then (
+ Printf.printf "compile_rule: lhs_neg_tups=%s\n%!"
+ (String.concat "; "(List.map (fun (rel,tups)->
+ rel^"{"^String.concat ";"(List.map (fun tup ->
+ "("^String.concat ", "
+ (Array.to_list (Array.map (
+ Structure.elem_name rule_src.lhs_struc) tup))^")") tups)^"}")
+ lhs_neg_tups));
+ );
+ (* }}} *)
(* injectivity checking *)
let lhs_alldif_tups =
triang_product 2 lhs_elem_vars in
@@ -872,11 +901,11 @@
Aux.concat_map (fun (rel, tups) ->
List.map (fun tup -> Rel (rel, varify_lhs tup)) tups)
lhs_pos_tups @
- Aux.concat_map (fun (rel, tups) ->
- List.map (fun tup -> Not (Rel (rel, varify_lhs tup))) tups)
+ Aux.concat_map (fun (rel, tups) ->
+ List.map (fun tup -> Not (Rel (rel, varify_lhs tup))) tups)
lhs_neg_tups @
- List.map (function [x;y] -> Not (Eq (`FO x, `FO y))
- | _ -> assert false) lhs_alldif_tups @
+ List.map (function [x;y] -> Not (Eq (`FO x, `FO y))
+ | _ -> assert false) lhs_alldif_tups @
(FormulaOps.as_conjuncts precond)
) in
Modified: trunk/Toss/GGP/TranslateFormula.ml
===================================================================
--- trunk/Toss/GGP/TranslateFormula.ml 2011-08-12 14:07:42 UTC (rev 1536)
+++ trunk/Toss/GGP/TranslateFormula.ml 2011-08-13 01:39:33 UTC (rev 1537)
@@ -234,7 +234,7 @@
let universal_part =
if neg_terms = [] then []
else [Formula.Not (
- Formula.Ex ((neg_vars :> Formula.var list),
+ Formula.Ex (((Aux.list_diff neg_vars pos_vars) :> Formula.var list),
Formula.And [
(* positive because they form a "premise" *)
transl_rels data rels_eqs all_terms neg_terms;
Modified: trunk/Toss/GGP/TranslateGame.ml
===================================================================
--- trunk/Toss/GGP/TranslateGame.ml 2011-08-12 14:07:42 UTC (rev 1536)
+++ trunk/Toss/GGP/TranslateGame.ml 2011-08-13 01:39:33 UTC (rev 1537)
@@ -38,8 +38,14 @@
[nonerasing_frame_wave] is set to [true].) *)
let nonerasing_frame_wave = ref true
+(** When translating as turn-based, filter-out moves composed only of
+ actions such that each is a "noop" action of some player at some
+ location. Assumes that players do not use their "noop" actions
+ for purposes other than waiting for their turn. *)
+let noops_not_moves = ref true
+
(** Limit on the number of steps for aggregate and random playouts. *)
-let playout_horizon = ref 30
+let playout_horizon = ref 20
(** Use "true" atoms while computing rule cases. *)
let split_on_state_atoms = ref false
@@ -443,11 +449,11 @@
*)
-(* Find the rule clauses $\ol{\calC},\ol{\calN}$. Do not remove the
- "does" atoms from clauses. Also handles as special cases:
- "concurrent" case with selecting clauses for only one player, and
- "environment" case for selecting clauses not dependent on any
- player. Preserve legal clauses into the output tuples. *)
+(* Find the rule clauses $\ol{\calC},\ol{\calN}$. Also handles as
+ special cases: "concurrent" case with selecting clauses for only
+ one player, and "environment" case for selecting clauses not
+ dependent on any player. Preserve legal clauses into the output
+ tuples. *)
let move_tuples used_vars next_cls mode players legal_tuples =
(* computing the $d_i(\calN)$ for each $\calN$ *)
let fresh_x_f () =
@@ -459,7 +465,7 @@
let djs =
(* FIXME: check if "negative true" is properly handled *)
Aux.map_some (function
- | (Pos (Does (dp, d)) | Neg (Does (dp, d))) when dp = p -> Some d
+ | Pos (Does (dp, d)) when dp = p -> Some d
| _ -> None) body in
let sb = unify_all sb djs in
let d =
@@ -526,7 +532,13 @@
with Not_found -> cl_tup
) cl_tup next_clauses in
let cl_tups = List.map maximality cl_tups in
- List.map (fun (sb, _, n_cls) -> sb, legal_tup, n_cls) cl_tups in
+ (* removing "does" atoms from clauses *)
+ List.map (fun (sb, _, n_cls) ->
+ let n_cls = List.map (fun (head,frame,body) ->
+ head, frame,
+ List.filter
+ (function Pos (Does _) -> false | _ -> true) body) n_cls in
+ sb, legal_tup, n_cls) cl_tups in
Aux.concat_map move_clauses legal_tuples
@@ -749,8 +761,21 @@
) (rule_cases next_cls)
-let turnbased_rule_cases used_vars f_paths next_cls players legal_by_player =
+let turnbased_rule_cases loc_noops used_vars f_paths next_cls
+ players legal_by_player =
let legal_tuples = Aux.product legal_by_player in
+ (* remove tuples with multiple players making moves
+ TODO: could be enhanced by only excluding a noop of a player for
+ that player *)
+ let all_noops = Aux.map_some (fun x->x)
+ (Aux.concat_map Array.to_list (Array.to_list loc_noops)) in
+ let legal_tuples = List.filter
+ (fun legal_tup ->
+ let num_not_noops =
+ List.length (Aux.list_diff (List.map fst legal_tup) all_noops) in
+ num_not_noops = 1
+ || (num_not_noops = 0 && not !noops_not_moves))
+ legal_tuples in
(* {{{ log entry *)
if !debug_level > 2 then (
Printf.printf "turnbased_rule_cases: legal_tuples --\n%!";
@@ -817,7 +842,7 @@
(String.concat "\n"(List.map clause_str legal_cls))
);
(* }}} *)
- let is_concurrent = not is_turn_based &&
+ let is_concurrent = is_turn_based = None &&
List.for_all
(fun (_, _, body) ->
List.length
@@ -835,10 +860,14 @@
let result =
if is_concurrent then
concurrent_rule_cases used_vars f_paths next_cls players legal_by_player
- else if is_turn_based then
- turnbased_rule_cases used_vars f_paths next_cls players legal_by_player
else
- general_int_rule_cases used_vars f_paths next_cls players legal_by_player
+ match is_turn_based with
+ | Some (_, loc_noops) ->
+ turnbased_rule_cases loc_noops used_vars f_paths next_cls
+ players legal_by_player
+ | None ->
+ general_int_rule_cases used_vars f_paths next_cls
+ players legal_by_player
in
(* {{{ log entry *)
if !debug_level > 2 then (
@@ -1031,14 +1060,18 @@
let struc_elems = List.map
(fun sterm -> term_to_name (blank_out transl_data sterm))
case_rhs in
+ let rulevar_terms = Aux.strmap_of_assoc
+ (List.combine struc_elems case_rhs) in
+ let struc_elems = Aux.unique_sorted struc_elems in
+ let precond = FormulaOps.del_vars_quant
+ (List.map Formula.fo_var_of_string struc_elems :> Formula.var list)
+ precond in
let discrete =
DiscreteRule.translate_from_precond ~precond
~add:rhs_add ~emb_rels:fluents ~signat ~struc_elems in
let rule =
ContinuousRule.make_rule signat [] discrete
[] [] ~pre:discrete.DiscreteRule.pre () in
- let rulevar_terms = Aux.strmap_of_assoc
- (List.combine struc_elems case_rhs) in
let fixvar_terms = Aux.concat_map
(fun sterm -> map_paths
(fun path -> function Var v -> v, (sterm, path)
@@ -1307,7 +1340,7 @@
try Some (check_turn_based players rules)
with Not_turn_based -> None in
let rule_cands, is_concurrent =
- create_rule_cands (turn_data <> None) used_vars f_paths next_cls clauses in
+ create_rule_cands turn_data used_vars f_paths next_cls clauses in
let rule_cands =
filter_rule_cands static_base defined_rels rule_cands in
let term_arities = Aux.unique_sorted
@@ -1365,6 +1398,12 @@
} in
let result =
game, {Arena.struc = struc; history = []; time = 0.; cur_loc = 0} in
+ (* {{{ log entry *)
+ if !debug_level > 3 then (
+ Printf.printf "\n\ntranslate_game: before simplification --\n%s\n%!"
+ (Arena.sprint_state_full result)
+ );
+ (* }}} *)
let tossrule_data = Aux.strmap_of_assoc tossrule_data in
let playing_as =
Aux.array_argfind (fun x -> x = playing_as) players in
Modified: trunk/Toss/GGP/TranslateGameTest.ml
===================================================================
--- trunk/Toss/GGP/TranslateGameTest.ml 2011-08-12 14:07:42 UTC (rev 1536)
+++ trunk/Toss/GGP/TranslateGameTest.ml 2011-08-13 01:39:33 UTC (rev 1537)
@@ -220,7 +220,7 @@
(* GDL.debug_level := 2; *)
TranslateGame.debug_level := 4;
GameSimpl.debug_level := 4;
- (* DiscreteRule.debug_level := 4; *)
+ DiscreteRule.debug_level := 4;
()
@@ -271,9 +271,9 @@
DiscreteRule.debug_level := discreterule_dl);
TranslateGame.generate_test_case := None
-let a () =
- (* regenerate ~debug:false ~game_name:"tictactoe" ~player:"xplayer"; *)
- regenerate ~debug:false ~game_name:"connect5" ~player:"x";
+let a =
+ regenerate ~debug:false ~game_name:"tictactoe" ~player:"xplayer";
+ (* regenerate ~debug:false ~game_name:"connect5" ~player:"x"; *)
(* regenerate ~debug:true ~game_name:"breakthrough" ~player:"white"; *)
(* regenerate ~debug:true ~game_name:"pawn_whopping" ~player:"x"; *)
(* regen_with_debug ~game_name:"connect4" ~player:"white"; *)
Modified: trunk/Toss/GGP/tests/connect5-raw.toss
===================================================================
--- trunk/Toss/GGP/tests/connect5-raw.toss 2011-08-12 14:07:42 UTC (rev 1536)
+++ trunk/Toss/GGP/tests/connect5-raw.toss 2011-08-13 01:39:33 UTC (rev 1537)
@@ -1,4 +1,3 @@
-; not correct yet, but you can have a look at what works already
REL adjacent_cell(v0, v1, v2, v3) =
ex cell_x22__BLANK___BLANK_, cell_y22__BLANK___BLANK_,
cell_x23__BLANK___BLANK_, cell_y23__BLANK___BLANK_
@@ -411,78 +410,40 @@
cell__BLANK___BLANK___BLANK_(cell_e_y8__BLANK_))
PLAYERS x, o
RULE mark_x5_y5_noop:
- [cell_x5_y5__BLANK_, cell_x5_y5__BLANK_, control__BLANK_ |
- _opt_cell_2b {cell_x5_y5__BLANK_; control__BLANK_};
+ [cell_x5_y5__BLANK_, control__BLANK_ |
+ _opt_cell_2b (control__BLANK_);
_opt_cell_2o {cell_x5_y5__BLANK_; control__BLANK_};
_opt_cell_2x {cell_x5_y5__BLANK_; control__BLANK_};
- _opt_control_0o {cell_x5_y5__BLANK_; control__BLANK_};
- _opt_control_0x {cell_x5_y5__BLANK_; control__BLANK_}
+ _opt_control_0o (cell_x5_y5__BLANK_);
+ _opt_control_0x (cell_x5_y5__BLANK_); cell_2b (cell_x5_y5__BLANK_);
+ cell__BLANK___BLANK___BLANK_ (cell_x5_y5__BLANK_);
+ control_0x (control__BLANK_); control__BLANK_ (control__BLANK_)
|
] ->
- [cell_x5_y5__BLANK_, cell_x5_y5__BLANK_, control__BLANK_ |
+ [cell_x5_y5__BLANK_, control__BLANK_ |
cell_2x (cell_x5_y5__BLANK_); control_0o (control__BLANK_) |
] emb cell_2b, cell_2o, cell_2x, control_0o, control_0x
- pre
- (not ex control__BLANK_ control_0o(control__BLANK_) and
- ex cell_x5_y5__BLANK_, control__BLANK_
- (cell_2b(cell_x5_y5__BLANK_) and
- cell__BLANK___BLANK___BLANK_(cell_x5_y5__BLANK_) and
- control_0x(control__BLANK_) and control__BLANK_(control__BLANK_)))
-RULE noop_noop:
- [control__BLANK_, control__BLANK_ |
- _opt_cell_2b (control__BLANK_); _opt_cell_2o (control__BLANK_);
- _opt_cell_2x (control__BLANK_); _opt_control_0o (control__BLANK_);
- _opt_control_0x (control__BLANK_)
- |
- ] ->
- [control__BLANK_, control__BLANK_ |
- control_0o (control__BLANK_); control_0x (control__BLANK_) |
- ] emb cell_2b, cell_2o, cell_2x, control_0o, control_0x
- pre
- not
- ex control__BLANK_, control__BLANK_
- ((control_0o(control__BLANK_) and control__BLANK_(control__BLANK_)) or
- (control_0x(control__BLANK_) and control__BLANK_(control__BLANK_)))
RULE noop_mark_x6_y6:
- [cell_x6_y6__BLANK_, cell_x6_y6__BLANK_, control__BLANK_ |
- _opt_cell_2b {cell_x6_y6__BLANK_; control__BLANK_};
+ [cell_x6_y6__BLANK_, control__BLANK_ |
+ _opt_cell_2b (control__BLANK_);
_opt_cell_2o {cell_x6_y6__BLANK_; control__BLANK_};
_opt_cell_2x {cell_x6_y6__BLANK_; control__BLANK_};
- _opt_control_0o {cell_x6_y6__BLANK_; control__BLANK_};
- _opt_control_0x {cell_x6_y6__BLANK_; control__BLANK_}
+ _opt_control_0o (cell_x6_y6__BLANK_);
+ _opt_control_0x (cell_x6_y6__BLANK_); cell_2b (cell_x6_y6__BLANK_);
+ cell__BLANK___BLANK___BLANK_ (cell_x6_y6__BLANK_);
+ control_0o (control__BLANK_); control__BLANK_ (control__BLANK_)
|
] ->
- [cell_x6_y6__BLANK_, cell_x6_y6__BLANK_, control__BLANK_ |
+ [cell_x6_y6__BLANK_, control__BLANK_ |
cell_2o (cell_x6_y6__BLANK_); control_0x (control__BLANK_) |
] emb cell_2b, cell_2o, cell_2x, control_0o, control_0x
- pre
- (not ex control__BLANK_ control_0x(control__BLANK_) and
- ex cell_x6_y6__BLANK_, control__BLANK_
- (cell_2b(cell_x6_y6__BLANK_) and
- cell__BLANK___BLANK___BLANK_(cell_x6_y6__BLANK_) and
- control_0o(control__BLANK_) and control__BLANK_(control__BLANK_)))
-RULE noop_noop0:
- [control__BLANK_, control__BLANK_ |
- _opt_cell_2b (control__BLANK_); _opt_cell_2o (control__BLANK_);
- _opt_cell_2x (control__BLANK_); _opt_control_0o (control__BLANK_);
- _opt_control_0x (control__BLANK_)
- |
- ] ->
- [control__BLANK_, control__BLANK_ |
- control_0o (control__BLANK_); control_0x (control__BLANK_) |
- ] emb cell_2b, cell_2o, cell_2x, control_0o, control_0x
- pre
- not
- ex control__BLANK_, control__BLANK_
- ((control_0o(control__BLANK_) and control__BLANK_(control__BLANK_)) or
- (control_0x(control__BLANK_) and control__BLANK_(control__BLANK_)))
LOC 0 {
PLAYER x {
PAYOFF
100. * :((true and conn5__x() and true)) +
50. * :((true and not exists_line_of_five() and true))
- MOVES [mark_x5_y5_noop -> 1]; [noop_noop -> 1] }
+ MOVES [mark_x5_y5_noop -> 1] }
PLAYER o {
PAYOFF
100. * :((true and conn5__o() and true)) +
@@ -500,7 +461,7 @@
PAYOFF
100. * :((true and conn5__o() and true)) +
50. * :((true and not exists_line_of_five() and true))
- MOVES [noop_mark_x6_y6 -> 0]; [noop_noop0 -> 0] }
+ MOVES [noop_mark_x6_y6 -> 0] }
}
MODEL
[cell_a_a__BLANK_, cell_a_b__BLANK_, cell_a_c__BLANK_, cell_a_d__BLANK_,
Modified: trunk/Toss/GGP/tests/connect5-simpl.toss
===================================================================
--- trunk/Toss/GGP/tests/connect5-simpl.toss 2011-08-12 14:07:42 UTC (rev 1536)
+++ trunk/Toss/GGP/tests/connect5-simpl.toss 2011-08-13 01:39:33 UTC (rev 1537)
@@ -1,4 +1,3 @@
-; not correct yet, but you can have a look at what works already
REL adjacent_cell(v0, v1, v2, v3) =
ex cell_x19__BLANK___BLANK_, cell_y19__BLANK___BLANK_,
cell_x19__BLANK___BLANK_, cell_y20__BLANK___BLANK_
@@ -211,75 +210,35 @@
R: EQ___cell_0__cell_0__AND__nextcol__cell_1__cell_1,
R1: nextcol__cell_0__cell_0__AND_INV__nextcol__cell_1__cell_1
RULE mark_x5_y5_noop:
- [cell_x5_y5__BLANK_, cell_x5_y5__BLANK_, control__BLANK_ |
- _opt_cell_2b {cell_x5_y5__BLANK_; control__BLANK_};
+ [cell_x5_y5__BLANK_, control__BLANK_ |
+ _opt_cell_2b (control__BLANK_);
_opt_cell_2o {cell_x5_y5__BLANK_; control__BLANK_};
_opt_cell_2x {cell_x5_y5__BLANK_; control__BLANK_};
- _opt_control_0o {cell_x5_y5__BLANK_; control__BLANK_};
- _opt_control_0x {cell_x5_y5__BLANK_; control__BLANK_}
+ _opt_control_0o (cell_x5_y5__BLANK_);
+ _opt_control_0x (cell_x5_y5__BLANK_); cell_2b (cell_x5_y5__BLANK_);
+ control_0x (control__BLANK_); control__BLANK_ (control__BLANK_)
|
] ->
- [cell_x5_y5__BLANK_, cell_x5_y5__BLANK_, control__BLANK_ |
+ [cell_x5_y5__BLANK_, control__BLANK_ |
cell_2x (cell_x5_y5__BLANK_); control_0o (control__BLANK_) |
] emb cell_2b, cell_2o, cell_2x, control_0o, control_0x
- pre
- (not ex control__BLANK_ control_0o(control__BLANK_) and
- ex cell_x5_y5__BLANK_, control__BLANK_
- (control__BLANK_(control__BLANK_) and cell_2b(cell_x5_y5__BLANK_) and
- control_0x(control__BLANK_) and
- not control__BLANK_(cell_x5_y5__BLANK_)))
-RULE noop_noop:
- [control__BLANK_, control__BLANK_ |
- _opt_cell_2b (control__BLANK_); _opt_cell_2o (control__BLANK_);
- _opt_cell_2x (control__BLANK_); _opt_control_0o (control__BLANK_);
- _opt_control_0x (control__BLANK_)
- |
- ] ->
- [control__BLANK_, control__BLANK_ |
- control_0o (control__BLANK_); control_0x (control__BLANK_) |
- ] emb cell_2b, cell_2o, cell_2x, control_0o, control_0x
- pre
- not
- ex control__BLANK_, control__BLANK_
- ((control__BLANK_(control__BLANK_) and control_0o(control__BLANK_)) or
- (control__BLANK_(control__BLANK_) and control_0x(control__BLANK_)))
RULE noop_mark_x6_y6:
- [cell_x6_y6__BLANK_, cell_x6_y6__BLANK_, control__BLANK_ |
- _opt_cell_2b {cell_x6_y6__BLANK_; control__BLANK_};
+ [cell_x6_y6__BLANK_, control__BLANK_ |
+ _opt_cell_2b (control__BLANK_);
_opt_cell_2o {cell_x6_y6__BLANK_; control__BLANK_};
_opt_cell_2x {cell_x6_y6__BLANK_; control__BLANK_};
- _opt_control_0o {cell_x6_y6__BLANK_; control__BLANK_};
- _opt_control_0x {cell_x6_y6__BLANK_; control__BLANK_}
+ _opt_control_0o (cell_x6_y6__BLANK_);
+ _opt_control_0x (cell_x6_y6__BLANK_); cell_2b (cell_x6_y6__BLANK_);
+ control_0o (control__BLANK_); control__BLANK_ (control__BLANK_)
|
] ->
- [cell_x6_y6__BLANK_, cell_x6_y6__BLANK_, control__BLANK_ |
+ [cell_x6_y6__BLANK_, control__BLANK_ |
cell_2o (cell_x6_y6__BLANK_); control_0x (control__BLANK_) |
] emb cell_2b, cell_2o, cell_2x, control_0o, control_0x
- pre
- (not ex control__BLANK_ control_0x(control__BLANK_) and
- ex cell_x6_y6__BLANK_, control__BLANK_
- (control__BLANK_(control__BLANK_) and cell_2b(cell_x6_y6__BLANK_) and
- control_0o(control__BLANK_) and
- not control__BLANK_(cell_x6_y6__BLANK_)))
-RULE noop_noop0:
- [control__BLANK_, control__BLANK_ |
- _opt_cell_2b (control__BLANK_); _opt_cell_2o (control__BLANK_);
- _opt_cell_2x (control__BLANK_); _opt_control_0o (control__BLANK_);
- _opt_control_0x (control__BLANK_)
- |
- ] ->
- [control__BLANK_, control__BLANK_ |
- control_0o (control__BLANK_); control_0x (control__BLANK_) |
- ] emb cell_2b, cell_2o, cell_2x, control_0o, control_0x
- pre
- not
- ex control__BLANK_, control__BLANK_
- ((control__BLANK_(control__BLANK_) and control_0o(control__BLANK_)) or
- (control__BLANK_(control__BLANK_) and control_0x(control__BLANK_)))
LOC 0 {
PLAYER x { PAYOFF 100. * :(conn5__x()) + 50. * :(not exists_line_of_five())
- MOVES [mark_x5_y5_noop -> 1]; [noop_noop -> 1] }
+ MOVES [mark_x5_y5_noop -> 1] }
PLAYER o { PAYOFF 100. * :(conn5__o()) + 50. * :(not exists_line_of_five())
}
}
@@ -288,7 +247,7 @@
PLAYER x { PAYOFF 100. * :(conn5__x()) + 50. * :(not exists_line_of_five())
}
PLAYER o { PAYOFF 100. * :(conn5__o()) + 50. * :(not exists_line_of_five())
- MOVES [noop_mark_x6_y6 -> 0]; [noop_noop0 -> 0] }
+ MOVES [noop_mark_x6_y6 -> 0] }
}
MODEL
[cell_a_a__BLANK_, cell_a_b__BLANK_, cell_a_c__BLANK_, cell_a_d__BLANK_,
Modified: trunk/Toss/GGP/tests/tictactoe-raw.toss
===================================================================
--- trunk/Toss/GGP/tests/tictactoe-raw.toss 2011-08-12 14:07:42 UTC (rev 1536)
+++ trunk/Toss/GGP/tests/tictactoe-raw.toss 2011-08-13 01:39:33 UTC (rev 1537)
@@ -1,542 +1,402 @@
+REL column__b(v0) =
+ ex cell_1_n4__BLANK_, cell_2_n4__BLANK_, cell_3_n4__BLANK_
+ (v0 = cell_1_n4__BLANK_ and
+ EQ___cell_1__cell_1(cell_1_n4__BLANK_, cell_2_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_1_n4__BLANK_, cell_3_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_2_n4__BLANK_, cell_1_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_2_n4__BLANK_, cell_3_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_3_n4__BLANK_, cell_1_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_3_n4__BLANK_, cell_2_n4__BLANK_) and
+ cell_01(cell_1_n4__BLANK_) and cell_2b(cell_1_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_n4__BLANK_) and
+ cell_02(cell_2_n4__BLANK_) and cell_2b(cell_2_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_n4__BLANK_) and
+ cell_03(cell_3_n4__BLANK_) and cell_2b(cell_3_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_n4__BLANK_))
+REL column__o(v0) =
+ ex cell_1_n4__BLANK_, cell_2_n4__BLANK_, cell_3_n4__BLANK_
+ (v0 = cell_1_n4__BLANK_ and
+ EQ___cell_1__cell_1(cell_1_n4__BLANK_, cell_2_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_1_n4__BLANK_, cell_3_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_2_n4__BLANK_, cell_1_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_2_n4__BLANK_, cell_3_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_3_n4__BLANK_, cell_1_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_3_n4__BLANK_, cell_2_n4__BLANK_) and
+ cell_01(cell_1_n4__BLANK_) and cell_2o(cell_1_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_n4__BLANK_) and
+ cell_02(cell_2_n4__BLANK_) and cell_2o(cell_2_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_n4__BLANK_) and
+ cell_03(cell_3_n4__BLANK_) and cell_2o(cell_3_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_n4__BLANK_))
+REL column__x(v0) =
+ ex cell_1_n4__BLANK_, cell_2_n4__BLANK_, cell_3_n4__BLANK_
+ (v0 = cell_1_n4__BLANK_ and
+ EQ___cell_1__cell_1(cell_1_n4__BLANK_, cell_2_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_1_n4__BLANK_, cell_3_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_2_n4__BLANK_, cell_1_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_2_n4__BLANK_, cell_3_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_3_n4__BLANK_, cell_1_n4__BLANK_) and
+ EQ___cell_1__cell_1(cell_3_n4__BLANK_, cell_2_n4__BLANK_) and
+ cell_01(cell_1_n4__BLANK_) and cell_2x(cell_1_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_n4__BLANK_) and
+ cell_02(cell_2_n4__BLANK_) and cell_2x(cell_2_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_n4__BLANK_) and
+ cell_03(cell_3_n4__BLANK_) and cell_2x(cell_3_n4__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_n4__BLANK_))
+REL diagonal__b() =
+ ex cell_1_3__BLANK_, cell_2_2__BLANK_, cell_3_1__BLANK_
+ (true and true and
+ cell_01(cell_1_3__BLANK_) and cell_13(cell_1_3__BLANK_) and
+ cell_2b(cell_1_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_3__BLANK_) and
+ cell_02(cell_2_2__BLANK_) and cell_12(cell_2_2__BLANK_) and
+ cell_2b(cell_2_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_2__BLANK_) and
+ cell_03(cell_3_1__BLANK_) and cell_11(cell_3_1__BLANK_) and
+ cell_2b(cell_3_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_1__BLANK_)) or
+ ex cell_1_1__BLANK_, cell_2_2__BLANK_, cell_3_3__BLANK_
+ (true and true and
+ cell_01(cell_1_1__BLANK_) and cell_11(cell_1_1__BLANK_) and
+ cell_2b(cell_1_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_1__BLANK_) and
+ cell_02(cell_2_2__BLANK_) and cell_12(cell_2_2__BLANK_) and
+ cell_2b(cell_2_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_2__BLANK_) and
+ cell_03(cell_3_3__BLANK_) and cell_13(cell_3_3__BLANK_) and
+ cell_2b(cell_3_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_3__BLANK_))
+REL diagonal__o() =
+ ex cell_1_3__BLANK_, cell_2_2__BLANK_, cell_3_1__BLANK_
+ (true and true and
+ cell_01(cell_1_3__BLANK_) and cell_13(cell_1_3__BLANK_) and
+ cell_2o(cell_1_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_3__BLANK_) and
+ cell_02(cell_2_2__BLANK_) and cell_12(cell_2_2__BLANK_) and
+ cell_2o(cell_2_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_2__BLANK_) and
+ cell_03(cell_3_1__BLANK_) and cell_11(cell_3_1__BLANK_) and
+ cell_2o(cell_3_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_1__BLANK_)) or
+ ex cell_1_1__BLANK_, cell_2_2__BLANK_, cell_3_3__BLANK_
+ (true and true and
+ cell_01(cell_1_1__BLANK_) and cell_11(cell_1_1__BLANK_) and
+ cell_2o(cell_1_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_1__BLANK_) and
+ cell_02(cell_2_2__BLANK_) and cell_12(cell_2_2__BLANK_) and
+ cell_2o(cell_2_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_2__BLANK_) and
+ cell_03(cell_3_3__BLANK_) and cell_13(cell_3_3__BLANK_) and
+ cell_2o(cell_3_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_3__BLANK_))
+REL diagonal__x() =
+ ex cell_1_3__BLANK_, cell_2_2__BLANK_, cell_3_1__BLANK_
+ (true and true and
+ cell_01(cell_1_3__BLANK_) and cell_13(cell_1_3__BLANK_) and
+ cell_2x(cell_1_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_3__BLANK_) and
+ cell_02(cell_2_2__BLANK_) and cell_12(cell_2_2__BLANK_) and
+ cell_2x(cell_2_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_2__BLANK_) and
+ cell_03(cell_3_1__BLANK_) and cell_11(cell_3_1__BLANK_) and
+ cell_2x(cell_3_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_1__BLANK_)) or
+ ex cell_1_1__BLANK_, cell_2_2__BLANK_, cell_3_3__BLANK_
+ (true and true and
+ cell_01(cell_1_1__BLANK_) and cell_11(cell_1_1__BLANK_) and
+ cell_2x(cell_1_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_1_1__BLANK_) and
+ cell_02(cell_2_2__BLANK_) and cell_12(cell_2_2__BLANK_) and
+ cell_2x(cell_2_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_2_2__BLANK_) and
+ cell_03(cell_3_3__BLANK_) and cell_13(cell_3_3__BLANK_) and
+ cell_2x(cell_3_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_3_3__BLANK_))
+REL line__b() =
+ (true and diagonal__b() and true) or
+ (true and
+ ex cell__BLANK__m6__BLANK_ (column__b(cell__BLANK__m6__BLANK_) and true) and
+ true) or
+ (true and
+ ex cell_m5__BLANK___BLANK_ (row__b(cell_m5__BLANK___BLANK_) and true) and
+ true)
+REL line__o() =
+ (true and diagonal__o() and true) or
+ (true and
+ ex cell__BLANK__m6__BLANK_ (column__o(cell__BLANK__m6__BLANK_) and true) and
+ true) or
+ (true and
+ ex cell_m5__BLANK___BLANK_ (row__o(cell_m5__BLANK___BLANK_) and true) and
+ true)
+REL line__x() =
+ (true and diagonal__x() and true) or
+ (true and
+ ex cell__BLANK__m6__BLANK_ (column__x(cell__BLANK__m6__BLANK_) and true) and
+ true) or
+ (true and
+ ex cell_m5__BLANK___BLANK_ (row__x(cell_m5__BLANK___BLANK_) and true) and
+ true)
+REL open() =
+ ex cell_m7_n5__BLANK_
+ (true and true and
+ cell_2b(cell_m7_n5__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m7_n5__BLANK_))
+REL row__b(v0) =
+ ex cell_m4_1__BLANK_, cell_m4_2__BLANK_, cell_m4_3__BLANK_
+ (v0 = cell_m4_1__BLANK_ and
+ EQ___cell_0__cell_0(cell_m4_1__BLANK_, cell_m4_2__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_1__BLANK_, cell_m4_3__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_2__BLANK_, cell_m4_1__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_2__BLANK_, cell_m4_3__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_3__BLANK_, cell_m4_1__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_3__BLANK_, cell_m4_2__BLANK_) and
+ cell_11(cell_m4_1__BLANK_) and cell_2b(cell_m4_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_1__BLANK_) and
+ cell_12(cell_m4_2__BLANK_) and cell_2b(cell_m4_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_2__BLANK_) and
+ cell_13(cell_m4_3__BLANK_) and cell_2b(cell_m4_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_3__BLANK_))
+REL row__o(v0) =
+ ex cell_m4_1__BLANK_, cell_m4_2__BLANK_, cell_m4_3__BLANK_
+ (v0 = cell_m4_1__BLANK_ and
+ EQ___cell_0__cell_0(cell_m4_1__BLANK_, cell_m4_2__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_1__BLANK_, cell_m4_3__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_2__BLANK_, cell_m4_1__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_2__BLANK_, cell_m4_3__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_3__BLANK_, cell_m4_1__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_3__BLANK_, cell_m4_2__BLANK_) and
+ cell_11(cell_m4_1__BLANK_) and cell_2o(cell_m4_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_1__BLANK_) and
+ cell_12(cell_m4_2__BLANK_) and cell_2o(cell_m4_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_2__BLANK_) and
+ cell_13(cell_m4_3__BLANK_) and cell_2o(cell_m4_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_3__BLANK_))
+REL row__x(v0) =
+ ex cell_m4_1__BLANK_, cell_m4_2__BLANK_, cell_m4_3__BLANK_
+ (v0 = cell_m4_1__BLANK_ and
+ EQ___cell_0__cell_0(cell_m4_1__BLANK_, cell_m4_2__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_1__BLANK_, cell_m4_3__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_2__BLANK_, cell_m4_1__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_2__BLANK_, cell_m4_3__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_3__BLANK_, cell_m4_1__BLANK_) and
+ EQ___cell_0__cell_0(cell_m4_3__BLANK_, cell_m4_2__BLANK_) and
+ cell_11(cell_m4_1__BLANK_) and cell_2x(cell_m4_1__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_1__BLANK_) and
+ cell_12(cell_m4_2__BLANK_) and cell_2x(cell_m4_2__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_2__BLANK_) and
+ cell_13(cell_m4_3__BLANK_) and cell_2x(cell_m4_3__BLANK_) and
+ cell__BLANK___BLANK___BLANK_(cell_m4_3__BLANK_))
PLAYERS xplayer, oplayer
-RULE mark_x64_y19_0:
- [cell_x64_y19__blank_, control__blank_ |
- _opt_cell_m_n_b (control__blank_);
- _opt_cell_m_n_o {cell_x64_y19__blank_; control__blank_};
- _opt_cell_m_n_x {cell_x64_y19__blank_; control__blank_};
- _opt_control_oplayer (cell_x64_y19__blank_);
- _opt_control_xplayer (cell_x64_y19__blank_);
- cell_m_n_b (cell_x64_y19__blank_); control_xplayer (control__blank_)
+RULE mark_x6_y_noop:
+ [cell_x6_y__BLANK_, control__BLANK_ |
+ _opt_cell_2b (control__BLANK_);
+ _opt_cell_2o {cell_x6_y__BLANK_; control__BLANK_};
+ _opt_cell_2x {cell_x6_y__BLANK_; control__BLANK_};
+ _opt_control_0oplayer {cell_x6_y__BLANK_; control__BLANK_};
+ _opt_control_0xplayer {cell_x6_y__BLANK_; control__BLANK_};
+ cell_2b (cell_x6_y__BLANK_);
+ cell__BLANK___BLANK___BLANK_ (cell_x6_y__BLANK_)
|
] ->
- [cell_x64_y19__blank_, control__blank_ |
- cell_m_n_x (cell_x64_y19__blank_); control_oplayer (control__blank_) |
- ]
- emb cell_m_n_b, cell_m_n_o, cell_m_n_x, control_oplayer, control_xplayer
+ [cell_x6_y__BLANK_, control__BLANK_ |
+ cell_2x (cell_x6_y__BLANK_); control_0oplayer (control__BLANK_);
+ control_0xplayer (control__BLANK_)
+ |
+ ] emb cell_2b, cell_2o, cell_2x, control_0oplayer, control_0xplayer
pre
- (not
- ex cell_m44_3__blank_, cell_m44_2__blank_, cell_m44_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m44_1__blank_, cell_m44_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m44_1__blank_, cell_m44_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m44_2__blank_, cell_m44_3__blank_) and
- cell_m_1_MV1(cell_m44_1__blank_) and
- cell_m_2_MV1(cell_m44_2__blank_) and
- cell_m_3_MV1(cell_m44_3__blank_) and
- cell_m_n_x(cell_m44_1__blank_) and cell_m_n_x(cell_m44_2__blank_) and
- cell_m_n_x(cell_m44_3__blank_)) and
- not
- ex cell_3_m45__blank_, cell_2_m45__blank_, cell_1_m45__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m45__blank_, cell_2_m45__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m45__blank_, cell_3_m45__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m45__blank_, cell_3_m45__blank_) and
- cell_1_n_MV1(cell_1_m45__blank_) and
- cell_2_n_MV1(cell_2_m45__blank_) and
- cell_3_n_MV1(cell_3_m45__blank_) and
- cell_m_n_x(cell_1_m45__blank_) and cell_m_n_x(cell_2_m45__blank_) and
- cell_m_n_x(cell_3_m45__blank_)) and
- not
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and cell_3_n_MV1(cell_3_3__blank_) and
- cell_m_n_x(cell_1_1__blank_) and cell_m_n_x(cell_2_2__blank_) and
- cell_m_n_x(cell_3_3__blank_)) and
- not
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and cell_3_n_MV1(cell_3_1__blank_) and
- cell_m_n_x(cell_1_3__blank_) and cell_m_n_x(cell_2_2__blank_) and
- cell_m_n_x(cell_3_1__blank_)) and
- not
- ex cell_m46_3__blank_, cell_m46_2__blank_, cell_m46_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m46_1__blank_, cell_m46_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m46_1__blank_, cell_m46_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m46_2__blank_, cell_m46_3__blank_) and
- cell_m_1_MV1(cell_m46_1__blank_) and
- cell_m_2_MV1(cell_m46_2__blank_) and
- cell_m_3_MV1(cell_m46_3__blank_) and
- cell_m_n_o(cell_m46_1__blank_) and cell_m_n_o(cell_m46_2__blank_) and
- cell_m_n_o(cell_m46_3__blank_)) and
- not
- ex cell_3_m47__blank_, cell_2_m47__blank_, cell_1_m47__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m47__blank_, cell_2_m47__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m47__blank_, cell_3_m47__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m47__blank_, cell_3_m47__blank_) and
- cell_1_n_MV1(cell_1_m47__blank_) and
- cell_2_n_MV1(cell_2_m47__blank_) and
- cell_3_n_MV1(cell_3_m47__blank_) and
- cell_m_n_o(cell_1_m47__blank_) and cell_m_n_o(cell_2_m47__blank_) and
- cell_m_n_o(cell_3_m47__blank_)) and
- not
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and cell_3_n_MV1(cell_3_3__blank_) and
- cell_m_n_o(cell_1_1__blank_) and cell_m_n_o(cell_2_2__blank_) and
- cell_m_n_o(cell_3_3__blank_)) and
- not
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and cell_3_n_MV1(cell_3_1__blank_) and
- cell_m_n_o(cell_1_3__blank_) and cell_m_n_o(cell_2_2__blank_) and
- cell_m_n_o(cell_3_1__blank_)) and
- ex cell_m48_n23__blank_ cell_m_n_b(cell_m48_n23__blank_))
-RULE mark_x71_y26_1:
- [cell_x71_y26__blank_, control__blank_ |
- _opt_cell_m_n_b (control__blank_);
- _opt_cell_m_n_o {cell_x71_y26__blank_; control__blank_};
- _opt_cell_m_n_x {cell_x71_y26__blank_; control__blank_};
- _opt_control_oplayer (cell_x71_y26__blank_);
- _opt_control_xplayer (cell_x71_y26__blank_);
- cell_m_n_b (cell_x71_y26__blank_); control_oplayer (control__blank_)
+ (not (cell_0x6(cell_x6_y__BLANK_) and cell_1y(cell_x6_y__BLANK_)) and
+ ex control__BLANK_
+ (control_0oplayer(control__BLANK_) and
+ control_0xplayer(control__BLANK_) and control__BLANK_(control__BLANK_)))
+RULE noop_mark_x7_y0:
+ [cell_x7_y0__BLANK_, control__BLANK_ |
+ _opt_cell_2b (control__BLANK_);
+ _opt_cell_2o {cell_x7_y0__BLANK_; control__BLANK_};
+ _opt_cell_2x {cell_x7_y0__BLANK_; control__BLANK_};
+ _opt_control_0oplayer {cell_x7_y0__BLANK_; control__BLANK_};
+ _opt_control_0xplayer {cell_x7_y0__BLANK_; control__BLANK_};
+ cell_2b (cell_x7_y0__BLANK_);
+ cell__BLANK___BLANK___BLANK_ (cell_x7_y0__BLANK_)
|
] ->
- [cell_x71_y26__blank_, control__blank_ |
- cell_m_n_o (cell_x71_y26__blank_); control_xplayer (control__blank_) |
- ]
- emb cell_m_n_b, cell_m_n_o, cell_m_n_x, control_oplayer, control_xplayer
+ [cell_x7_y0__BLANK_, control__BLANK_ |
+ cell_2o (cell_x7_y0__BLANK_); control_0oplayer (control__BLANK_);
+ control_0xplayer (control__BLANK_)
+ |
+ ] emb cell_2b, cell_2o, cell_2x, control_0oplayer, control_0xplayer
pre
- (not
- ex cell_m44_3__blank_, cell_m44_2__blank_, cell_m44_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m44_1__blank_, cell_m44_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m44_1__blank_, cell_m44_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m44_2__blank_, cell_m44_3__blank_) and
- cell_m_1_MV1(cell_m44_1__blank_) and
- cell_m_2_MV1(cell_m44_2__blank_) and
- cell_m_3_MV1(cell_m44_3__blank_) and
- cell_m_n_x(cell_m44_1__blank_) and cell_m_n_x(cell_m44_2__blank_) and
- cell_m_n_x(cell_m44_3__blank_)) and
- not
- ex cell_3_m45__blank_, cell_2_m45__blank_, cell_1_m45__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m45__blank_, cell_2_m45__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m45__blank_, cell_3_m45__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m45__blank_, cell_3_m45__blank_) and
- cell_1_n_MV1(cell_1_m45__blank_) and
- cell_2_n_MV1(cell_2_m45__blank_) and
- cell_3_n_MV1(cell_3_m45__blank_) and
- cell_m_n_x(cell_1_m45__blank_) and cell_m_n_x(cell_2_m45__blank_) and
- cell_m_n_x(cell_3_m45__blank_)) and
- not
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and cell_3_n_MV1(cell_3_3__blank_) and
- cell_m_n_x(cell_1_1__blank_) and cell_m_n_x(cell_2_2__blank_) and
- cell_m_n_x(cell_3_3__blank_)) and
- not
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and cell_3_n_MV1(cell_3_1__blank_) and
- cell_m_n_x(cell_1_3__blank_) and cell_m_n_x(cell_2_2__blank_) and
- cell_m_n_x(cell_3_1__blank_)) and
- not
- ex cell_m46_3__blank_, cell_m46_2__blank_, cell_m46_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m46_1__blank_, cell_m46_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m46_1__blank_, cell_m46_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m46_2__blank_, cell_m46_3__blank_) and
- cell_m_1_MV1(cell_m46_1__blank_) and
- cell_m_2_MV1(cell_m46_2__blank_) and
- cell_m_3_MV1(cell_m46_3__blank_) and
- cell_m_n_o(cell_m46_1__blank_) and cell_m_n_o(cell_m46_2__blank_) and
- cell_m_n_o(cell_m46_3__blank_)) and
- not
- ex cell_3_m47__blank_, cell_2_m47__blank_, cell_1_m47__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m47__blank_, cell_2_m47__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m47__blank_, cell_3_m47__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m47__blank_, cell_3_m47__blank_) and
- cell_1_n_MV1(cell_1_m47__blank_) and
- cell_2_n_MV1(cell_2_m47__blank_) and
- cell_3_n_MV1(cell_3_m47__blank_) and
- cell_m_n_o(cell_1_m47__blank_) and cell_m_n_o(cell_2_m47__blank_) and
- cell_m_n_o(cell_3_m47__blank_)) and
- not
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and cell_3_n_MV1(cell_3_3__blank_) and
- cell_m_n_o(cell_1_1__blank_) and cell_m_n_o(cell_2_2__blank_) and
- cell_m_n_o(cell_3_3__blank_)) and
- not
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and cell_3_n_MV1(cell_3_1__blank_) and
- cell_m_n_o(cell_1_3__blank_) and cell_m_n_o(cell_2_2__blank_) and
- cell_m_n_o(cell_3_1__blank_)) and
- ex cell_m48_n23__blank_ cell_m_n_b(cell_m48_n23__blank_))
+ (not (cell_0x7(cell_x7_y0__BLANK_) and cell_1y0(cell_x7_y0__BLANK_)) and
+ ex control__BLANK_
+ (control_0oplayer(control__BLANK_) and
+ control_0xplayer(control__BLANK_) and control__BLANK_(control__BLANK_)))
LOC 0 {
PLAYER xplayer {
PAYOFF
- 50. +
- -50. *
- :(
- ex cell_m8_3__blank_, cell_m8_2__blank_, cell_m8_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m8_1__blank_, cell_m8_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m8_1__blank_, cell_m8_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m8_2__blank_, cell_m8_3__blank_) and
- cell_m_1_MV1(cell_m8_1__blank_) and
- cell_m_2_MV1(cell_m8_2__blank_) and
- cell_m_3_MV1(cell_m8_3__blank_) and cell_m_n_o(cell_m8_1__blank_) and
- cell_m_n_o(cell_m8_2__blank_) and cell_m_n_o(cell_m8_3__blank_)) or
- ex cell_3_m9__blank_, cell_2_m9__blank_, cell_1_m9__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m9__blank_, cell_2_m9__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m9__blank_, cell_3_m9__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m9__blank_, cell_3_m9__blank_) and
- cell_1_n_MV1(cell_1_m9__blank_) and
- cell_2_n_MV1(cell_2_m9__blank_) and
- cell_3_n_MV1(cell_3_m9__blank_) and
- cell_m_n_o(cell_1_m9__blank_) and cell_m_n_o(cell_2_m9__blank_) and
- cell_m_n_o(cell_3_m9__blank_)) or
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and
- cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and
- cell_3_n_MV1(cell_3_3__blank_) and cell_m_n_o(cell_1_1__blank_) and
- cell_m_n_o(cell_2_2__blank_) and cell_m_n_o(cell_3_3__blank_)) or
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and
- cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and
- cell_3_n_MV1(cell_3_1__blank_) and cell_m_n_o(cell_1_3__blank_) and
- cell_m_n_o(cell_2_2__blank_) and cell_m_n_o(cell_3_1__blank_))
- )
- +
+ 100. * :((true and line__x() and true)) +
50. *
- :(
- ex cell_m1_3__blank_, cell_m1_2__blank_, cell_m1_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m1_1__blank_, cell_m1_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m1_1__blank_, cell_m1_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m1_2__blank_, cell_m1_3__blank_) and
- cell_m_1_MV1(cell_m1_1__blank_) and
- cell_m_2_MV1(cell_m1_2__blank_) and
- cell_m_3_MV1(cell_m1_3__blank_) and cell_m_n_x(cell_m1_1__blank_) and
- cell_m_n_x(cell_m1_2__blank_) and cell_m_n_x(cell_m1_3__blank_)) or
- ex cell_3_m2__blank_, cell_2_m2__blank_, cell_1_m2__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m2__blank_, cell_2_m2__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m2__blank_, cell_3_m2__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m2__blank_, cell_3_m2__blank_) and
- cell_1_n_MV1(cell_1_m2__blank_) and
- cell_2_n_MV1(cell_2_m2__blank_) and
- cell_3_n_MV1(cell_3_m2__blank_) and
- cell_m_n_x(cell_1_m2__blank_) and cell_m_n_x(cell_2_m2__blank_) and
- cell_m_n_x(cell_3_m2__blank_)) or
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and
- cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and
- cell_3_n_MV1(cell_3_3__blank_) and cell_m_n_x(cell_1_1__blank_) and
- cell_m_n_x(cell_2_2__blank_) and cell_m_n_x(cell_3_3__blank_)) or
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and
- cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and
- cell_3_n_MV1(cell_3_1__blank_) and cell_m_n_x(cell_1_3__blank_) and
- cell_m_n_x(cell_2_2__blank_) and cell_m_n_x(cell_3_1__blank_))
- )
- MOVES [mark_x64_y19_0 -> 1] }
+ :((true and not line__x() and not line__o() and not open() and true))
+ MOVES [mark_x6_y_noop -> 1] }
PLAYER oplayer {
PAYOFF
- 50. +
- -50. *
- :(
- ex cell_m17_3__blank_, cell_m17_2__blank_, cell_m17_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m17_1__blank_, cell_m17_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m17_1__blank_, cell_m17_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m17_2__blank_, cell_m17_3__blank_) and
- cell_m_1_MV1(cell_m17_1__blank_) and
- cell_m_2_MV1(cell_m17_2__blank_) and
- cell_m_3_MV1(cell_m17_3__blank_) and
- cell_m_n_x(cell_m17_1__blank_) and cell_m_n_x(cell_m17_2__blank_) and
- cell_m_n_x(cell_m17_3__blank_)) or
- ex cell_3_m18__blank_, cell_2_m18__blank_, cell_1_m18__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m18__blank_, cell_2_m18__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m18__blank_, cell_3_m18__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m18__blank_, cell_3_m18__blank_) and
- cell_1_n_MV1(cell_1_m18__blank_) and
- cell_2_n_MV1(cell_2_m18__blank_) and
- cell_3_n_MV1(cell_3_m18__blank_) and
- cell_m_n_x(cell_1_m18__blank_) and
- cell_m_n_x(cell_2_m18__blank_) and cell_m_n_x(cell_3_m18__blank_)) or
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and
- cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and
- cell_3_n_MV1(cell_3_3__blank_) and cell_m_n_x(cell_1_1__blank_) and
- cell_m_n_x(cell_2_2__blank_) and cell_m_n_x(cell_3_3__blank_)) or
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and
- cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and
- cell_3_n_MV1(cell_3_1__blank_) and cell_m_n_x(cell_1_3__blank_) and
- cell_m_n_x(cell_2_2__blank_) and cell_m_n_x(cell_3_1__blank_))
- )
- +
+ 100. * :((true and line__o() and true)) +
50. *
- :(
- ex cell_m10_3__blank_, cell_m10_2__blank_, cell_m10_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m10_1__blank_, cell_m10_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m10_1__blank_, cell_m10_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m10_2__blank_, cell_m10_3__blank_) and
- cell_m_1_MV1(cell_m10_1__blank_) and
- cell_m_2_MV1(cell_m10_2__blank_) and
- cell_m_3_MV1(cell_m10_3__blank_) and
- cell_m_n_o(cell_m10_1__blank_) and cell_m_n_o(cell_m10_2__blank_) and
- cell_m_n_o(cell_m10_3__blank_)) or
- ex cell_3_m11__blank_, cell_2_m11__blank_, cell_1_m11__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m11__blank_, cell_2_m11__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m11__blank_, cell_3_m11__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m11__blank_, cell_3_m11__blank_) and
- cell_1_n_MV1(cell_1_m11__blank_) and
- cell_2_n_MV1(cell_2_m11__blank_) and
- cell_3_n_MV1(cell_3_m11__blank_) and
- cell_m_n_o(cell_1_m11__blank_) and
- cell_m_n_o(cell_2_m11__blank_) and cell_m_n_o(cell_3_m11__blank_)) or
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and
- cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and
- cell_3_n_MV1(cell_3_3__blank_) and cell_m_n_o(cell_1_1__blank_) and
- cell_m_n_o(cell_2_2__blank_) and cell_m_n_o(cell_3_3__blank_)) or
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and
- cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and
- cell_3_n_MV1(cell_3_1__blank_) and cell_m_n_o(cell_1_3__blank_) and
- cell_m_n_o(cell_2_2__blank_) and cell_m_n_o(cell_3_1__blank_))
- )
+ :((true and not line__x() and not line__o() and not open() and true))
}
}
LOC 1 {
PLAYER xplayer {
PAYOFF
- 50. +
- -50. *
- :(
- ex cell_m8_3__blank_, cell_m8_2__blank_, cell_m8_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m8_1__blank_, cell_m8_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m8_1__blank_, cell_m8_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m8_2__blank_, cell_m8_3__blank_) and
- cell_m_1_MV1(cell_m8_1__blank_) and
- cell_m_2_MV1(cell_m8_2__blank_) and
- cell_m_3_MV1(cell_m8_3__blank_) and cell_m_n_o(cell_m8_1__blank_) and
- cell_m_n_o(cell_m8_2__blank_) and cell_m_n_o(cell_m8_3__blank_)) or
- ex cell_3_m9__blank_, cell_2_m9__blank_, cell_1_m9__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m9__blank_, cell_2_m9__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m9__blank_, cell_3_m9__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m9__blank_, cell_3_m9__blank_) and
- cell_1_n_MV1(cell_1_m9__blank_) and
- cell_2_n_MV1(cell_2_m9__blank_) and
- cell_3_n_MV1(cell_3_m9__blank_) and
- cell_m_n_o(cell_1_m9__blank_) and cell_m_n_o(cell_2_m9__blank_) and
- cell_m_n_o(cell_3_m9__blank_)) or
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and
- cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and
- cell_3_n_MV1(cell_3_3__blank_) and cell_m_n_o(cell_1_1__blank_) and
- cell_m_n_o(cell_2_2__blank_) and cell_m_n_o(cell_3_3__blank_)) or
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and
- cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and
- cell_3_n_MV1(cell_3_1__blank_) and cell_m_n_o(cell_1_3__blank_) and
- cell_m_n_o(cell_2_2__blank_) and cell_m_n_o(cell_3_1__blank_))
- )
- +
+ 100. * :((true and line__x() and true)) +
50. *
- :(
- ex cell_m1_3__blank_, cell_m1_2__blank_, cell_m1_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m1_1__blank_, cell_m1_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m1_1__blank_, cell_m1_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m1_2__blank_, cell_m1_3__blank_) and
- cell_m_1_MV1(cell_m1_1__blank_) and
- cell_m_2_MV1(cell_m1_2__blank_) and
- cell_m_3_MV1(cell_m1_3__blank_) and cell_m_n_x(cell_m1_1__blank_) and
- cell_m_n_x(cell_m1_2__blank_) and cell_m_n_x(cell_m1_3__blank_)) or
- ex cell_3_m2__blank_, cell_2_m2__blank_, cell_1_m2__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m2__blank_, cell_2_m2__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m2__blank_, cell_3_m2__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m2__blank_, cell_3_m2__blank_) and
- cell_1_n_MV1(cell_1_m2__blank_) and
- cell_2_n_MV1(cell_2_m2__blank_) and
- cell_3_n_MV1(cell_3_m2__blank_) and
- cell_m_n_x(cell_1_m2__blank_) and cell_m_n_x(cell_2_m2__blank_) and
- cell_m_n_x(cell_3_m2__blank_)) or
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and
- cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and
- cell_3_n_MV1(cell_3_3__blank_) and cell_m_n_x(cell_1_1__blank_) and
- cell_m_n_x(cell_2_2__blank_) and cell_m_n_x(cell_3_3__blank_)) or
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and
- cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and
- cell_3_n_MV1(cell_3_1__blank_) and cell_m_n_x(cell_1_3__blank_) and
- cell_m_n_x(cell_2_2__blank_) and cell_m_n_x(cell_3_1__blank_))
- )
+ :((true and not line__x() and not line__o() and not open() and true))
}
PLAYER oplayer {
PAYOFF
- 50. +
- -50. *
- :(
- ex cell_m17_3__blank_, cell_m17_2__blank_, cell_m17_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m17_1__blank_, cell_m17_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m17_1__blank_, cell_m17_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m17_2__blank_, cell_m17_3__blank_) and
- cell_m_1_MV1(cell_m17_1__blank_) and
- cell_m_2_MV1(cell_m17_2__blank_) and
- cell_m_3_MV1(cell_m17_3__blank_) and
- cell_m_n_x(cell_m17_1__blank_) and cell_m_n_x(cell_m17_2__blank_) and
- cell_m_n_x(cell_m17_3__blank_)) or
- ex cell_3_m18__blank_, cell_2_m18__blank_, cell_1_m18__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m18__blank_, cell_2_m18__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m18__blank_, cell_3_m18__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m18__blank_, cell_3_m18__blank_) and
- cell_1_n_MV1(cell_1_m18__blank_) and
- cell_2_n_MV1(cell_2_m18__blank_) and
- cell_3_n_MV1(cell_3_m18__blank_) and
- cell_m_n_x(cell_1_m18__blank_) and
- cell_m_n_x(cell_2_m18__blank_) and cell_m_n_x(cell_3_m18__blank_)) or
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and
- cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and
- cell_3_n_MV1(cell_3_3__blank_) and cell_m_n_x(cell_1_1__blank_) and
- cell_m_n_x(cell_2_2__blank_) and cell_m_n_x(cell_3_3__blank_)) or
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and
- cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and
- cell_3_n_MV1(cell_3_1__blank_) and cell_m_n_x(cell_1_3__blank_) and
- cell_m_n_x(cell_2_2__blank_) and cell_m_n_x(cell_3_1__blank_))
- )
- +
+ 100. * :((true and line__o() and true)) +
50. *
- :(
- ex cell_m10_3__blank_, cell_m10_2__blank_, cell_m10_1__blank_
- (EQ___cell_m_n_MV1_m(cell_m10_1__blank_, cell_m10_2__blank_) and
- EQ___cell_m_n_MV1_m(cell_m10_1__blank_, cell_m10_3__blank_) and
- EQ___cell_m_n_MV1_m(cell_m10_2__blank_, cell_m10_3__blank_) and
- cell_m_1_MV1(cell_m10_1__blank_) and
- cell_m_2_MV1(cell_m10_2__blank_) and
- cell_m_3_MV1(cell_m10_3__blank_) and
- cell_m_n_o(cell_m10_1__blank_) and cell_m_n_o(cell_m10_2__blank_) and
- cell_m_n_o(cell_m10_3__blank_)) or
- ex cell_3_m11__blank_, cell_2_m11__blank_, cell_1_m11__blank_
- (EQ___cell_m_n_MV1_n(cell_1_m11__blank_, cell_2_m11__blank_) and
- EQ___cell_m_n_MV1_n(cell_1_m11__blank_, cell_3_m11__blank_) and
- EQ___cell_m_n_MV1_n(cell_2_m11__blank_, cell_3_m11__blank_) and
- cell_1_n_MV1(cell_1_m11__blank_) and
- cell_2_n_MV1(cell_2_m11__blank_) and
- cell_3_n_MV1(cell_3_m11__blank_) and
- cell_m_n_o(cell_1_m11__blank_) and
- cell_m_n_o(cell_2_m11__blank_) and cell_m_n_o(cell_3_m11__blank_)) or
- ex cell_3_3__blank_, cell_2_2__blank_, cell_1_1__blank_
- (cell_m_1_MV1(cell_1_1__blank_) and
- cell_1_n_MV1(cell_1_1__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_3_MV1(cell_3_3__blank_) and
- cell_3_n_MV1(cell_3_3__blank_) and cell_m_n_o(cell_1_1__blank_) and
- cell_m_n_o(cell_2_2__blank_) and cell_m_n_o(cell_3_3__blank_)) or
- ex cell_3_1__blank_, cell_2_2__blank_, cell_1_3__blank_
- (cell_m_3_MV1(cell_1_3__blank_) and
- cell_1_n_MV1(cell_1_3__blank_) and
- cell_m_2_MV1(cell_2_2__blank_) and
- cell_2_n_MV1(cell_2_2__blank_) and
- cell_m_1_MV1(cell_3_1__blank_) and
- cell_3_n_MV1(cell_3_1__blank_) and cell_m_n_o(cell_1_3__blank_) and
- cell_m_n_o(cell_2_2__blank_) and cell_m_n_o(cell_3_1__blank_))
- )
- MOVES [mark_x71_y26_1 -> 0] }
+ :((true and not line__x() and not line__o() and not open() and true))
+ MOVES [noop_mark_x7_y0 -> 0] }
}
MODEL
- [control_MV1, cell_3_3_MV1, cell_3_2_MV1, cell_3_1_MV1, cell_2_3_MV1,
- cell_2_2_MV1, cell_2_1_MV1, cell_1_3_MV1, cell_1_2_MV1, cell_1_1_MV1 |
- EQ___cell_m_n_MV1_m {
- (cell_3_3_MV1, cell_3_3_MV1); (cell_3_3_MV1, cell_3_2_MV1);
- (cell_3_3_MV1, cell_3_1_MV1); (cell_3_2_MV1, cell_3_3_MV1);
- (cell_3_2_MV1, cell_3_2_MV1); (cell_3_2_MV1, cell_3_1_MV1);
- (cell_3_1_MV1, cell_3_3_MV1); (cell_3_1_MV1, cell_3_2_MV1);
- (cell_3_1_MV1, cell_3_1_MV1); (cell_2_3_MV1, cell_2_3_MV1);
- (cell_2_3_MV1, cell_2_2_MV1); (cell_2_3_MV1, cell_2_1_MV1);
- (cell_2_2_MV1, cell_2_3_MV1); (cell_2_2_MV1, cell_2_2_MV1);
- (cell_2_2_MV1, cell_2_1_MV1); (cell_2_1_MV1, cell_2_3_MV1);
- (cell_2_1_MV1, cell_2_2_MV1); (cell_2_1_MV1, cell_2_1_MV1);
- (cell_1_3_MV1, cell_1_3_MV1); (cell_1_3_MV1, cell_1_2_MV1);
- (cell_1_3_MV1, cell_1_1_MV1); (cell_1_2_MV1, cell_1_3_MV1);
- (cell_1_2_MV1, cell_1_2_MV1); (cell_1_2_MV1, cell_1_1_MV1);
- (cell_1_1_MV1, cell_1_3_MV1); (cell_1_1_MV1, cell_1_2_MV1);
- (cell_1_1_MV1, cell_1_1_MV1)
+ [cell_1_1__BLANK_, cell_1_2__BLANK_, cell_1_3__BLANK_, cell_2_1__BLANK_,
+ cell_2_2__BLANK_, cell_2_3__BLANK_, cell_3_1__BLANK_, cell_3_2__BLANK_,
...
[truncated message content] |