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