| |||||||
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: Apr 2003
Beiträge: 173
| Wie kann ich den Zufall umgehen.
Hallo, ich hab folgendes Problem. Ich will ein Wortsuchspiel machen, und dafür soll ein Wort in einem Zahlenfeld mit 10 auf 10 Feldern versteckt werden. Ich bin jetzt soweit, das ich die 100 Felder dynamisch erzeuge und mit zufälligen Buchstaben fülle. ActionScript:
Jetzt bin ich mit meinem Latein am Ende. Ich habe das Suchwort als String aus einem XML. Den zerleg ich erstmal in Einzelteile, klar. D.h. ich hab die einzelnen Buchstaben des Suchworts jetzt in nem Array. Nur wie positionier ich die jetzt? Ich möchte zum einen, dass das gesuchte Wort mal vertikal, mal horizontal auftaucht (diagonal muss nicht sein). Außerdem muss ich ja überprüfen, ob das Wort von der Zeichenanzahl überhaupt reinpasst (Wörter mit mehr als 10 Buchstaben kommen einfach nicht vor ) Wie krieg ich es hin, dass er mir das Suchwort an einer zufälligen Stelle mal horizontal mal vertikal positioniert? Bin über jede Hilfe dankbar. Gerne auch Denkanstöße, ich hab nämlich keinen Plan wie ich da ran gehen soll. Viele Grüße Manni Geändert von mannimedia (07-09-2005 um 14:06 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Apr 2003
Beiträge: 173
|
Ja, das ist mir klar. Ich weiß aber nicht wie. Ich möchte ja auch, dass das Suchwort jedesmal an ner anderen Stelle ist. Wie verteile ich z.B. innerhalb meiner Funktion das Suchwort? Soll ich die erstellten Movieclips überschreiben? Und wie kann ich überprüfen an welcher Stelle es reinpasst. Danke und Grüße Manni |
| | |
| | #4 (permalink) |
| voidboy Registriert seit: Sep 2004 Ort: München
Beiträge: 5.588
|
Wenn du die Wortlänge weist und dir ne zufällige diagonale aussuchst, weist du auch wie lang diese ist, folglich weist du dann auch ob es reinpassen würde. Genauso waagerecht und senkrecht. Kannst du den erstellten MC's kein Textfeld mitgeben in den du dann immer den entsprechenden Buchstaben per AS schreibst? |
| | |
| | #5 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
| ActionScript:
schreibst den neuen buchstaben da rein. ein neues mc ist ja wohl blödsinn.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Apr 2003
Beiträge: 173
|
klar. vielen dank, das war das was ich gebraucht hab. hab es erstmal nur für senkrecht weitergeschrieben und bin jetzt so weit: ActionScript:
Jetzt schreibt er das Wort schon. schreibt aber senkrecht nix mehr rein, sobald der Array leer ist. Ist ja eigentlich auch klar, aber wie kann ich das umgehen, oder geh ich grad völlig falsch an die Sache ran? Habs schon mit for-Schleifen versucht, kriegs aber nicht hin. Vielen Dank schonmal und Grüße Manni |
| | |
| | #7 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
ist doch sooo einfach ... lerne bitte functionen zu erstellen. das macht alles übersichtlicher und wartungsfreundlicher: - eine funktion, die NUR dein mc -array erstellt. - eine funktion, die ALLE texte mit zufallsbuchstaben füllt - eine funktion, die NUR das suchwort drüberschreibt. und nicht alles in einem einzigen spagetticode verwurschteln!!! programmablauf ist dann: 1. init (mc's erstellen) 2. neues spiel (zufallsbuchstaben eintragen) 3. suchwort drüberschreiben 4. user sucht 5. weiter bei 2.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (07-09-2005 um 16:57 Uhr) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Apr 2003
Beiträge: 173
|
super danke für die hilfe. ich bin noch am lernen, und deshalb über jeden hinweis was das rangehen an so ein script angeht sehr dankbar. hab das jetzt mal aufgeteilt. poste mal den ganzen code. ActionScript:
das klappt jetzt auch schon beinah. das komische ist nur das er die for-Schleife manchmal komplett macht, aber meistens nicht vollständig fertig macht. Woran liegt das? Und dann noch ne grundsätzliche Frage: Wann sind Variablen den lokal und wann global? Ich versteh jetzt z.B. nicht warum ich in der Funktion erstelleSuchwort() auf die Variablen anzahl oder geteiltesSuchwort zugreifen kann. Die sind doch eigentlich nur in der Funktion erstelleArray() definiert. Aber ich habs mir per trace ausgeben lassen und das ging. Neulich hat mir jmd. gesagt man soll immer schauen so wenig globale Variablen zu verwenden wie möglich. Stimmt das, und wenn ja warum? Danke schonmal und Grüße Manni |
| | |
| | #9 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
"..ich bin noch am lernen.." wer ist das nicht? "..Wann sind Variablen den lokal und wann global?.." var <-- macht eine variable lokal "..so wenig globale Variablen zu verwenden wie möglich.." functionen sollten möglichst 'autark' funktionieren. so kann man sie auch für andere projekte einsetzen. bei sehr komplexen programmen besteht die gefahr, das man eine globale benützt, die man schon wo anders benützt hat - dann gibts durcheinander. wer aber ordentlich initialisiert, der hat damit keine probleme ;-) das aufteilen ist schon ok, aber du bist immer noch am verwurschteln ;-) mach ein hautp-programm (main) und nicht: 'eine funktion ruft die nächste auf'. hab die sache mal überarbeitet. u.a.: man kann sehr gut mit xml arbeiten. ist nicht immer notwendig, das in ein array zu überschreiben.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (08-09-2005 um 23:13 Uhr) |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Apr 2003
Beiträge: 173
|
Wow, vielen Dank. Das sieht ja jetzt ganz anders aus. Ich hab das jetzt noch ein bißchen umgeschrieben ActionScript:
Zum einen reicht es wenn die Suchwörter nur vorwärts lesbar sind, deshalb hab ich unten das if random(2) reingeschrieben. Mein Problem ist jetzt, wie krieg ich hier nen Zufall mit rein, damit die Reihenfolge der Wörter jedesmal anders ist? Deshalb hatte ich eigentlich den Array. Oder geht das jetzt auch mit diesen Funktionen. So wie ich das sehe könnte ich höchstens sagen er soll an ein bestimmte Stelle im XML springen, und dann der Reihenfolge nach die Wörter durchgehen, oder? Dann noch ein paar allgemeine Fragen: - Brauch ich im XML die ID? Wenn ja wofür? - Ist die Funktion fClearChars() nötig? Oder war die nur da um's testen zu können? Vielen Dank schonmal für Deine Mühe. Hoffe ich nerv die nicht zu sehr LG Manni |
| | |
| | #11 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
"..damit die Reihenfolge.." du musst nicht den berg umgraben, nur damit du ihn von der anderen seite besteigen kannst. es langt, wenn du die indizes per zufall auswählst (hier suchwortnr). "..Brauch ich im XML die ID? Wenn ja wofür?.." ob du die brauchst weiss ich nicht. ich jedenfalls greife damit var _xml = suchworte[suchwortnr++]; auf die notes zu ;-) p.s. fragen kann man sich auch selbst beantworten, durch einfaches ausprobieren. "..Ist die Funktion fClearChars() nötig?.." gegenfrage: ist dein wortsuchspiel nötig? a) das war in 3 millisekunden erstellt. b) beim testen kann ich so prima sehen, wo die wörter hingeschrieben werden. das könnte man z.b. auch nutzen, um die frage zu lösen (optisch anzuzeigen) - aber nötig ist das nicht. "..Dank schonmal für Deine Mühe.." ditto. aber ich mache das nicht für dich :-( ich bin hier ständig auf suche nach neuen ideen, anregungen und sachen, aus denen man was machen kann. und werde das ("..Das sieht ja jetzt ganz anders aus.." - ich klaue nichts) irgendwann auf meine homepage integrieren. also sorry, ich helfe hier niemandem, sondern nur mir selbst ;-) p.s. du machst dir wenigstens gedanken um die sache (und keineswegs falsche :-) da antwortet man gerne! andere 'fordern' fertige lösungen und sind sauer, wenn man darauf hinweisst, dass das hier kein kostenloser selbstbedienungsladen ist.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (09-09-2005 um 14:08 Uhr) |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Apr 2003
Beiträge: 173
|
"..ich helfe hier niemandem, sondern nur mir selbst..." ok, versteh ich Find's halt nur toll wenn sich jmd. die Mühe macht, auch wenn es für ihn selbst ist :-), anderen zu helfen, und dann das Ding komplett neu schreibt. Deshalb meine Dankesworte. Aber zurück zum Thema. Ich versuch jetzt mal mit dem Skript weiter zu basteln, da muss ja noch ein bißchen was dazu. Gefundene Buchstaben anklicken etc.. Kann sein das ich mich dann nochmal melde. Noch ne Frage zu meinem oberen Skript. Wieso hat das mal geklappt und mal nicht? Was ist daran falsch? |
| | |
| | #13 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
for(m = y_anf; m <= y_anf+anzahl; m++ ){
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #14 (permalink) |
| Neuer User Registriert seit: Apr 2003
Beiträge: 173
|
Vielen dank. Hab es jetzt aber mit deinem Skript fertig gemacht. Hat auch alles wunderbar geklappt. Bin wieder auf Arrays umgestiegen, da ich jedes Wort nur einmal haben wollte. Und das wäre ohne Arrays ja nicht gegangen. LG Manni Geändert von mannimedia (12-09-2005 um 13:54 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |