Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-02-2003, 20:55   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Aachen
Beiträge: 1.081
[MX] reversi

hi,

hab mich mal daran gemacht das Spiel reversi mit Flash umzusetzen.

ActionScript:
  1. // Vorbereitungen...
  2.  
  3. //Spielfeld initialisieren
  4. // 1 -> Schwarz
  5. // 2 -> Weiss
  6. feld=[0,0,0,0,0,0,0,0]
  7. feld[0]=[0,0,0,0,0,0,0,0]
  8. feld[1]=[0,0,0,0,0,0,0,0]
  9. feld[2]=[0,0,0,0,0,0,0,0]
  10. feld[3]=[0,0,0,2,1,0,0,0]
  11. feld[4]=[0,0,0,1,2,0,0,0]
  12. feld[5]=[0,0,0,0,0,0,0,0]
  13. feld[6]=[0,0,0,0,0,0,0,0]
  14. feld[7]=[0,0,0,0,0,0,0,0]
  15.  
  16. // RichtungsVektoren [x-richtung,y-richtung]
  17. richtung=[0,0]
  18. richtung[0]=[0,0,1,-1,1,-1,1,-1]
  19. richtung[1]=[1,-1,0,0,1,-1,-1,1]
  20.  
  21. //Einige Funktionen...
  22. // Aus der Maus Position herauslesen auf welchem Feld man sich befindet
  23. function feldErkennen(x,y) {
  24.     for (n=0; n<8; n++) {
  25.         if ((x>n*30)&&(x<(n+1)*30)) { xpos=n }
  26.         if ((y>n*30)&&(y<(n+1)*30)) { ypos=n }
  27.     }
  28.     return[xpos,ypos]
  29. }
  30. //Prüft ob ein gesetztes Feld gültig ist...
  31. function feldGueltig(n,r,farbe) {
  32.   antwort=false
  33.     for (u=0; u<=richtung[0].length; u++) {
  34.       if((feld[n+richtung[1][u]][r+richtung[0][u]]==farbe*-1+3)&&(feld[n][r]==0)) {
  35.         p=1
  36.         while(feld[n+(p*richtung[1][u])][r+(p*richtung[0][u])]==farbe*-1+3) { p++ }
  37.         if (feld[n+(p*richtung[1][u])][r+(p*richtung[0][u])]==farbe) {
  38.           antwort=true
  39.         }
  40.       }
  41.     }
  42.   return antwort
  43. }
  44. // nach dem Zug, die Felder entsprechend umstellen...
  45. function feldAktualisieren(n,r,farbe) {
  46.     for (u=0; u<richtung[0].length; u++) {
  47.         p=1
  48.         while(feld[n+(p*richtung[1][u])][r+(p*richtung[0][u])]==farbe*-1+3) { p++ }
  49.         if (feld[n+(p*richtung[1][u])][r+(p*richtung[0][u])]==farbe) {
  50.             for (i=1; i<=p; i++) {
  51.                 feld[n+(i*richtung[1][u])][r+(i*richtung[0][u])]=farbe
  52.             }
  53.  
  54.         }
  55.     }
  56.  
  57. }

das ist auch schon das gröbste...

Was noch fehlt,
- Funktion die Prüft ob überhaupt noch ein Zug möglich ist
- AI
- bissel Struktur im Code

vieleicht hat ja jemand Lust...

mal reinschauen

haben

viel Spaß damit...
__________________
G.M. | working @ source lounge

Geändert von georgexp (18-02-2003 um 21:20 Uhr)
georgexp ist offline   Mit Zitat antworten
Alt 18-02-2003, 21:29   #2 (permalink)
anyway
Gast
 
Beiträge: n/a
Geil.

Wenn ich mich noch richtig an meine C64er Zeit zurückerinner, dann kamen da vom Computer immer so nervige Kommentare per Laufschrift reingefahren wie:

"jetzt zieh schon endlich.."

"Herr lass Hirn regnen"

usw..



anyway.
  Mit Zitat antworten
Alt 18-02-2003, 21:40   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
Cool!
Idee fürn nächsten KI-Wettbewerb?
Gnut ist offline   Mit Zitat antworten
Alt 19-02-2003, 00:40   #4 (permalink)
filmtip: snatch
 
Registriert seit: Oct 2001
Beiträge: 1.562
Thumbs up

good one.



macht lust auf mehr !
Skyla ist offline   Mit Zitat antworten
Alt 19-02-2003, 13:07   #5 (permalink)
Neuer User
 
Benutzerbild von v0id
 
Registriert seit: Oct 2002
Ort: München
Beiträge: 1.582
richtig geil!
sieht top aus und seeehr kompakt gehalten..
ich hätt wahrscheinlich n paar tausend zeilen gebraucht
v0id ist offline   Mit Zitat antworten
Alt 19-02-2003, 13:12   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Aachen
Beiträge: 1.081
Zitat:
ich hätt wahrscheinlich n paar tausend zeilen gebraucht
glaub mir, du willst garnicht wissen, wie das aussah, als ich die RichtungsVektoren noch net hatte
__________________
G.M. | working @ source lounge
georgexp ist offline   Mit Zitat antworten
Alt 19-02-2003, 13:38   #7 (permalink)
Neuer User
 
Benutzerbild von v0id
 
Registriert seit: Oct 2002
Ort: München
Beiträge: 1.582
hehe kanns mir vorstellen
v0id ist offline   Mit Zitat antworten
Alt 19-02-2003, 16:26   #8 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
man kann mit der Maus seltsame sachen auf den Hintergrund zeichenen???
Alpha = 1; ????
Janoscharlipp ist offline   Mit Zitat antworten
Alt 22-02-2003, 14:11   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Aachen
Beiträge: 1.081
hi,

UPDATE,

- Vor jedem Spielzug wird nun geprüft, ob überhaupt ein Zug möglich ist, wenn nicht ist der gegenspieler weider dran.
ActionScript:
  1. function zugMoeglich(farbe) {
  2.     for (n=0; n<feld.length; n++) {
  3.         for (r=0; r<feld[n].length; r++) {
  4.             if (feld[n][r]==farbe) {
  5.                 for (u=0; u<richtung[0].length; u++) {
  6.                     if(feld[n+richtung[1][u]][r+richtung[0][u]]==farbe*-1+3) {
  7.                         p=0
  8.                         while(feld[n+(p*richtung[1][u])][r+(p*richtung[0][u])]==farbe*-1+3) { p++ }
  9.                         if (feld[n+(p*richtung[1][u])][r+(p*richtung[0][u])]==farbe) {
  10.                             return true
  11.                         }
  12.                     }
  13.                 }
  14.             }
  15.         }
  16.     }
  17.     return false
  18. }

- Simple KI mit eingebaut.

gegen KI spielen

Vieleicht wagt ihr ja mal en Spielchen...

findet noch wer en bug ?


Viel Spaß damit....

[edit]
LordMort, is behoben.
__________________
G.M. | working @ source lounge

Geändert von georgexp (22-02-2003 um 14:13 Uhr)
georgexp ist offline   Mit Zitat antworten
Alt 22-02-2003, 14:20   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
Sehr cool georgexp!
Habe aber noch einen Bug entdeckt:
- mein Stein hat schon eine Ecke besetzt und wurde trotzdem reversed
Gnut ist offline   Mit Zitat antworten
Alt 22-02-2003, 14:26   #11 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
Anscheinend passiert's nur an der Ecke links oben.
Gnut ist offline   Mit Zitat antworten
Alt 22-02-2003, 14:36   #12 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Aachen
Beiträge: 1.081
gnut,

ja, ich arbeite dran,

kommt bei der KI nix raus wird [0,0] zurückgegeben, also links-oben.

seltsammerweisse ist der Zug auch "korrekt"

mal davon abgesehen scheint es zu funktionieren...
__________________
G.M. | working @ source lounge
georgexp ist offline   Mit Zitat antworten
Alt 22-02-2003, 14:41   #13 (permalink)
Neuer User
 
Benutzerbild von v0id
 
Registriert seit: Oct 2002
Ort: München
Beiträge: 1.582
noch immer genial
v0id ist offline   Mit Zitat antworten
Alt 22-02-2003, 14:49   #14 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Aachen
Beiträge: 1.081
so...

Fehler in [0,0] Koordinate ist auch behoben.

seh keine Bugs mehr...

jemand schon gewonnen ?
__________________
G.M. | working @ source lounge
georgexp ist offline   Mit Zitat antworten
Alt 22-02-2003, 14:52   #15 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
gewonnen?
Siehe screenshot oben.
Gnut 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 15:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele