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
|
package jrummikub.ai.fdsolver;
public class SolverMain {
/*
* eingabe: liste handsteinen + liste tischsteinen
*
* foreach stein: stein id (durchlaufend nummeriert) Var<Boolean> onTable =
* tisch ? {true}, {true, false} Var<Integer> value = {N} Var<StoneColor>
* color = {C} Var<Integer> nachbarL,R = {-1, 0...steinanzahl} Var<Boolean>
* groupOrRun
*
* nachbarR != -1 => nachbarL[nachbarR[id]] == id nachbarL != -1 =>
* nachbarR[nachbarL[id]] == id
*
* nachbarR != -1 => gOR[nachbarR[id]] = gOR nachbarL != -1 =>
* gOR[nachbarL[id]] = gOR
*
* nachbar{R,L} != -1 => group <=> value[{R,L}] == value nachbar{R,L} != -1
* && group => color[{R,L}] {<,>} color // hier auch <=> ?
*
* nachbar{R,L} != -1 => run <=> color[{R,L}] == color nachbar{R,L} != -1 =>
* run <=> value[{R,L}] == value {+,-} 1
*
* Var<Integer> pos von {links, rechts} + constraints
*
* links + rechts >= 3
*
* foreach handstein: Var<Integer> badness = onTable ? ### (z. B. 1) : 0
*
* totalBadness = sum(all badness)
*
* foreach joker: Var<Integer> value = {-1, 1..13} Var<StoneColor> color =
* {F, C0..C3} onTable == false <=> value == -1 same with color
*
* joker sind sortiert
*/
public static void main(String[] args) {
}
}
|