Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-08-2005, 17:02   #1 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
"Simon say's"

Ihr kennt vielleicht das alt bekannte Spiel. Man muss z.B. zwischen 4 Farben eine wählen und jede Runde fügt der CPU eine neue Zufallsfabre zu, die man danach dann wieder ein Reihenfolge durchklicken muss. Das alte "rot, rot, gleb, blau, blau, gelb, rot, grün, blau, gelb, rot --- falsch MÖÖÖÖÖP "oh, schade ... "" .. so in der Art ^^

Wollte das mit Flash umsetzen, klappt soweit auch ganz gut, aber an einer Ecke komm ich nicht vorwärts grade.
Möchte gerne das dr CPU (gegen den man Spielt, abwechelnd jede Runde eine neue Farbe), ab und zu auch mal einen Fehler macht und der Spieler gewonnen hat. Je höher die Rundenzahl (also je länger die Farben-Folge bereits) umso höher die wahrscheinlichkeit, dass er daneben haut.

Bissher funzt das so:

CPU Runde (bildmarke "cpu"):
ActionScript:
  1. this["objekt_"+[spiel[i]]].play();
  2. i++;

Dann laufen etwa 10 Frames um die Animation des jeweiligen Objekts (farbe) zu zeigen. Anschliessend folgendes Script:

ActionScript:
  1. if (i<runde+1) {
  2.     gotoAndPlay("cpu");
  3. } else {
  4.     if (_root.last == true) {      
  5.         _root.last = false;
  6.         i=0;
  7.         gotoAndStop("klick"); // spielerrunde
  8.     } else {
  9.         runde++;
  10.         spiel[runde] = random(4)+1;
  11.         _root.last = true;
  12.         gotoAndPlay("cpu");
  13.     }
  14. }

hab bissher schon viel versucht um eine Fehlerwarscheinlichkeitsrechnung einzufügen, aber irgendwie ging dann alles drunter und drüber und nichts ging mehr vernünftig. Jemand von euch ne Idee, wie er da ansetzen würde? Wahrscheinlichkeit kann man auf Variable "runde" basieren, die eben jede Runde +1 zählt.

Schon mal danke für jeden Denkansatz!

Gruss,
Dwarf

Geändert von djdwarf (01-08-2005 um 17:05 Uhr)
djdwarf ist offline   Mit Zitat antworten
Alt 01-08-2005, 18:05   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Math.random liefert einen wert von 0 bis 1
0.1 z.b. entspricht somit 10%

angenommen nach 50 farben solls vorbei sein, dann:
cpu_raten=1; // cpu rät 100% richtig
cpu_wird_schlechter=1/50; // bei jedem durchlauf 1/50 = 2% schlechter
// nach 50 durchläufen rät die cpu 0% richtig == 100% falsch

if (Math.random()<cpu_raten){
// richtig 'raten'
} else {
// falsch 'raten'
}
cpu_raten-=cpu_wird_schlechter;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 02-08-2005, 10:06   #3 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
Ah, danke, das klappt soweit schon ganz gut Hab noch den Faktor runde mit einbezogen, das quasi je höher die Runde, der Erweiterungs Schritt höher ausfällt, also der anstieg nicht Gradlinieg ist. Danke!
djdwarf ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele