| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: May 2004 Ort: Berlin
Beiträge: 43
| Schiebe Puzzel
Moin Moin, Wollte mal fragen ob jemand einen Tip hat. Bin am Anfang der Programmierung eines Schiebe Puzzels. Beispiel: http://www.ugoplayer.com/games/foxyf...eenpuzzle.html Ich kann mir jetzt nicht so gut vorstellen, ob man beim zufälligem neu Mischen vor dem Spiel dies komplett zufällig macht. Oder müsste man da einem Muster beim Mischen nachgehen. Z.B. zufällig von dem richtigem Puzzel ein Stein nach dem nächsten verschieben. Vielen Dank für nen Tip, Lucien |
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.326
|
[edit] SORRY, musste erst einen käfer entfernen und noch ein bisschen optimieren da es 50% gerade permutationen gibt kann man auch danach suchen. die trefferhäufigkeit lässt keine all zu lange suchzeit vermuten ;-) Code: function fStrPermutationSignum(str) {
return fAryPermutationSignum(str.split(''));
}
function fAryPermutationSignum(_ary) {
var anz = _ary.length;
var inversionen = 0;
for (var i = 0; i<anz-1; i++) {
var ai=_ary[i]
for (var j = i+1; j<anz; j++) {
if (ai>_ary[j]) inversionen++;
} }
return inversionen%2 ? -1 : 1;
}
//
function fPermutationRandom(n) {
var _ary = [];
while (n--) _ary.push(n);
_ary.sort(function () {return random(3)-1;});
return _ary;
}
function fPermutationRandomSignum(anzahl, signum) {
do {
var permutation = fPermutationRandom(anzahl);
} while (!(fAryPermutationSignum(permutation) == signum));
return permutation;
}
//
// anwendungsbeispiele:
trace(fStrPermutationSignum("123"));
trace('gerade permutation: '+fPermutationRandomSignum(16, 1));
trace('ungerade permutation: '+fPermutationRandomSignum(200, -1)); http://www.seibsprogrammladen.de/fra...piel/Kleinkram
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (01-02-2009 um 02:18 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |