From 7568f3782466531fe04fc14a40dc4d3a393c1fb9 Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Tue, 14 Jun 2011 17:48:22 +0200 Subject: Added TurnLogic with rule variables and constraints git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@436 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/ai/fdsolver/Constraints.java | 56 ++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/jrummikub/ai/fdsolver/Constraints.java (limited to 'src/jrummikub/ai/fdsolver/Constraints.java') diff --git a/src/jrummikub/ai/fdsolver/Constraints.java b/src/jrummikub/ai/fdsolver/Constraints.java new file mode 100644 index 0000000..0885d2a --- /dev/null +++ b/src/jrummikub/ai/fdsolver/Constraints.java @@ -0,0 +1,56 @@ +package jrummikub.ai.fdsolver; + +import java.util.List; + +import jrummikub.ai.fdsolver.constraint.Filter; +import jrummikub.ai.fdsolver.constraint.FilterConstraint; +import jrummikub.ai.fdsolver.constraint.IfConstraint; +import jrummikub.ai.fdsolver.constraint.IndexConstraint; +import jrummikub.ai.fdsolver.constraint.LessThan; +import jrummikub.ai.fdsolver.constraint.OffsetConstraint; +import jrummikub.ai.fdsolver.constraint.SameConstraint; +import jrummikub.ai.fdsolver.constraint.SumConstraint; + +public class Constraints { + public static Constraint when(Var cond, Constraint c) { + return new IfConstraint(false, cond, c); + } + + public static Constraint unless(Var cond, Constraint c) { + return new IfConstraint(true, cond, c); + } + + + public static Constraint index(Var target, Var index, List> list) { + return new IndexConstraint(target, index, list); + } + + public static Constraint constant(Var target, final T constant) { + return new FilterConstraint(new Filter() { + @Override + public boolean accept(T value) { + return value.equals(constant); + } + }, target); + } + + public static Constraint offset(int offset, Var x, Var y) { + return new OffsetConstraint(offset, x, y); + } + + public static Constraint same(Var x, Var y) { + return new SameConstraint(x, y); + } + + public static Constraint sum(Var x, Var y, Var z) { + return new SumConstraint(x, y, z); + } + + public static > Constraint lessThan(Var x, Var y) { + return new LessThan(false, x, y); + } + + public static > Constraint lessThanEq(Var x, Var y) { + return new LessThan(true, x, y); + } +} -- cgit v1.2.3