Hallo,
Schieberätsel ist ja nun schon einiges an Arbeit.
1) Man hat 8 Symbole, die können an jeder Stelle des 3x3 Feldes stehen. Wir können die Felder jetzt mal beispielsweise so nummerieren:
1 2 3
4 5 6
7 8 9
Jedes Feld muss alle Bilder anzeigen können, das kann man entweder per Animation oder dass man für jedes Symbol ein Objekt macht, darstellen. Jedes Objekt hat eine Bedingung, die heißt dass das Symbol mit der Nummer bla dort ist.
2) Jedes Objekt hat eine Aktion um den aktuellen Stein zu bewegen sofern dann möglich, da hier viele Optionen dasselbe tun, kann man das per Werte merken und das in 9 große Aktionen gruppieren, das sieht zum Beispiel so aus:
Feld 1 ist gewählt.
Dann betrachten wir die umliegenden Positionen (2,4):
Wenn Feld 2 leer:
Wenn Feld 1 hat Symbol 1:
Feld1HatSymbol1 = falsch
Feld2HatSymbol1 = richtig
Ende Wenn
... bis Symbol 8
Ende Wenn
Wenn Feld 4 leer:
analog
3) Überprüfen dass die Lösung stimmt, kann man einfach indem man die Bedingungen verschachtelt prüft.
Punkt 2 kann man sich per Lua erleichtern, man muss aber immer noch jedes Objekt mit einer Aktion verlinken. An solchen Sachen arbeiten die Daedalic auch ein paar Tage, deswegen findste das auch nur einmal in Whispered World.
Lua mäßig ginge zum Beispiel:
function move(feld, symbol)
local found = false, swapfield = 0
if feld-3 > 0 and Conditions["Feld"..(feld-3).."frei"].Value then
found = true
swapfield = feld - 3
elseif feld - 1 > 0 and Conditions["Feld"..(feld-1).."frei"].Value then
found = true
swapfield = feld - 1
elseif feld + 1 < 10 and Conditions["Feld"..(feld+1).."frei"].Value then
found = true
swapfield = feld + 1
elseif feld + 3 < 10 and Conditions["Feld"..(feld+3).."frei"].Value then
found = true
swapfield = feld + 3
end
if found then
Conditions["Feld"..feld.."frei"].Value = true
Conditions["Feld"..swapfeld.."frei"].Value = false
Conditions["Feld"..feld.."hatSymbol"..symbol].Value = false
Conditions["Feld"..swapfeld.."hatSymbol"..symbol].Value = true
end
end
Dann ruft man im Feld 1 Symbol 1 zum Beispiel bei Linksklick move(1,1) auf.
Leichter, aber um Punkt 1 kommt man nicht herum und die Aktionen.