| |||||||
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: Jul 2002 Ort: Bonn-Beuel
Beiträge: 23
| Matheproblem: Zahl aus Summanden darstellbar?
Hallo zusammen, Ich hab ein Kleines Problem. Ich arbeite gerade an einem Spiel, das ähnlich wie Add-it Up funktionieren soll. Link: www.flasharcade.com . D.h. man hat ein Feld mit 100 anklickbaren Zahlen zwischen 1 und 9, und eine gesuchte zahl zwischen 1 und 20. Wenn die angeklickten Zahlen in Summe die gesuchte Zahl ergeben, verschwinden sie und eine neue Zahl erscheint. Das klappt bei mir auch alles soweit. Nur was ich noch brauche ist eine Funktion, die checkt, ob die gesuchte Zahl mit den auf dem Feld verbliebenen Zahlen darstellbar ist. Das mit "roher Gewalt" zu lösen (d.h. Kombination aller Felder miteinander ausprobieren, und aussteigen sobald die Summe gebildet ist) erscheint mir nicht sehr glücklich. Andere Idee meinerseits, zu jeder Zahl von 1-19 einen 2dimensionales Array anlegen, das hart-codiert alle möglichen Kombinationen zur Summierung der Zahl enthält. Was allerdings ziemlich viel Handarbeit wäre. Für praktikable Vorschläge wäre ich dankbar, Grüße, TokraT |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
falsche reihenfolge! erzeuge deine "gesuchte" zahl aus den vorgegebenen möglichkeiten. dann brauchst du hinterher nicht zu prüfen ob man es hätte machen können.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Aloha! Meinst Du sowas ? oder hab ich was falsch verstanden ActionScript:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jul 2002 Ort: Bonn-Beuel
Beiträge: 23
|
Danke für den Tipp. Dass wäre allerdings eine gute Lösung, wenn auch nur teilweise. Das Spiel ginge dann ja immer auf. Ich möchte aber auch erreichen, dass der Spieler versucht, "strategisch vorzugehen" und sich möglichst viele Möglichkeiten offen hält, die kleinen zahlen nicht direkt alle verbrät, etc. Das ganze hätte so mehr Reiz, wenn man versucht, dass möglichst wenige Zahlen übrig bleiben. |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jul 2002 Ort: Bonn-Beuel
Beiträge: 23
|
@rusty ich fürchte da hast du mich falsch verstanden. was ich suche ist eine no-Moves-Left-Funktion für das Spiel. schau mal unter dem Link, wenn man es mal kurz anspielt wird schnell klar was ich meine. thx, tokrat |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
"..Das Spiel ginge dann ja immer auf.." aaaahja, klasse spiel, das dann am ende sagt: ätsch, geht ja garnicht! --- "..wenn man versucht, dass möglichst wenige Zahlen übrig bleiben.." dazu gibt es nur eine einzige lösung: alle einser, dann alle zweier, dann... --- "..strategisch vorzugehen.." ("..das ähnlich wie Add-it Up funktionieren soll.." also nicht gleich?) wäre vielleicht, wenn man gegen den computer spielt (wer die zahl zuerst erreicht) und die anzahl der auswählbaren zahlen geringer ist (also 100 ist zu viel und es sollten auch 10, 11, 12, 13 usw. geben. dafür müssten ein paar zahlen fehlen) weil, wer so aus dem vollen schöpfen kann, der braucht keine strategie. und weitere spielregel: jede neue zahl MUSS grösser sein als die zuvor genommene. (kommt halt drauf an, ob das spiel für kinder oder für kindische sein soll) ---- "..100 anklickbaren Zahlen zwischen 1 und 9, und eine gesuchte zahl zwischen 1 und 20.." möglicher algorithmus z.b. backtracking (ausweg durch einen irrgarten suchen): alle möglichen zahlen sortieren (von gross nach klein). jetzt der reihe nach aufaddieren, bis die zahl erreicht ist=ende oder überschritten. wenn überschritten, dann letzte zahl durch eine kleinere ersetzen wenn keine kleinere mehr da ist, dann vorletzte durch eine kleinere zahl ersetzen und wieder die letzte zahl austauschen. "beschleunigend" ist, dass man z.b. eine 5 nicht durch eine 5 ersetzen muss ;-) "beschleunigend" ist, das wenn z.b. die vorletzte zahl ausgetauscht wird, die letzte zahl nicht grösser sein braucht, als die "original" vorletzte.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (06-09-2004 um 21:21 Uhr) |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Jul 2002 Ort: Bonn-Beuel
Beiträge: 23
|
Danke für die umfangreiche Antwort. Du hast recht, ich sollte die Größe des Zahlenfeldes reduzieren, und auch ein paar Zahlen zwischen 1 und 9 komplett rauslassen. (Mit verschienden Beschränkungen lassen sich so auch sehr leicht verschiedene Schwierigkeitsgrade erstellen). Sonst wär es zu leicht, obwohl es mir auch in der einfachen Variante schon Spass macht ,liegt vielleicht an meiner kindischen Ader .So jetzt muss ich den Algorithmus nur noch in AS umsetzen aber das krieg ich schon hin. thx alot, tokrat |
| | |
| | #8 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
"..Danke für die umfangreiche Antwort.." ist halt erfreulich, wenn mal eine andere frage kommt als: "mein preloader geht nicht" u.d.g. schon 10.000mal beantwortete fragen. die problematik von diesem spiel ist auch für mich interessant. "..Sonst wär es zu leicht.." ja, ich habe die "vorlage" 3x gespielt. ist sauber gemacht (da kann man wirklich nicht mäckern), aber sofort langweilig, weils wie "domino" funktioniert: man versucht zuerst die grossen zahlen los zu werden... das spiel wird somit rein mechanisch ausgeführt und bietet keine überraschungsmomente. bestenfalls für schüler geeignet, zum erlernen der grundrechenart. oder halt um's programmieren zu lernen ;-)
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (07-09-2004 um 16:45 Uhr) |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
also das rechnerische würde ich so regeln: die anzahl der vorhandenen einzelnen zahlen in nem array hinterlegen. das könnte für die zahlen 1-9 ungefähr so aussehen zahlen=[2,3,5,3,11,7,5,3,1] heißt also von n=4 gibt es zahlen[n-1]->3 Stück. wenn du nun einen algorythmus findest, der dir für eine beliege zahl n alle möglichen summen zurückgibt kannst du doch die sache wie folgt angehen. summenalgo(4) liefert dir [4],[2,1],[1,0,1] auf deutsch: 1+1+1+1 // 1+1+2 // 1+3 nun kannste doch überprüfen ob alle notwendigen zahlen in dem array oben ("zahlen") vorhanden sind, schlagen alle fehl,so kann die zahl nicht mehr als summe dargestellt werden. der summenalgo könnte sicherlich am besten rekursiv beschrieben werden. oder mit ner geschickten while-schleife. grüße deluxe |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |