Felix Riesterer: Mensch ärgere dich nicht als Browsergame in JS

0 92

Mensch ärgere dich nicht als Browsergame in JS

Felix Riesterer
  • seitenbewertung
  1. 0
    Kai345
    1. 0
      Felix Riesterer
  2. 0
    suit
    1. 0
      Felix Riesterer
      1. 0
        Gunnar Bittersmann
        1. 0
          Felix Riesterer
          1. 0
            Gunnar Bittersmann
    2. 0
      Detlef G.
      1. 0
        Gunnar Bittersmann
  3. 0
    Gunnar Bittersmann
    1. 0
      Felix Riesterer
      1. 0
        Gunnar Bittersmann
        1. 0
          Felix Riesterer
  4. 0
    LX
    1. 0
      Der Martin
      1. 0
        LX
      2. 0

        Tippfehler in der Signatur

        hgfhfs
        • menschelei
    2. 0
      Felix Riesterer
    3. 0
      Gunnar Bittersmann
  5. 0
    Der Martin
    1. 0
      Kai345
      1. 2
        Tom
        1. 0
          Felix Riesterer
      2. 0
        Felix Riesterer
    2. 0
      Felix Riesterer
      1. 0
        Der Martin
        1. 0
          Felix Riesterer
          1. 0
            Detlef G.
  6. 2
    Gernot Back
    1. 0
      Felix Riesterer
      1. 0
        Gernot Back
  7. 0
    Blubb
    1. 0
      Felix Riesterer
      1. 0
        Matthias Apsel
    2. 0
      Gunnar Bittersmann
      1. 0
        Felix Riesterer
  8. 0
    Klawischnigg
    1. 0
      Felix Riesterer
      1. 0
        Der Martin
        1. 0
          Felix Riesterer
          1. 0
            Der Martin
            1. 0
              Felix Riesterer
              1. 0
                Der Martin
      2. 0
        Gunnar Bittersmann
        1. 0
          Felix Riesterer
          1. 0
            Gunnar Bittersmann
            1. 0
              Gunnar Bittersmann
              1. 0
                Der Martin
                1. 0
                  Gunnar Bittersmann
  9. 0
    romy
    1. 0
      romy
    2. 0
      Felix Riesterer
  10. 0
    Gunnar Bittersmann
    1. 0
      Felix Riesterer
      1. 0
        Kai345
        1. 0
          Felix Riesterer
    2. 0
      O'Brien
    3. 0
      Don P
      1. 0
        Der Martin
        1. 0
          Felix Riesterer
          1. 0
            Eingefroren
            1. 0
              Felix Riesterer
      2. 0
        Felix Riesterer
        1. 0
          Don P
          1. 0
            Felix Riesterer
  11. 0

    Schneller? Schneller!

    Felix Riesterer
    1. 0
      Gunnar Bittersmann
  12. 0
    Don P
    1. 0
      Felix Riesterer
      1. 0
        Don P
    2. 0

      "ängstliche" Spielfiguren länger ängstlich sein lassen

      Felix Riesterer
      1. 0
        Don P
        1. 0
          Felix Riesterer
          1. 0
            Don P
            1. 0
              Don P
  13. 0
    O'Brien
  14. 0

    Schlagzwang optional + neue Hierarchie der möglichen Spielsteine

    Felix Riesterer
    1. 0
      Der Martin
      1. 0
        Felix Riesterer
        1. 0
          Der Martin
          1. 0
            Felix Riesterer
            1. 0
              Der Martin
              1. 0
                O'Brien
                1. 0
                  Der Martin
              2. 0
                Felix Riesterer
                1. 0
                  Der Martin
                  1. 0

                    Warum Grafiken vorladen...?

                    Felix Riesterer
  15. 0

    Safari unter iPhone macht mit

    Felix Riesterer
    • browser
  16. 0

    Spielregeln ergänzt - Kritik?

    Felix Riesterer
    1. 0
      Don P
  17. 0

    MÄDN: Spielregeln, individuelle Details

    Der Martin
    • sonstiges

Liebe Mitlesende,

nach meinen Tests müsste das Spiel eigentlich(!) zufriedenstellend laufen, aber da ich nicht alle aktuellen Browser testen kann, bitte ich um fleißiges Ausprobieren: "Mensch ärgere dich nicht!" online spielen

Sehr gern gesehen ist auch Feedback bezüglich des User Interfaces. Wenn jemand ganz andere (Verbesserungs)Vorschläge hat, so bin ich daran selbstverständlich ebenso interessiert.

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  1. [latex]Mae  govannen![/latex]

    nach meinen Tests müsste das Spiel eigentlich(!) zufriedenstellend laufen, aber da ich nicht alle aktuellen Browser testen kann, bitte ich um fleißiges Ausprobieren: "Mensch ärgere dich nicht!" online spielen

    Sehr gern gesehen ist auch Feedback bezüglich des User Interfaces. Wenn jemand ganz andere (Verbesserungs)Vorschläge hat, so bin ich daran selbstverständlich ebenso interessiert.

    Im Opera 10.63 und 11 sieht die Spieler-Auswahl so aus: http://knrs.de/misc/2011-02/maedn.jpg, weil ich eine Mindest-Schriftgröße von 12 eingestellt habe. Die "Orginalschriftgröße" (mit der es wie gewünscht dargestellt wird) ist für mich jedenfalls kaum zu entziffern

    Stur lächeln und winken, Männer!
    Kai

    --
    Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
    in Richtung "Mess up the Web".(suit)
    SelfHTML-Forum-Stylesheet
    1. Lieber Kai345,

      Im Opera 10.63 und 11 sieht die Spieler-Auswahl so aus: http://knrs.de/misc/2011-02/maedn.jpg

      die gegenwärtige Darstellung ist noch nicht endgültig. Vor allem die IEs machen da noch Probleme. Solange die Funktionalität störungsfrei gewährleistet ist, bin ich schonmal sehr zufrieden.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Sehr gern gesehen ist auch Feedback bezüglich des User Interfaces. Wenn jemand ganz andere (Verbesserungs)Vorschläge hat, so bin ich daran selbstverständlich ebenso interessiert.

    Mehr Geschwindigkeit - das Ding ist zu langsam :) besonders wenn man 4 Computergegner gegeneinander spielen lasst.

    Übrigens: wo ist der Schummel-Knopf? Bei Mensch ärgere dich nicht ist das Grundvoraussetzung - wie bei Monopoly :p

    Das JPG-Hintergrundbild (welches in PNG konvertiert wurde) ist ziemlich bescheiden :) da kannst du gleich JPG verwenden. 200 kb für eine so eine Grafik ist jedenfalls nicht grade wenig.

    Du kannst hier ggf. mit einem Sprite sparen (9 Kreise) - die einzelnen positionen der Felder müssten dir ohnehin bekannt sein. Den hintergrund mit dem radialen Verlauf kannst du per Gradient machen.

    Besonders für unterwegs ist sowas ggf. recht spaßig - auf dem Mobiltelefon - da ist aber jedes KB viel wert wenn man davon ausgeht, dass manche Anbieter je MB[!] 25 Cent und teilweise bis zu 1 Euro wollen und nur ein paar MB im Grundumfang mitliefern.

    1. Lieber suit,

      Mehr Geschwindigkeit - das Ding ist zu langsam :) besonders wenn man 4 Computergegner gegeneinander spielen lasst.

      die Anregung mit einer Einstellungsoption für Bewegungsgeschwindigkeit (da denke ich gleich an eine live-Einstellung) werde ich mir überlegen. Ich könnte ja die Animationen für die Bewegungen der Spielsteine abschaltbar machen...

      Übrigens: wo ist der Schummel-Knopf? Bei Mensch ärgere dich nicht ist das Grundvoraussetzung - wie bei Monopoly :p

      Du könntest für menschliche Spieler das Würfelergebnis beeinflussen. Dazu müsstest Du entweder eine JavaScript-Konsole haben (wie Firebug sie bietet), oder eben über die Adresszeile des Browser Deine JavaScript-Aufrufe eingeben. Noch bietet das Script zu Testzwecken die Möglichkeit, den Würfel zu manipulieren. ;-)

      javascript:void(MAEDN.dice.roll(1,6)); // garantiert eine sechs

      Das JPG-Hintergrundbild (welches in PNG konvertiert wurde) ist ziemlich bescheiden :) da kannst du gleich JPG verwenden. 200 kb für eine so eine Grafik ist jedenfalls nicht grade wenig.

      Ja, da habe ich noch nicht weiter dran gearbeitet. Die Umfärbung der Smiley-Grafiken war mir wesentlich wichtiger und auch wesentlich zeitaufwändiger. Aber am Spielfeld lässtsich bestimmt noch etwas verbessern.

      Du kannst hier ggf. mit einem Sprite sparen (9 Kreise) - die einzelnen positionen der Felder müssten dir ohnehin bekannt sein. Den hintergrund mit dem radialen Verlauf kannst du per Gradient machen.

      Da ist mir das gegenwärtige Hintergrundbild dann doch lieber...

      Besonders für unterwegs ist sowas ggf. recht spaßig - auf dem Mobiltelefon - da ist aber jedes KB viel wert wenn man davon ausgeht, dass manche Anbieter je MB[!] 25 Cent und teilweise bis zu 1 Euro wollen und nur ein paar MB im Grundumfang mitliefern.

      Aber dann sind die Smiley-Grafiken ein echter Datenbatzen! Das Verzeichnis enthält 637KiB insgesamt - und da sehe ich kaum Potenzial für Einsparungen. Vielleicht gibt es ein Programm (kenne selbst keines), das mir die animierten GIF-Grafiken etwas komprimiert (sind mit GIMP bearbeitet), aber was da an Einsparungen möglich ist, kann ich nicht sagen.

      Überhaupt kann ich mangels eines eigenen Smartphones die Funktionalität auf einem solchen nicht testen. Hast Du da Erfahrungswerte?

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. @@Felix Riesterer:

        nuqneH

        Den hintergrund mit dem radialen Verlauf kannst du per Gradient machen.

        Da ist mir das gegenwärtige Hintergrundbild dann doch lieber...

        Hast du dafür einen sinnvollen Grund?

        2 Zeilen CSS (etwa 200 Byte) gegenüber 200 Kilobyte Grafik?

        Und PNG ist hier wohl das falsche Grfikformat, JPEG bietet sich für Farbverläufe an – als Fallback für dumme Browser, die keine Gradienten kennen, also für Opera.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. Lieber Gunnar,

          wenn ich auf neueste Techniken hätte eingehen wollen, dann hätte ich animierte PNG-Grafiken benutzt, anstatt GIF.

          Was CSS3-Fähigkeiten und passendes Fallback (wie implementiere ich das?) angeht, lasse ich lieber ein JPG laden. Dass die aktuelle Grafik noch PNG ist, liegt daran, dass ich zuerst etwas anderes ausprobieren wollte, von dem ich mittlerweile vergessen habe, was es war. Auch die Anordnung der Einstellungen und der "Überschrift" machen mich noch nicht wirklich glücklich. Did I say it was finished?

          2 Zeilen CSS (etwa 200 Byte) gegenüber 200 Kilobyte Grafik?

          Wenn Du mir zeigen kannst, wie ich die fehlende CSS3-Unterstützung mittels funktionierendem Fallback abfange, dann mache ich das auch. Bisher habe ich aber keine Ahnung, wie das gehen könnte.

          Qapla'

          Heute ist kein guter Tag zum sterben...

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. @@Felix Riesterer:

            nuqneH

            Wenn Du mir zeigen kannst, wie ich die fehlende CSS3-Unterstützung mittels funktionierendem Fallback abfange, dann mache ich das auch. Bisher habe ich aber keine Ahnung, wie das gehen könnte.

            http://forum.de.selfhtml.org/archiv/2010/2/t195517/#m1309526 ff.

            Das eigentliche Spielfeld machst du auf transparenten Hintergrund. PNG-24 sollte nicht nötig sein, PNG-8 reicht. Dazu vor gelbem Hintergrund rendern, dann den Hintergrund entfernen.

            Browser, die schon Gradienten kennen, sollten auch mit mehreren Hintergrundbildern für ein Element klarkommen.

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
    2. Hallo suit

      Das JPG-Hintergrundbild (welches in PNG konvertiert wurde) ist ziemlich bescheiden :) da kannst du gleich JPG verwenden. 200 kb für eine so eine Grafik ist jedenfalls nicht grade wenig.

      Ich gehe davon aus, dass es als PNG gerade deshalb so groß ist, weil es vorher JPG war.

      Den hintergrund mit dem radialen Verlauf kannst du per Gradient machen.

      Ob sich das wirklich lohnt, wenn dann doch noch extra ein Fallback gebastelt werden muss?

      (Der Verlauf würde in feinster Qualität als PNG gerade mal 30kB benötigen.)

      Auf Wiederlesen
      Detlef

      --
      - Wissen ist gut
      - Können ist besser
      - aber das Beste und Interessanteste ist der Weg dahin!
      1. @@Detlef G.:

        nuqneH

        Ob sich das wirklich lohnt, wenn dann doch noch extra ein Fallback gebastelt werden muss?

        Muss es das? In Browsern, die keine Farbverläufe per CSS (incl. proprietärem Filter) können, ist der Hintergrund dann eben einfarbig. So what? Progressive enhancement rules.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
  3. @@Felix Riesterer:

    nuqneH

    Ein Spieler stellt eine Figur auch dann auf das Startfeld eines anderen, wenn er auch eine andere Figur ziehen könnte. Oder lässt eine Figur auf dem Startfeld eines anderen stehen und zieht stattdessen eine andere Figur, auch wenn der andere keine Figur draußen hat und dreimal würfeln darf.

    Verwenden alle Spieler einen leicht unterschiedlichen Algorithmus und dieser Spieler ist besonders dumm? Oder sind alle gleich dumm? Dann solltest du vielleicht nochmal am Algorithmus feilen.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Lieber Gunnar,

      die "KI" ist dumm. Kann ein Spieler mit mehreren Steinen gültige Züge ausführen, so entscheidet der Computerspieler sich zufällig, ohne taktische "Überlegungen". Das ist einerseits einfacher zu implementieren, und andererseits erleichtert es menschlichen Spielern, das Spiel zu gewinnen.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. @@Felix Riesterer:

        nuqneH

        die "KI" ist dumm. Kann ein Spieler mit mehreren Steinen gültige Züge ausführen, so entscheidet der Computerspieler sich zufällig, ohne taktische "Überlegungen". Das ist einerseits einfacher zu implementieren, und andererseits erleichtert es menschlichen Spielern, das Spiel zu gewinnen.

        Die Regeln „Gehe möglichst nicht auf das Startfeld eines anderen“ und „Verlasse das Startfeld eines anderen, wenn du kannst“ sollten einfach zu implementieren sein.

        Ansonsten fängt der Programmierspaß da ja erst richtig an. Ein Programm zu entwickeln, dass die Schachregeln kennt und irgendwie zieht, kann jeder. (Naja, fast jeder.) Ein Programm zu entwickeln, dass Schach _spielen_ kann, ist schon deutlich anspruchsvoller.

        Und das gilt auch für MÄDN. Nur sollte das wesentlich einfacher sein als bei Schach.

        Irgenwo im Thread schriebst du, dass du mit dem Spiel deine Schüler fürs Programmieren begeistern willst. Lass sie doch den „dummen“ Algorithmus verbesern und dem Computer das MÄDN-_Spielen_ beibringen. In mehreren Gruppen, dann können die verschiedenen Algorithmen gegeneinander antreten. Schulmeisterschaft im Computer-MÄDN!

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. Lieber Gunnar,

          Irgenwo im Thread schriebst du, dass du mit dem Spiel deine Schüler fürs Programmieren begeistern willst. Lass sie doch den „dummen“ Algorithmus verbesern und dem Computer das MÄDN-_Spielen_ beibringen.

          wir sind gerade dabei, Objekte, ihre Eigenschaften und Methoden auseinander zu halten. Als nächstes beschäftigen wir uns damit, wie man Schleifen nutzt. Wenn das soweit klappt, dann schauen wir mal, wie man mehrere Objekte gleicher Art mit Konstruktorfunktionen erstellt. Das Würfelobjekt ist in JSON notiert und singulär, die Spielerobjekte und die Spieltsteinobjekte nicht. Das will alles ersteinmal begriffen werden, bevor wir an so Sachen wie KI gehen können.

          In mehreren Gruppen, dann können die verschiedenen Algorithmen gegeneinander antreten. Schulmeisterschaft im Computer-MÄDN!

          In einer perfekten Welt haben Schüler ausreichend Verständnis von objektorientierten Sprachen, insbesondere von JavaScipt, um diese Meisterschaft antreten zu können.

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  4. Zwei Sachen fallen mir auf: mir war nicht bekannt, dass man nicht auch nicht schlagen darf, wenn einem danach ist; des weiteren wundere ich mich, dass Du die Chance für drag-n-drop nicht genutzt hast, welches für die Bedienung eigentlich naheliegend gewesen wäre.

    Gruß, LX

    --
    RFC 2324, Satz 7 (Sicherheit): Jeder, der zwischen meinem Kaffee und mir steht, gilt als unsicher.
    1. Hi,

      Zwei Sachen fallen mir auf: mir war nicht bekannt, dass man nicht auch nicht schlagen darf, wenn einem danach ist

      das ist ein Detail, das sehr unterschiedlich gespielt wird. Bei uns im Familien- und Bekanntenkreis ist das daher immer eine wichtige Frage zu Spielbeginn: "Ist Rauswerfen Pflicht?"
      Ebenso gibt es unterschiedliche Auffassungen darüber, ob eigene Figuren übersprungen werden dürfen, die schon "im Häuschen", aber nicht ganz aufgerückt stehen.

      Bei uns spielt(e) man übrigens gern mit einer zusätzlichen, individuellen Sonderregel: Man hat zu Beginn eine Augenzahl festgelegt (außer der 6), die grundsätzlich *rückwärts* gezogen werden muss. Natürlich wird dann in diesem Fall auch rückwärts geschlagen. Das macht Laune ... ;-)

      So long,
       Martin

      --
      Zwei Kumpels sitzen vor dem Computer. "Welche Suchmaschine beutzt du eigentlich meistens?" - "Prima Vera." - "Hmm, kenn' ich gar nicht." Dann geht die Tür auf: "Schatz ich habe deine Sonnenbrille wiedergefunden!" - "Prima, Vera!"
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Hi, Martin!

        Bei uns spielt(e) man übrigens gern mit einer zusätzlichen, individuellen Sonderregel: Man hat zu Beginn eine Augenzahl festgelegt (außer der 6), die grundsätzlich *rückwärts* gezogen werden muss. Natürlich wird dann in diesem Fall auch rückwärts geschlagen. Das macht Laune ... ;-)

        Die Idee gefällt mir. Das werde ich bei nächster Gelegenheit auch mal versuchen...

        Gruß, LX

        --
        RFC 2324, Satz 7 (Sicherheit): Jeder, der zwischen meinem Kaffee und mir steht, gilt als unsicher.
      2. "Welche Suchmaschine beutzt du eigentlich meistens?"

        ^^^^^^

        Tippfehler in deiner Signatur ;-)

    2. Lieber LX,

      Zwei Sachen fallen mir auf: mir war nicht bekannt, dass man nicht auch nicht schlagen darf, wenn einem danach ist;

      ich kenne das Spiel mit Schlagzwang, der auch bestraft wird, wenn man sich nicht daran hält. Eine Figur die nicht genutzt wurde, obwohl sie hätte schlagen können, darf vom Gegner vom Spielfeld genommen und auf die Startfelder zurückgestellt werden. Sollten mehrere Figuren schlagen können, ist das automatisch ein Problem von dem ich nicht weiß, wie es die offiziellen Regeln lösen. Meine Umsetzung bestraft deshalb nicht, weil bei der "Crazy India"-Variante dieser Fall sehr schnell eintreten kann.

      des weiteren wundere ich mich, dass Du die Chance für drag-n-drop nicht genutzt hast, welches für die Bedienung eigentlich naheliegend gewesen wäre.

      So, wäre es das? Dann könnte ich mir die Animation zumindest für menschliche Spieler sparen. Was tun dann aber die Computerspieler? Um deren Züge nachvollziehbar zu machen, brauche ich die Animation dann doch. Und wenn es dann einheitlich (und leichter umzusetzen!) werden soll, dann verzichte ich doch lieber auf Drag'nDrop.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    3. @@LX:

      nuqneH

      des weiteren wundere ich mich, dass Du die Chance für drag-n-drop nicht genutzt hast, welches für die Bedienung eigentlich naheliegend gewesen wäre.

      Finde ich nicht. Das würde die Bedienung erschweren: Drag and Drop erfordert mehr Interaktion (Maustaste gedrückt halten, ziehen) als ein einfacher Klick. Außerdem müsste man eine Fehlerbehandlung einbauen: Was soll geschen, wenn eine Fünf gewürfelt, aber nur vier Felder gezogen wurde?

      Im Zählen ist ein Computer eigentlich ganz gut; die Arbeit kann man ihm überlassen.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
  5. Hallo,

    nach meinen Tests müsste das Spiel eigentlich(!) zufriedenstellend laufen, aber da ich nicht alle aktuellen Browser testen kann, bitte ich um fleißiges Ausprobieren: "Mensch ärgere dich nicht!" online spielen

    nett gemacht. :-)

    Der Spielstart hat mich etwas irritiert: Ich habe verzweifelt versucht, meine Figuren zu bewegen - ich kenne das nämlich so, dass die erste Figur jedes Spielers loslaufen darf, als ob sie schon auf dem Startfeld steht (also ohne dass man erst eine Sechs würfeln muss).
    Sehr befremdlich finde ich auch den starren sequentiellen Ablauf: Wenn ich eine Sechs werfe, dann würfle ich normalerweise erst ein zweites Mal (und ggf. sogar ein drittes Mal), und überlege dann erst, wie ich mit welchen Figuren ziehe, sofern ich mehrere Möglichkeiten habe.

    So long,
     Martin

    --
    They say hard work never killed anyone, but I figure, why take the risk?
      (Ronald Reagan, US-Präsident 1981-1989)
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. [latex]Mae  govannen![/latex]

      Der Spielstart hat mich etwas irritiert: [...]

      Sehr befremdlich finde ich auch den starren sequentiellen Ablauf: [...]

      Nun, es wird wohl unzählige Varianten geben; allerdings sollte man bei MÄDN grundsätzlich erst einmal von den üblichen Spielregeln ausgehen, wenn nichts anderes angegeben wurde.

      Aber für Felix ist das eine gute Gelegenheit, verschiedene Varianten zu integrieren. Auch wenn die Optionen immer zahlreicher werden, das kenne ich von meinem Länder/Flaggenquiz :)

      Stur lächeln und winken, Männer!
      Kai

      --
      Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
      in Richtung "Mess up the Web".(suit)
      SelfHTML-Forum-Stylesheet
      1. Hello,

        Aber für Felix ist das eine gute Gelegenheit, verschiedene Varianten zu integrieren. Auch wenn die Optionen immer zahlreicher werden, das kenne ich von meinem Länder/Flaggenquiz :)

        Ist das dann Mensch-ärgere-dich-nicht-2.0?

        Oder benötigt er nur eine Einstellungsseite, auf der die Optionen und Alternativen eingestellt werden können?

        Ich habe Mensch-ärgere-dich-nicht nie gerne gespielt, lieber Malefiz. Aber das dürfte Felix vermutlich noch nicht als Webspiel nachbuane, ohne eine Lizenzklage an den Hals zu bekommen. Aber für Melefiz gibt es noch mehr Privatregeln, die das Spiel so richtig giftig gut machen!

        Ich finde jedenfalls Felix' Ausdauer und Durchhaltevermögen dieser JavaScript-Lösungen wirklich bemerkens- und lobenswert :-))

        Mach weiter so, Felix!

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Lieber Tom,

          Ich habe Mensch-ärgere-dich-nicht nie gerne gespielt, lieber Malefiz.

          das kenne ich nur vom Namen her. Gespielt habe ich es nie.

          Ich finde jedenfalls Felix' Ausdauer und Durchhaltevermögen dieser JavaScript-Lösungen wirklich bemerkens- und lobenswert :-))

          Mach weiter so, Felix!

          Herzlichsten Dank! Über diese Schiene versuche ich meine Schüler für das Schreiben von JavaScripts zu begeistern... Mal sehen.

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      2. Lieber Kai345,

        Aber für Felix ist das eine gute Gelegenheit, verschiedene Varianten zu integrieren. Auch wenn die Optionen immer zahlreicher werden, das kenne ich von meinem Länder/Flaggenquiz :)

        ich habe nicht wirklich vor unzählige Varianten zu implementieren. Mir war eigentlich nur die "Crazy India"-Variante wichtig. Um diese zu implementieren, konnte ich schlecht die "Classic"-Variante fehlen lassen, da sie in vielen Funktionalitäten automatisch mit enthalten ist.

        Was weitere mögliche Optionen angeht, so wäre ausschließlich die Sache mit dem Interface (Geschwindigkeit) für mich diskutabel.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    2. Lieber Martin,

      nett gemacht. :-)

      danke!

      ich kenne das nämlich so, dass die erste Figur jedes Spielers loslaufen darf, als ob sie schon auf dem Startfeld steht (also ohne dass man erst eine Sechs würfeln muss).

      Das ist eine Spielvariante, die ich nicht implementiert habe. Wenn man Lust hätte, dann könnte man hierfür eine Einstellungsoption erstellen, die diese Möglichkeit steuert...

      Sehr befremdlich finde ich auch den starren sequentiellen Ablauf: Wenn ich eine Sechs werfe, dann würfle ich normalerweise erst ein zweites Mal (und ggf. sogar ein drittes Mal), und überlege dann erst, wie ich mit welchen Figuren ziehe, sofern ich mehrere Möglichkeiten habe.

      Auch das ist eine Variante. Je nach Regeln kann man das so oder so handhaben. Wie möchtest Du denn vom Interface her die vom Spieler erwünschte Reihenfolge der gewürfelten Zahlen abarbeiten lassen? Mir war das zu blöd zu implementieren.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Hallo Felix,

        Sehr befremdlich finde ich auch den starren sequentiellen Ablauf: Wenn ich eine Sechs werfe, dann würfle ich normalerweise erst ein zweites Mal (und ggf. sogar ein drittes Mal), und überlege dann erst, wie ich mit welchen Figuren ziehe, sofern ich mehrere Möglichkeiten habe.
        Auch das ist eine Variante. Je nach Regeln kann man das so oder so handhaben. Wie möchtest Du denn vom Interface her die vom Spieler erwünschte Reihenfolge der gewürfelten Zahlen abarbeiten lassen?

        ich könnte mir das so vorstellen:
         * Würfeln, die gewürfelte Augenzahl erscheint als Symbol unterhalb des Spielbretts
         * Wenn's eine Sechs ist: Nochmal würfeln, die Augenzahl erscheint als zweites (drittes ...) Symbol
         * Erst wenn's keine Sechs mehr ist: Nacheinander die Figuren anklicken, mit denen ich die Züge machen möchte.
        So ist für den Spieler mehr Strategie umsetzbar.

        Mir war das zu blöd zu implementieren.

        Ja, kann ich nachvollziehen. Schade trotzdem ...

        Ciao,
         Martin

        --
        Früher habe ich mich vor der Arbeit gedrückt, heute könnte ich stundenlang zusehen.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Lieber Martin,

          ich könnte mir das so vorstellen:
          * Würfeln, die gewürfelte Augenzahl erscheint als Symbol unterhalb des Spielbretts
          * Wenn's eine Sechs ist: Nochmal würfeln, die Augenzahl erscheint als zweites (drittes ...) Symbol
          * Erst wenn's keine Sechs mehr ist: Nacheinander die Figuren anklicken, mit denen ich die Züge machen möchte.
          So ist für den Spieler mehr Strategie umsetzbar.

          die erwürfelten Ergebnisse müssen ohnehin chronologisch abgearbeitet werden. Ändert das Wissen um wieviele sechsen mir zur Verfügung stehen wirklich so viel?

          Mir war das zu blöd zu implementieren.

          Ja, kann ich nachvollziehen. Schade trotzdem ...

          Ich meine noch immer, dass sich das nicht lohnt.

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Hallo Felix

            die erwürfelten Ergebnisse müssen ohnehin chronologisch abgearbeitet werden. Ändert das Wissen um wieviele sechsen mir zur Verfügung stehen wirklich so viel?

            Wenn mehrere eigene Figuren im Spiel sind, dann könnte ich die Ergebnisse möglicherweise genau so verteilen, dass ich eine gegnerische Figur treffe oder nicht auf oder direkt hinter einem gegnerischen Startfeld zu stehen komme.

            Auf Wiederlesen
            Detlef

            --
            - Wissen ist gut
            - Können ist besser
            - aber das Beste und Interessanteste ist der Weg dahin!
  6. Hallo Felix,

    sehr schön!

    Allerdings ist mir mindestens ein Fehler bzgl. der Spielregeln aufgefallen: Ich stand mit der letzten Figur auf dem letzten weißen Feld vor den vier  Zielfeldern und brauchte unbedingt und nichts anderes als eine "Eins", weil die anderen Zielfelder schon besetzt waren. Ich würfelte dann wiederholt eine "Sechs", für die ich zwar selbst keine Verwendung hatte, es wurde mir aber danach auch keine nochmaliger Wurf gewährt, den man normalerweise nach einer "Sechs" ja hat.

    Einmal meine ich auch beobachtet zu haben, wie ich die letzte Figur aus den vier Startfeldern holte und trotz anderer, strategisch besserer Möglichkeiten mit anderen Figuren zu ziehen, vom Programm gezwungen wurde, die farbige Fußmatte, also das erste Feld nach den vier Startfeldern freizumachen, obwohl dies ja im Falle der letzten Figur, wenn keine anderen Hausgenossen mehr "zu Hause" sind, nach Mensch-ärger-dich-nicht-Regeln gar nicht erforderlich ist.

    Gruß Gernot

    1. Lieber Gernot,

      sehr schön!

      vielen Dank!

      Ich würfelte dann wiederholt eine "Sechs", für die ich zwar selbst keine Verwendung hatte, es wurde mir aber danach auch keine nochmaliger Wurf gewährt, den man normalerweise nach einer "Sechs" ja hat.

      Ist repariert.

      die letzte Figur aus den vier Startfeldern holte und trotz anderer, strategisch besserer Möglichkeiten mit anderen Figuren zu ziehen, vom Programm gezwungen wurde, die farbige Fußmatte, also das erste Feld nach den vier Startfeldern freizumachen

      War das mit der Spielvariante "Classic" oder "Crazy India"? Mir ist jetzt nicht nachvollziehbar, warum Du Deinen letzten Stein nicht hättest stehen lassen dürfen. Konnte er einen anderen Stein schlagen?

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Hallo Felix,

        War das mit der Spielvariante "Classic" oder "Crazy India"? Mir ist jetzt nicht nachvollziehbar, warum Du Deinen letzten Stein nicht hättest stehen lassen dürfen. Konnte er einen anderen Stein schlagen?

        Soweit ich mich erinnere nicht und ich hatte die Classic-Variante gespielt.

        Gruß Gernot

  7. Hallo,

    ich habe bei einem vier Computerspieler-Spiel beobachtet, dass der gelbe Spieler, nachdem er in der vorherigen Runde seine erste Figur passgenau ins "Häuschen" navigieren konnte, nur einmal würfeln durfte; er hätte aber dreimal würfeln dürfen müssen können.
    In der nächsten Rund war dann alles wieder in Ordnung.

    Grüße

    1. Liebe(r) Blubb,

      ich habe bei einem vier Computerspieler-Spiel beobachtet, dass der gelbe Spieler, nachdem er in der vorherigen Runde seine erste Figur passgenau ins "Häuschen" navigieren konnte, nur einmal würfeln durfte;

      es ist auch möglich, dass er dreimal dieselbe Augenzahl gewürfelt hat - das "sieht" man dann schlecht.

      er hätte aber dreimal würfeln dürfen müssen können.
      In der nächsten Rund war dann alles wieder in Ordnung.

      Hmm. Das könnte auch mit meiner fehlerhaften Umsetzung zu tun haben, dass bei Nichtgebrauch einer sechs das erneute Würfeln verfällt. Diesen Punkt habe ich aber inzwischen korrigiert.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Om nah hoo pez nyeetz, Felix Riesterer!

        es ist auch möglich, dass er dreimal dieselbe Augenzahl gewürfelt hat - das "sieht" man dann schlecht.

        dem könnte man entgegenwirken, indem man verschiedene "Würfellagen" verwendet.

        Matthias

        --
        Wer ein Problem beschreiben kann, hat es schon halb gelöst.                                             (Julian Huxley) http://www.billiger-im-urlaub.de/kreis_sw.gif
    2. @@Blubb:

      nuqneH

      ich habe bei einem vier Computerspieler-Spiel beobachtet, dass der gelbe Spieler, nachdem er in der vorherigen Runde seine erste Figur passgenau ins "Häuschen" navigieren konnte, nur einmal würfeln durfte; er hätte aber dreimal würfeln dürfen müssen können.

      Ich glaube mehrfach beobachtet zu haben, dass ein Spieler nur einmal würfelt, nachdem alle seine verbliebenen Figuren geschlagen wurden, obwohl die Figuren im Ziel lückenlos ganz oben standen und er hätte dreimal würfeln dürfen.

      In der nächsten Rund war dann alles wieder in Ordnung.

      Dito.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Lieber Gunnar,

        Ich glaube mehrfach beobachtet zu haben, dass ein Spieler nur einmal würfelt, nachdem alle seine verbliebenen Figuren geschlagen wurden, obwohl die Figuren im Ziel lückenlos ganz oben standen und er hätte dreimal würfeln dürfen.

        jetzt müsste ich das nur nachprüfbar machen können. Die Idee mit console.debug() wird auch irgendwann unübersichtlich... Mal sehen, da habe ich ja noch Möglichkeiten.

        Deine rege Teilnahme an diesem Thread scheit daher zu rühren, dass Dich das Projekt (zumindest ein Bisschen) fasziniert. *freu*

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  8. Hi there,

    Blödes Spiel, ich verlier' ständig;)

    Sehr schön gemacht, was ich ändern würde wäre Freiwilligkeit von 'rauswerfen und Einstellbarkeit der Geschwindigkeit, sonst, wie gesagt, sehr schön gemacht...

    1. Lieber Klawischnigg,

      Blödes Spiel, ich verlier' ständig;)

      ;-)

      Sehr schön gemacht,

      Danke!

      was ich ändern würde wäre Freiwilligkeit von 'rauswerfen und Einstellbarkeit der Geschwindigkeit, sonst, wie gesagt, sehr schön gemacht...

      Der Schlagzwang ist meines Wissens in den offiziellen Regeln so enthalten. Wer nicht schlägt obwohl er kann, verliert seinen schlagfähigen Stein und muss ihn auf seine Startfelder zurückstellen. Das Spiel erspart Dir diesen Verlust, indem es den Schlagzwang umsetzt.

      Wenn man einen Stein auf die Zielfelder bewegen kann, dann ist das mit dem Schlagzwang gleichberechtigt - in diesem Punkt weicht mein Spiel von den offiziellen Regeln wohl ab...

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Hallo Felix,

        Der Schlagzwang ist meines Wissens in den offiziellen Regeln so enthalten.

        ich habe kein echtes Mensch-ärger-dich-nicht zur Hand, und finde im Internet auch leider keine "offizielle" Spielanleitung von Schmidt Spiele. Aber ich bin mir ziemlich sicher, dass der Schlagzwang eine individuelle Interpretation ist. Wikipedia listet das auch als optionale Regel.

        Wer nicht schlägt obwohl er kann, verliert seinen schlagfähigen Stein und muss ihn auf seine Startfelder zurückstellen. Das Spiel erspart Dir diesen Verlust, indem es den Schlagzwang umsetzt.

        Ja, so habe ich das auch schon mit manchen Leuten gespielt. Trotzdem ...

        Wenn man einen Stein auf die Zielfelder bewegen kann, dann ist das mit dem Schlagzwang gleichberechtigt - in diesem Punkt weicht mein Spiel von den offiziellen Regeln wohl ab...

        Mir ist auch nicht bekannt, dass man mit einer Figur ins Ziel ziehen *muss*, wenn es möglich ist. Im Gegenteil, manchmal lasse ich absichtlich eine Figur "vor dem Loch" stehen, wenn sie nicht gefährdet erscheint, woanders auf dem Spielfeld aber mehr Action angesagt ist.

        So long,
         Martin

        --
        "Hier steht, deutsche Wissenschaftler hätten es im Experiment geschafft, die Lichtgeschwindigkeit auf wenige Zentimeter pro Sekunde zu verringern." - "Toll. Steht da auch, wie sie es gemacht haben?" - "Sie haben den Lichtstrahl durch eine Behörde geleitet."
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Lieber Martin,

          auch Dir vielen Dank für Deine Rege Beteiligung an der Diskussion. Anscheinend reizt auch Dich mein Projekt ein Bisschen... :-)

          Der Schlagzwang [...]
          Wikipedia listet das auch als optionale Regel.

          Das habe ich mittlerweile auch gesehen. Hmm. Dann werde ich die Hierarchie der möglichen Züge anders gestalten müssen. Vielleicht mit yet another settings option? Hmm...

          manchmal lasse ich absichtlich eine Figur "vor dem Loch" stehen, wenn sie nicht gefährdet erscheint, woanders auf dem Spielfeld aber mehr Action angesagt ist.

          Ja, da muss ich definitiv nachbessern.

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Hallo Felix,

            auch Dir vielen Dank für Deine Rege Beteiligung an der Diskussion. Anscheinend reizt auch Dich mein Projekt ein Bisschen... :-)

            öööhm ... merkt man das? ;-)
            Wenn mir vor ein paar Tagen jemand vorgeschlagen hätte, "Mach doch mal eine MÄDN-Implementierung in Javascript", dann hätte ich demjenigen vermutlich den Vogel gezeigt (oder eine weniger anstößige Geste mit ähnlicher Aussage). Aber jetzt, nachdem du mit einem Entwurf ankommst, der im Großen und Ganzen funktioniert, und höchstens noch etwas Feinschliff braucht, finde ich das auf einmal richtig interessant.

            Das ist auch einer der wenigen Fälle, wo ich gern bereit bin, Javascript zuzuschalten.

            Die Proportionen passen übrigens auch bei mir nicht so ganz - obwohl ich keine individuelle Mindest-Schriftgröße eingestellt habe. Nur den Opera-Default von 9px, und der trifft hier noch nicht zu.


            (Screenshot in Opera 11 unter Ubuntu)

            Der Schlagzwang [...]
            Wikipedia listet das auch als optionale Regel.
            Das habe ich mittlerweile auch gesehen. Hmm. Dann werde ich die Hierarchie der möglichen Züge anders gestalten müssen. Vielleicht mit yet another settings option? Hmm...

            Yet another? Gibt's denn schon welche? Ich meine, für den Spieler/Nutzer einstellbar?

            manchmal lasse ich absichtlich eine Figur "vor dem Loch" stehen, wenn sie nicht gefährdet erscheint, woanders auf dem Spielfeld aber mehr Action angesagt ist.
            Ja, da muss ich definitiv nachbessern.

            Ich bleibe neugierig dran!

            Schönes Wochenende,
             Martin

            --
            Wer im Glashaus sitzt, sollte Spaß am Fensterputzen haben.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Lieber Martin,

              Wenn mir vor ein paar Tagen jemand vorgeschlagen hätte, "Mach doch mal eine MÄDN-Implementierung in Javascript", dann hätte ich demjenigen vermutlich den Vogel gezeigt (oder eine weniger anstößige Geste mit ähnlicher Aussage). Aber jetzt, nachdem du mit einem Entwurf ankommst, der im Großen und Ganzen funktioniert, und höchstens noch etwas Feinschliff braucht, finde ich das auf einmal richtig interessant.

              *hihi*

              Das ist auch einer der wenigen Fälle, wo ich gern bereit bin, Javascript zuzuschalten.

              Da fühle ich mich ja direkt geehrt! Dass Du extra für mich JavaScript einschaltest will was heißen. :-)


              (Screenshot in Opera 11 unter Ubuntu)

              Das sollte jetzt eindeutig anders aussehen.

              Der Schlagzwang [...]
              anders gestalten müssen. Vielleicht mit yet another settings option? Hmm...

              Yet another? Gibt's denn schon welche? Ich meine, für den Spieler/Nutzer einstellbar?

              Die Animationsgeschwindigkeit ist neu hinzugekommen. Andere (wie z.B. Schlagzwang) folgen vielleicht auch noch.

              Ich bleibe neugierig dran!

              Das freut mich! Die Reaktionen in diesem Thread sind sehr konstruktiv. Das macht einfach sehr gute Laune!

              Liebe Grüße,

              Felix Riesterer.

              --
              ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
              1. Hi Felix,

                Das ist auch einer der wenigen Fälle, wo ich gern bereit bin, Javascript zuzuschalten.
                Da fühle ich mich ja direkt geehrt! Dass Du extra für mich JavaScript einschaltest will was heißen. :-)

                das will wirklich was heißen - denn ich mache diese Entscheidung in erster Linie vom Nutzwert, aber darüber hinaus auch vom Anbieter abhängig.


                (Screenshot in Opera 11 unter Ubuntu)
                Das sollte jetzt eindeutig anders aussehen.

                Anders, ja. Aber immer noch ein bisschen nach Unfall.


                 Opera 11.01 unter Ubuntu (Browser-Defaultschrift auf Tahoma umgestellt)


                 Firefox 3.6.14 unter Ubuntu

                Vielleicht eine Nebenwirkung der absoluten pixelbasierten Positionierung, an die du nicht gedacht hast?
                Lediglich mit einem "alten" Firefox 3.0 unter Windows sieht es vermutlich so aus, wie du es gemeint hast. Dafür ist die Schrift da unangenehm klein - eine Eigenheit, die mir beim Windows-Fox schon sehr oft negativ aufgefallen ist - er scheint unter Windows eine sehr kleine Default-Schriftgröße zu haben.

                Yet another? Gibt's denn schon welche? Ich meine, für den Spieler/Nutzer einstellbar?
                Die Animationsgeschwindigkeit ist neu hinzugekommen.

                Ah, okay. Das war aber noch nicht der Fall, als ich das gestrige Posting geschrieben habe. Vermutlich geplant oder in Arbeit, aber noch nicht online.

                Weiter viel Spaß am Projekt,
                 Martin

                --
                Ist die Katze gesund,
                freut sich der Hund.
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      2. @@Felix Riesterer:

        nuqneH

        Der Schlagzwang ist meines Wissens in den offiziellen Regeln so enthalten. Wer nicht schlägt obwohl er kann, verliert seinen schlagfähigen Stein und muss ihn auf seine Startfelder zurückstellen.

        Ja.

        Das Spiel erspart Dir diesen Verlust, indem es den Schlagzwang umsetzt.

        Das sollte es IMHO nicht tun. Dem menschlichen Spieler sollte nicht angezeigt werden, dass er schlagen muss, sondern er sollte mit allen möglichen Figuren ziehen können. Übersieht er, dass er hätte schlagen können, wird sein Stein „gepustet“, d.h. er kommt zurück ins Aus. (Hm, wie heißen die Felder eigentlich? Das Startfeld ist dasjenige, wo man mit einer Sechs einsetzt.)

        Im Gegenzug sollte ein vom Computer gesteuerter Spieler dann vielleicht auch mit einer gewissen Wahrscheinlichkeit ein Schlagen übersehen können.

        Wenn man einen Stein auf die Zielfelder bewegen kann, dann ist das mit dem Schlagzwang gleichberechtigt - in diesem Punkt weicht mein Spiel von den offiziellen Regeln wohl ab...

        Ja, das solltest du sicher noch ändern.

        Auch wenn man schon im Ziel ist, aber noch nicht ganz oben, sollte man nicht gezwungen sein, dort zu ziehen, wenn man eine entsprechend kleine Zahl würfelt.

        Manchmal möchte man woanders ziehen. Und wer vergisst, rechtzeitig aufzurücken, ist selber Schuld. Das sollte einem der Computer nicht abnehmen.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. Lieber Gunnar,

          Der Schlagzwang ist meines Wissens in den offiziellen Regeln so enthalten. Wer nicht schlägt obwohl er kann, verliert seinen schlagfähigen Stein und muss ihn auf seine Startfelder zurückstellen.

          Ja.

          nicht laut Wikipedia! Von daher könnte man über diese Regel als einstellbare Option nachdenken (oder auch lieber nicht).

          Das Spiel erspart Dir diesen Verlust, indem es den Schlagzwang umsetzt.

          Das sollte es IMHO nicht tun.

          Und der Programmieraufwand explodiert. Das kann ich momentan nicht leisten. Das ist mir (noch) zu kompliziert.

          Im Gegenzug sollte ein vom Computer gesteuerter Spieler dann vielleicht auch mit einer gewissen Wahrscheinlichkeit ein Schlagen übersehen können.

          Klar, warum sollte man sich mit weniger Funktionalität zufrieden geben? Im Ernst, das bläst das Projekt für mein Gefühl zuweit auf. Ist es das wert? Ist MÄDN wirklich so populär und als Browsergame so begehrt, als dass sich dieser Aufwand lohnen würde?

          Manchmal möchte man woanders ziehen. Und wer vergisst, rechtzeitig aufzurücken, ist selber Schuld. Das sollte einem der Computer nicht abnehmen.

          Wie schon an anderer Stelle erwähnt werde ich die Hierarchie bei den möglichen Zügen neu regeln - eventuell mit Einstellungsoptionen.

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. @@Felix Riesterer:

            nuqneH

            Das Spiel erspart Dir diesen Verlust, indem es den Schlagzwang umsetzt.

            Das sollte es IMHO nicht tun.

            Und der Programmieraufwand explodiert.

            Nö, wieso?

            Du hast einerseits den Algorithmus, um alle Figuren, mit denen der menschlicher Spieler ziehen kann, blinken zu lassen. Andererseits hast du den Algorithmus, bei einer Schlagmöglichkeit* nur die schlagenge Figur ziehen zu lassen.

            Lass doch auch bei Schlagmöglichkeit alle Figuren blinken. Nachdem der Spieler mit einer von diesen gezogen hat, prüfst du, ob es die war, mit der er hätte schlagen können, andernfalls wird gepustet.

            Ist doch alles schon da; explodierenden Aufwand sehe ich nicht.

            * Was ist eigentlich, wenn mehrere Figuren eine schlagen können?

            Im Gegenzug sollte ein vom Computer gesteuerter Spieler dann vielleicht auch mit einer gewissen Wahrscheinlichkeit ein Schlagen übersehen können.

            Klar, warum sollte man sich mit weniger Funktionalität zufrieden geben?

            Gelle? ;-)

            Wobei sich erstmal die Frage stellt, wie der Computer spielen soll: möglichst gut oder möglichst menschlich? Auch das könnte dann als Option „Spielstärke“ einstellbar sein.

            Den Algorithmus zufällig eine der möglichen Figuren zum Ziehen auswählen zu lassen, erfüllt aber weder das eine noch das andere Kriterium. Sinnvoller dürfte es sein, bei mehreren Möglichkeiten mit der Figur zu ziehen, die schon am weitesten ist, um sie schnell ins Ziel zu bringen. Das macht deinen Algorithmus nicht komplizierter, aber vermutlich besser.

            Und wie gesagt, nicht auf das Startfeld eines anderen zu gehen, wenn’s nicht sein muss, und dies schnellstmöglich zu verlassen, sollte recht einfach zu implmentieren sein.

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
            1. @@Gunnar Bittersmann:

              nuqneH

              Und wie gesagt, nicht auf das Startfeld eines anderen zu gehen, wenn’s nicht sein muss, und dies schnellstmöglich zu verlassen, sollte recht einfach zu implmentieren sein.

              Ich hatte gerade den Fall: Ein computerisierter Spieler hat eine Figur auf einem gegnerischen Startfeld zu stehen. Aber anstatt diese in Sicherheit zu bringen, zieht er mit einer anderen Figur – auf ein Startfeld eines anderen Gegners! So dumm sollte der Algorithmus nun wirklich nicht sein.

              Und noch eine Fehlermeldung: Ein Spieler hat drei Figuren schon im Haus, zwei oben, eine unten (A). Dreht die Runde mit seiner letzten Figur (B), würfelt dabei keine Eins. B kommt an und springt über A ins Ziel, weil die Würfelzahl gepasst hat. Moment mal – im Haus darf man nicht überspringen. B hätte vorm Haus warten müssen, bis A aufgerückt ist.

              Qapla'

              --
              Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
              (Mark Twain)
              1. Hallo,

                Moment mal – im Haus darf man nicht überspringen.

                das wollte mir vor Jahren auch mal jemand einreden - dann haben wir in den Spielregeln nachgesehen. Da war nirgends die Rede von einer solchen Einschränkung, so dass man also davon ausgehen sollte, dass es sie nicht gibt. Es handelte sich übrigens um das Original-Brettspiel von Schmidt aus dem Jahr 1970-irgendwas.

                B hätte vorm Haus warten müssen, bis A aufgerückt ist.

                Ich weiß, dass das viele Leute so spielen. Ist aber AFAIK eine Individualregel.

                Ciao,
                 Martin

                --
                Verliebt:    Er spricht, sie lauscht.
                Verlobt:     Sie spricht, er lauscht.
                Verheiratet: Beide sprechen, und die Nachbarn lauschen.
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                1. @@Der Martin:

                  nuqneH

                  Moment mal – im Haus darf man nicht überspringen.

                  das wollte mir vor Jahren auch mal jemand einreden - dann haben wir in den Spielregeln nachgesehen. Da war nirgends die Rede von einer solchen Einschränkung, so dass man also davon ausgehen sollte, dass es sie nicht gibt.

                  Hm, dann macht der Zwang zum Aufrücken irgendwie noch weniger Sinn.

                  Qapla'

                  --
                  Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                  (Mark Twain)
  9. Hallo Felix,

    nach meinen Tests müsste das Spiel eigentlich(!) zufriedenstellend laufen, aber da ich nicht alle aktuellen Browser testen kann, bitte ich um fleißiges Ausprobieren: "Mensch ärgere dich nicht!" online spielen

    Leider kann ich hier das Spiel nicht ausprobieren,. Ich habe einen IE 7 und sehe weder das Feld, noch kann ich ziehen. Der Computer zieht sein Steinchen einmal ohne mein zu tun. Leider kann ich auch kein Bild hochladen um das zu zeigen, dass ginge erst zu Hause.

    ciao
    romy

    1. Ergänzung:

      Hier kannst du gut sehen, was ich sehe ;)

      ciao
      romy

    2. Liebe romy,

      Darstellungsfehler im IE sind noch nicht "gefixt". Das mache ich (vielleicht) demnächst einmal. Danke für die Rückmeldung.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  10. @@Felix Riesterer:

    nuqneH

    Mir ist das Spiel abgestürzt, als ein Spieler mit der letzten Figur ein Feld vorm Ziel stand. Er hat keine Eins gewürfelt, sondern eine Sechs, dann ging’s nicht mehr weiter.

    Qapla'

    PS: Ich hatte keine Fehlerkonsole an.

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Lieber Gunnar,

      Mir ist das Spiel abgestürzt, als ein Spieler mit der letzten Figur ein Feld vorm Ziel stand. Er hat keine Eins gewürfelt, sondern eine Sechs, dann ging’s nicht mehr weiter.

      hmm... seltsam. Das sind die schönen Bugs, die man so schlecht provozieren kann, um dann die Ursachen zu ergründen.

      PS: Ich hatte keine Fehlerkonsole an.

      Ich habe den Quelltext nach "console" durchsucht - da waren keine Kontrollausgaben mehr drinne. Daran kann es also nicht gelegen haben.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. [latex]Mae  govannen![/latex]

        hmm... seltsam. Das sind die schönen Bugs, die man so schlecht provozieren kann, um dann die Ursachen zu ergründen.

        Da hab ich auch noch einen:

        Situation: Ich bin blau *g*; eine Spielfigur wurde sicher durchgebracht und steht auf dem zweitletzten Ziel-Feld, die anderen drei sind frei im Spiel, zwei zwischen gelb und grün ohne Gegner in der Nähe und die dritte Figur hat nur mein blaues Startfeld freigemacht und steht 4 oder 5 Felder davon entfernt. Kurz dahinter einige gegnerische Figuren. Ich würfele eine Sechs und möchte natürlich die gefährdete Figur spielen, aber das Programm erlaubt nur die beiden unbedrängten Figuren.

        Daß meine Figur direkt danach geschlagen wurde, dürfte klar sein :(

        Fazit: Das Spiel schummelt, um dann im nächsten Zug schlagen zu können ^^

        Stur lächeln und winken, Männer!
        Kai

        --
        Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
        in Richtung "Mess up the Web".(suit)
        SelfHTML-Forum-Stylesheet
        1. Lieber Kai345,

          Fazit: Das Spiel schummelt, um dann im nächsten Zug schlagen zu können ^^

          und ich dachte, ich hätte das gut genug kaschiert... *g*

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    2. Hi.

      Mir ist das Spiel abgestürzt, als ein Spieler mit der letzten Figur ein Feld vorm Ziel stand. Er hat keine Eins gewürfelt, sondern eine Sechs, dann ging’s nicht mehr weiter.

      PS: Ich hatte keine Fehlerkonsole an.

      Das hätte auch nichts genützt. Eine Spielkonsole dagegen wäre hilfreich gewesen.

      Schönen Sonntag noch!
      O'Brien

      --
      Frank und Buster: "Heya, wir sind hier um zu helfen!"
    3. Hallo,

      Mir ist das Spiel abgestürzt, als ein Spieler mit der letzten Figur ein Feld vorm Ziel stand. Er hat keine Eins gewürfelt, sondern eine Sechs, dann ging’s nicht mehr weiter.

      Bei mir ähnlicher Absturz (Classic). Folgende Situation:

      • Die letzte grüne Figur braucht eine 5 zum Sieg, würfelte aber 6. Jetzt ist das Spiel eingefroren. Die grüne 6 bleibt auf dem Würfel.
        – Ich in gelb als einziger menschlicher Spieler mit meiner letzten Figur 4 Felder hinter der grünen, bereit zum Angriff ;)
      • Blau 3 Felder vor dem Sieg
      • Rot mit der zweiten Figur direkt vor dem Eintritt ins Ziel, die anderen beiden roten noch zuhause.
      • Die Figuren aller Farben sind in ihren Zielfeldern vollständig aufgerückt.

      Liegt es an der gewüfelten 6?

      Was mir sonst so auffällt:
      – Die Silies sind ganz witzig.
      – Der animierte Würfel passt optisch nicht zum ganzen Rest.
      – Die Spielregeln sind zu streng (Classic) bzw. völlig rätselhaft (India).
      – Auf globale Variablen könnte vollständig verzichtet werden
      – Der Code könnte permformancemäßig optimiert werden

      Wie werden eigentlich die Spielsteine bewegt? Nicht per JS, oder? Dazu bräuchte man ja kurze setTimeouts. Habe aber keine im Code gefunden.
      Sind es denn große GIFs mit jeweils der ganzen Breite bzw. Höhe des Wegs? Mit setTimeouts könnte es sicher schneller gehen und die GIFs könnten wohl kleiner ausfallen.

      Gruß, Don P

      1. Hi,

        Mir ist das Spiel abgestürzt, als ein Spieler mit der letzten Figur ein Feld vorm Ziel stand. Er hat keine Eins gewürfelt, sondern eine Sechs, dann ging’s nicht mehr weiter.
        Bei mir ähnlicher Absturz (Classic). Folgende Situation:

        • Die letzte grüne Figur braucht eine 5 zum Sieg, würfelte aber 6. Jetzt ist das Spiel eingefroren. Die grüne 6 bleibt auf dem Würfel.

        kann ich anhand meiner Beobachtungen bestätigen: Eine Sechs, die nicht umgesetzt werden kann, scheint tödlich zu sein. Hier fehlt offenbar eine Abfrage im Script, ob der Zug möglich ist - und wenn nicht, muss man ohne Zug erneut würfeln können.

        – Der animierte Würfel passt optisch nicht zum ganzen Rest.

        Stimmt irgendwie.

        – Die Spielregeln sind zu streng (Classic) bzw. völlig rätselhaft (India).

        Crazy India kenne ich überhaupt nicht, kann ich daher auch nicht beurteilen.

        Ciao,
         Martin

        --
        Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Lieber Martin,

          Crazy India kenne ich überhaupt nicht, kann ich daher auch nicht beurteilen.

          bei Crazy India hat jeder Spieler vier verschiedenfarbige Spielsteine und muss deshalb vier verschiedenfarbige Spielsteine in seine Zielfelder bringen. Die ursprünglichen Regeln müssen entsprechend angepasst umgesetzt werden.

          Das "crazy" rührt wohl daher, dass in dem Moment, wo ein Spielstein "unterwegs" ist, dessen Zuordnung zum Spieler nicht mehr gelingt, sodass wenn Du "rot im Spiel" hast, Du eben mit (egal welchem) "rot" ziehst.

          In der Folge führt das z.B. dazu, dass man jemandem "seinen" Spielstein vor dessen Zielfeldern vorbeifahren kann, weil "sein" Spielstein in diesem Falle auch "Dein" Spielstein ist, weil auch Du diese Farbe ins Rennen geschickt hast.

          In der Folge scheint Crazy India eine Beschleunigung des Spiels zu bewirken: Mein Gegner fährt einen roten Stein in meine Nähe, ich darf "raus" und benutze - natürlich - rot, darf nach der sechs nocheinmal und fahre den anderen roten Stein bei mir nachhause.

          Wenn man sich die "Sonderregeln" so anschaut, dann sind die einen für eine Beschleunigung des Spielverlaufs entworfen worden, und die anderen für eine Verzögerung (z.B. durch zusätzliche Verwicklungen). Crazy India scheint zu den ersteren zu gehören - mit zusätzlichen Verwicklungen.

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Hallo,

            Nochmal gespielt mit Crazy India:

            Vom roten Haus mit 6 eine gelbe Figur an den Start geschickt, danach gleich noch eine 6 und ich musste die eben selber rausgestellte Figur wieder schlagen. Dabei wurde der Hintergrund zweier Häuser erhellt (gelb und grün) und meine beiden kämpfenden Figuren auf dem roten Startfeld sind mit dem ganzen Spiel eingefroren. Der grüne sieht dabei ganz zufrieden aus, aber der gelbe will's wohl nicht wahrhaben und schüttelt nur erschrocken den Kopf.

            Die Häuser grün und blau stehen eigentlich auf N/A, ihre Jungs laufen aber trotzdem auf dem Spielfeld rum, ist das normal?
            Woher weiß man denn in Crazy India, welche Figur in welche Zielfelder marschieren darf? Da blicke ich nicht richtig durch.

            Gruß, Don P

            1. Lieber Don P,

              Dabei wurde der Hintergrund zweier Häuser erhellt (gelb und grün) und meine beiden kämpfenden Figuren auf dem roten Startfeld sind mit dem ganzen Spiel eingefroren.

              wenn Du eine Spielfigur rauswerfen kannst, dann werden bei mehreren möglichen "Empfängern" für diese Spielfigur die entsprechenden Warteplätze der betroffenen Spieler ge-highlight-et. Damit Du nun die Figur rauswerfen kannst, musst Du nur in das gewünschte Highlight klicken. Das Spiel wartet so lange auf Deine Entscheidung.

              Die Häuser grün und blau stehen eigentlich auf N/A, ihre Jungs laufen aber trotzdem auf dem Spielfeld rum, ist das normal?
              Woher weiß man denn in Crazy India, welche Figur in welche Zielfelder marschieren darf? Da blicke ich nicht richtig durch.

              Das habe ich Martin schon erklärt.

              Liebe Grüße,

              Felix Riesterer.

              --
              ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      2. Lieber Don P,

        Liegt es an der gewüfelten 6?

        jetzt hoffentlich nicht mehr.

        – Die Silies sind ganz witzig.

        *freu*

        – Der animierte Würfel passt optisch nicht zum ganzen Rest.

        Ich kann animierte GIFs modifizieren, aber schlecht neue erstellen. Der Würfel ist "geklaut" und modifiziert worden (waren ursprünglich zwei in der Grafik). Wenn ich einen Designer hätte, der mir "mal eben" sowas visuell passend erstellen kann, dann könnte ich diesem Umstand abhelfen.

        – Die Spielregeln sind zu streng (Classic) bzw. völlig rätselhaft (India).

        Ja, eine Spielanleitung fehlt (offensichtlich) noch.

        – Auf globale Variablen könnte vollständig verzichtet werden

        Ähm... welche meinst Du? Das MAEDN-Objekt? Oder habe ich bei anderen die Initialisierung vergessen?

        – Der Code könnte permformancemäßig optimiert werden

        Ist geschehen.

        Wie werden eigentlich die Spielsteine bewegt? Nicht per JS, oder?

        Doch, über eine setInterval-Funktion, die ich "heartbeat" nenne, und die schaut, was wo animiert werden soll, um dann dort eine entsprechende "nächster Schritt"-Funktion auszulösen.

        Dazu bräuchte man ja kurze setTimeouts. Habe aber keine im Code gefunden.

        Es geht auch anders. ;-)

        Sind es denn große GIFs mit jeweils der ganzen Breite bzw. Höhe des Wegs? Mit setTimeouts könnte es sicher schneller gehen und die GIFs könnten wohl kleiner ausfallen.

        Interessante Ideen hast Du... ;-P

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hallo,

          Wenn ich einen Designer hätte, der mir "mal eben" sowas visuell passend erstellen kann, dann könnte ich diesem Umstand abhelfen.

          Das kann ich leider auch nicht, sonst hätte ich's glatt für dich gemacht.

          – Auf globale Variablen könnte vollständig verzichtet werden

          Ähm... welche meinst Du? Das MAEDN-Objekt? Oder habe ich bei anderen die Initialisierung vergessen?

          Ja, das MAEDN-Objekt. Alle anderen sind scheint's deklariert.

          JSLint findet auch ein paar unbeutzte Variablen, als da sind:

          mayMove 1027  "plotCourse",
            i 1027  "plotCourse",
            piece 1087  "move",
            steps 1087  "move",
            p 1166  "makeMove",
            piecesInGoals 1305 "getMovablePieces",
            pl 1305  "getMovablePieces"

          Außerdem werden noch fehlende Klammern {}, Semikolons und viele Vergleiche mit == und != statt === und !== angemeckert ;)

          Das sind aber wohl harmlose "errors". Mit meinem Code bekomme ich manchmal die tollsten Meldungen von JSLint, wie z.B. "Confusing use of !.". Der Knüller war einmal die einzige Meldung "Weird program." :)

          Wie werden eigentlich die Spielsteine bewegt? Nicht per JS, oder?

          Doch, über eine setInterval-Funktion, die ich "heartbeat" nenne, und die schaut, was wo animiert werden soll, um dann dort eine entsprechende "nächster Schritt"-Funktion auszulösen.

          Ach stimmt, setInterval ist ja dafür prädestiniert.

          Sind es denn große GIFs mit jeweils der ganzen Breite bzw. Höhe des Wegs? Mit setTimeouts könnte es sicher schneller gehen und die GIFs könnten wohl kleiner ausfallen.

          Interessante Ideen hast Du... ;-P

          Ja, gelle. Erinnere mich an eine Technik, bei der man nur die nur einmal lädt und Veränderungen einfach durch Verschieben des Offsets erreicht. Das Austauschen von Grafiken in CSS braucht anscheinend viel Rechenleistung, jedenfalls unter Windows im FF. Bei einer JS-Anwendung von mir kann man verfolgen, dass die Prozessorauslastung stark zunimmt, wenn man nur mit der Maus über hin und her über einen Button fährt, dem jeweils per CSS mit :hover ein anderes background-image gegeben wird. Es stört mich irgendwie, dass solcher Schnickschnack viel Rechenleistung frisst. Dabei ist es doch nur ein kleines .png im 1KB-Bereich.

          Gruß, Don P

          1. Lieber Don P,

            Wenn ich einen Designer hätte, der mir "mal eben" sowas visuell passend erstellen kann, dann könnte ich diesem Umstand abhelfen.

            Das kann ich leider auch nicht, sonst hätte ich's glatt für dich gemacht.

            das ist sehr nett von Dir. Der Gedanke zählt auch!

            – Auf globale Variablen könnte vollständig verzichtet werden
            [...]
            Ja, das MAEDN-Objekt. Alle anderen sind scheint's deklariert.

            Wenn ich das wollte, dann müsste ich das Spiel so schreiben, dass ich mehrere solche Spielinstanzen auf einer Seite haben könnte. Das wollte ich aber nicht, bzw. dann wäre das Schreiben für meine Internet-AG nicht so umfänglich und könnte nicht alle Notationsarten in JS (wie z.B. JSON) demonstrieren. Dabei fällt es mir auch schwer einzusehen, warum ich auf eine einzige (und einzigartige!) globale Variable verzichten sollte.

            JSLint findet [...]

            Darum wollte ich mich erst kümmern, wenn es "fertig" ist. Mir ist klar, dass das eine nervige Angelegenheit werden wird, aber sinnvoll ist sie allemal - aber eben erst wenn es fertig ist.

            Der Knüller war einmal die einzige Meldung "Weird program." :)

            Das wäre ja mal eine vernünftige Meldung! *g*

            Ach stimmt, setInterval ist ja dafür prädestiniert.

            Je nach Anwendungszweck, ja.

            [Hintergrundgrafik] die nur einmal lädt und Veränderungen einfach durch Verschieben des Offsets erreicht.

            Mach' das mal mit animierten GIFs... *fiesgrins*

            Dabei ist es doch nur ein kleines .png im 1KB-Bereich.

            Generell ja, nicht aber bei animierten Grafiken.

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  11. Jetzt kann man live die Animationsgeschwindigkeit ändern.

    Die Sache mit dem Abstürzen bei ungenutzten 6en ist hoffentlich behoben.

    IE>6 scheint keine Anzeigeprobleme mehr zu haben.

    Keine Ahnung wann ich mich an die Änderungen hinsichtlich Schlagzwang und In-den-Zielfeldern-vorrücken mache... aber da werde ich noch nachbessern.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. @@Felix Riesterer:

      nuqneH

      Schneller? Kann man jetzt eine Sieben würfeln?

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
  12. Hallo Felix,

    Sehr gern gesehen ist auch Feedback bezüglich des User Interfaces. Wenn jemand ganz andere (Verbesserungs)Vorschläge hat, so bin ich daran selbstverständlich ebenso interessiert.

    Da hätte ich schon einige Vorschläge zum Design des ganzen Programms, nicht zum Look & Feel der Oberfläche. Letzere finde ich ganz gut gelungen: Man ist unweigerlich an das Original erinnert, das auch so bunt und relativ schlicht daherkommt.

    Die Spielfiguren sind einfach süß. Jetzt, wo ich auch mal die Gewinner sehen konnte, gefallen sie mir noch besser. Etwas fällt mir noch dazu ein: Wenn Schlagzwang besteht und es nur eine Möglichkeit zum Ziehen gibt, dann kann die zu schlagende Figur bereits sofort nach dem Würfeln wissen, dass sie jetzt fällig ist. Sie könnte sich also schon ängstlich zeigen, bevor man die schlagende Figur zum Ziehen anklickt. So wie es jetzt ist, kann man nämlich die ängstlichen Gesichter immer nur ganz kurz genießen ;), während die schlagende Figur sich fortbewegt.

    Aber den Code und das ganze Konzept, naja... die würde ich anders gestalten:

    Für das Spielfeld mit den Waypoints z.B. könnte man hervorragend mit Object.create (JavaScript 1.8.5) bzw. der Crockfordschen Urversion davon arbeiten. Ich würde jeder Figur ein eigenes Parcours-Array mitgeben, die alle einfach vom Basisobjekt erben und zum Ziehen und Einstellen des Startpunkte nur die einzelnen Parcours-Arrays rotieren mit meiner genialen Array.rotate-Funktion, die ich im Forum schon mal vorgestellt habe, aber fast nur Spott erntete, ihr Ignoranten :P ;).

    Diese Parcours-Arrays wären ja eigentlich leer; es reicht, wenn sie den Basisparcours als Prototyp haben. Die aktuelle Position eines Spielsteins wäre immer Figur.Parcours[0], wobei der das tatsächliche Waypoint-Objekt natürlich nur im Prototyp existiert, was für den Zugriff aber keinen Unterschied macht. Die Startposition als Waypoint für jedes Farbvolk würde man anfangs wie gesagt einfach durch Rotation des neu erzeugten FarbParcours einstellen.

    Die Infos über die Nachfolger eines Waypoints wären überflüssig. Die Waypoint-Objekte selber könnte man direkt miteinander vergleichen, weil jeder Waypoint nur einmal als Objekt existiert (im Basisparcours) so dass ein Vergleich auf Gleichheit immer das richtige Ergebnis liefert (nur true wenn die Operanden identisch sind).

    Irgendwie so:

    var parcours = [ /* Waypoint-Objekte ohne Nachfolger-Info */ ],  
        gelb.parcours = Object.create(parcours),  
        grün.parcours = Object.create(parcours).rotate(10),  
        rot.parcours  = Object.create(parcours).rotate(20),  
        blau.parcours = Object.create(parcours).rotate(30);  
    
    

    Man könnte natürlich eleganter in einer Schleife über die vier Member eines Farbvölker-Objekts iterieren. Die StartObjekte liegen danach jeweis in volk.parcours[0] griffbereit.

    Für die einzenen Spielsteine einer Farbe in einer Schleife i=0..3 den individuellen Weg initialisieren:

    grün.Figur[i].weg = Object.create(grün.parcours);

    Zum Ziehen einer Figur und Position vergleichen etwas wie

        volk.figur[i].weg.rotate(wurf);  
        if (volk.figur[i].weg[0] === volk.parcours[0]) {/* Figur i steht auf Startposition */}  
        if (volk.figur[i].weg[1] === volk.parcours[0]) {/* Figur i steht vor dem Zieleinlauf */}  
      
        if ( isbesetzt(volk.figur[i].weg[wurf]) ) {/* Figur i kann schlagen */}  
    
    

    usw.
    JSLint würde vielleicht wieder sagen "Weird program.", aber was soll's...

    Gruß, Don P

    1. Lieber Don P,

      vielen Dank für Deine konstruktiven Vorschläge... man lernt halt nie aus. ;-)

      Object.create(parcours)

      Ist das im Grunde ein Cloning?

      grün.parcours = Object.create(parcours).rotate(10)

      Bedeutet das "erst clonen, dann rotieren"? Die rotate-Methode ist wohl soetwas wie array.push(array.shift()), und bei negativen Werten array.unshift(array.pop()) - in einer Schleife?

      Man könnte natürlich eleganter in einer Schleife über die vier Member eines Farbvölker-Objekts iterieren. Die StartObjekte liegen danach jeweis in volk.parcours[0] griffbereit.

      Ist das performanter? Braucht das nicht mehr Arbeitsspeicher für den Browser? Bei der gegenwärtigen Anwendung ist das alles ja sehr überschaubar (16 Spielsteinobjekte, etwa 70 Waypoint-Objekte), sodass Performanz und RAM-Usage wohl kaum ins Gewicht fallen dürften.

      grün.Figur[i].weg = Object.create(grün.parcours);

      Also bei Variablen mit Sonderzeichen bin ich seeeehr vorsichtig. Daher nenne ich mein zentrales Objekt auch nicht MÄDN, sondern MAEDN.

      JSLint würde vielleicht wieder sagen "Weird program.", aber was soll's...

      Hehe, is scho a "weird program", da hat JSLint durchaus recht. *g*

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Hallo Felix,

        Object.create(parcours)

        Ist das im Grunde ein Cloning?

        Es liefert ein ein neues Objekt mit dem übergebenen Objekt als prototype. Eine Erfindung von D. Crockford, die jetzt in ECMAScript 5 aufgenommen wurde mit noch etwas zusätzlichem Zucker. Wird noch nicht breit unterstützt (kenne nur FF 4 Beta), inzwischen kann man sich aber mit behelfen mit

        Object_create = Object.create || function (o) {  
           var F = function() {};  
           F.prototype = o;  
           return new F();  
        };
        

        Diese Funktion benutze ich seit langem, um Objekte direkt aus anderen zu erzeugen, ohne dass man immer Konstruktoren mit new aufrufen muss.

        grün.parcours = Object.create(parcours).rotate(10)

        Bedeutet das "erst clonen, dann rotieren"? Die rotate-Methode ist wohl so etwas wie array.push(array.shift()), und bei negativen Werten array.unshift(array.pop()) - in einer Schleife?

        So ist es. Diese push-pop sind nicht wirklich performancekritisch. Es müssten schon einige hunderttausende Operationen sein bei so einem Spiel, damit man etwas merkt bei der Performance.

        Ist das performanter? Braucht das nicht mehr Arbeitsspeicher für den Browser? Bei der gegenwärtigen Anwendung ist das alles ja sehr überschaubar (16 Spielsteinobjekte, etwa 70 Waypoint-Objekte), sodass Performanz und RAM-Usage wohl kaum ins Gewicht fallen dürften.

        Performanter nicht unbedingt, und ein bisschen mehr Speicher braucht es vielleicht auch. Es gibt halt für jede Spielfigur ein separates Parcours-Array, also mind. 16 Arrays mehr.

        Es würde aber den Quellcode stark vereinfachen und auch auch die Array-Elemente kleiner halten. Das nächste Element z.B. muss man nicht speichern in einem Array, dafür hat ein Array doch die Indizes.

        Tatsächlich hätte man auch nach dem "Klonen" jeden Wert nur einmal gespeichert, im prototype jedes Klons, dem eigentlichen Spielbrett. In diesem Ur-Parcours würde man z.B. statt Name und nextPoint lieber eine Eigenschaft "besetzt" einführen, die dann jeweils mit dem Spielstein-Objekt belegt wird, das gerade draufsteht (oder null, wenn keiner draufsteht).

        grün.Figur[i].weg = Object.create(grün.parcours);

        Also bei Variablen mit Sonderzeichen bin ich seeeehr vorsichtig. Daher nenne ich mein zentrales Objekt auch nicht MÄDN, sondern MAEDN.

        Ja stimmt, das mus nicht sein. Wenn man als UTF-8 speichert und das auch im script-tag angibt, sollte es aber kein Problem geben.

        Gruß, Don P

    2. Lieber Don P,

      Wenn Schlagzwang besteht und es nur eine Möglichkeit zum Ziehen gibt, dann kann die zu schlagende Figur bereits sofort nach dem Würfeln wissen, dass sie jetzt fällig ist. Sie könnte sich also schon ängstlich zeigen, bevor man die schlagende Figur zum Ziehen anklickt. So wie es jetzt ist, kann man nämlich die ängstlichen Gesichter immer nur ganz kurz genießen ;), während die schlagende Figur sich fortbewegt.

      darüber habe ich eine Weile nachgedacht und habe folgendes Konzeptproblem dabei entdeckt. In der "Crazy India"-Spielvariante könnte eine Figur gleichzeitig Opfer und Täter sein. Wenn sie als ängstliches Opfer dargestellt werden soll, dann ist ihre Benutzbarkeit nicht mehr darstellbar (im Moment die "Sonnenfigur").

      Im Regelfall sollte das Spiel nachvollziehbar gleichermaßen vorgehen. Figuren, die gezogen werden können, sehen wie kleine Sonnen aus. Figuren, die geschlagen werden können, haben Angst. Da beides nicht parallel möglich ist (siehe Konzeptproblem oben) muss eine zu schlagende Figur also erst dann Angst bekommen, wenn sich der Spieler (egal ob menschlich oder vom Computer gespielt) für den dazu notwendigen Zug entschieden _hat_. Warum sollte ich jetzt von dieser Regel abweichen, nur weil es gerade einen einzigen möglichen Zug für den menschlichen Spieler gibt?

      Ich habe mich für den immer gleichen Regelfall entschieden. Was meinst Du dazu?

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Hallo,

        Was meinst Du dazu?

        Wäre "nice to have" gewesen, aber ich sehe schon, es  würde kompliziert werden. Vielleicht später mal, wenn du ohnehin die KI überarbeiten willst?

        Es geht auf jeden Fall nur bei einer einzigen Zugmöglichkeit, denn wenn man aussuchen kann, ob man z.B. lieber Figur A schlägt oder Figur B, dann hätte man ja nicht mehr die Möglichkeit etwas wichtiges zu übersehen und der geschlagene Gegner würde sich ärgern. Er könnte argumentieren: "das ist fies... du hättest es sicher gar nicht gesehen, wenn das Programm nicht darauf hingewiesen hätte, das du hier auch meine Figur schlagen kannst." Dass sie ein bisschen aufpassen, darf man von menschlichen Spielern schon erwarten, sonst selber schuld, hehe.

        Gruß, Don P

        1. Lieber Don P,

          wenn Du Schlagzwang aktiviert hast, dann kannst Du nicht "nicht schlagen", wenn einer Deiner Spielsteine die Möglichkeit dazu hat. Ob das dann noch visuell verstärkt hervorgehoben wird, ist dann keine Argumentationsgrundlage mehr.

          Wenn Du keinen Schlagzwang aktiviert hast, dann könnte man diese visuelle "Hilfestellung" durchaus ankreiden, zugestanden. Aber wer spielt mein MÄDN schon zu zweit (oder mehr) am Bildschirm und hat echte menschliche Gegner, die sich beschweren könnten?

          Trotzdem bleibt das konzeptionelle Problem im Falle der Figur, die sowohl Opfer als auch Täter sein kann. Wie sollte sie dargestellt werden?

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Hallo,

            wenn Du Schlagzwang aktiviert hast, dann kannst Du nicht "nicht schlagen", wenn einer Deiner Spielsteine die Möglichkeit dazu hat.

            Das ist klar.

            Ob das dann noch visuell verstärkt hervorgehoben wird, ist dann keine Argumentationsgrundlage mehr.

            Doch, darum geht es doch gerade. Wenn nur ein Zug möglich ist, nämlich schlagen, dann kann könnte man auch mal in aller Ruhe die ängstlichen Gesichter sehen. Es spielt doch niemand dein MÄDN, nur damit es gespielt ist und man möglichst gewinnt, sondern nicht zuletzt weil es so nett gestaltet ist mit diesen verschiedenen Smilies.

            Wenn Du keinen Schlagzwang aktiviert hast, dann könnte man diese visuelle "Hilfestellung" durchaus ankreiden, zugestanden. Aber wer spielt mein MÄDN schon zu zweit (oder mehr) am Bildschirm und hat echte menschliche Gegner, die sich beschweren könnten?

            Weiß man's? Vielleicht wird das der große Renner und wird bald überall über's Netz gespielt, die Baller- und Rollenspiele weit hinter sich lassend... ;)

            Trotzdem bleibt das konzeptionelle Problem im Falle der Figur, die sowohl Opfer als auch Täter sein kann. Wie sollte sie dargestellt werden?

            Eine Mischform wäre doch auch ganz lustig: Ängstliches Gesicht mit Strahlenkranz. Das bedeutet dann soviel wie "schnell vorwärts oder ich muss nach Hause" oder "so gut wie erwischt aber eine kleine Chance hab'ich noch" oder so.

            Gruß, Don P

            1. Hallo,

              Trotzdem bleibt das konzeptionelle Problem im Falle der Figur, die sowohl Opfer als auch Täter sein kann. Wie sollte sie dargestellt werden?

              Eine Mischform wäre doch auch ganz lustig [...]

              Denkfehler: Dann gäbe es ja mehr als eine Zugmöglichkeit, also doch keine Mischform. Alles wie gehabt.

              Gruß, Don P

  13. Hi.

    Nur ganz kurz: Das macht Laune, mal so zwischendurch. Vielen Dank dafür!

    Schönen Sonntag noch!
    O'Brien

    --
    Frank und Buster: "Heya, wir sind hier um zu helfen!"
  14. Hoffentlich habe ich jetzt alle Vorschläge des Forums im Wesentlichen umgesetzt (bis auf Gunnars Wunsch nach besserer KI)...

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo Felix,

      Hoffentlich habe ich jetzt alle Vorschläge des Forums im Wesentlichen umgesetzt (bis auf Gunnars Wunsch nach besserer KI)...

      den nun optionalen Schlagzwang finde ich gut. Aber irgendwas Wichtiges hast du anscheinend verschlimmbessert. Im Firefox 3.0.x kann man das Spiel nicht einmal mehr starten: Beim Klick auf "Neues Spiel" erscheint eine rote Spielfigur auf dem Mittelfeld, die jubelnd die Arme hochreckt, mich blöde angrinst und um 2..3px auf der Stelle rumzappelt. Aber die Figuren gleiten nicht auf ihre Startplätze. Gestern ging das noch. Der aktuelle 3.6.x hat da übrigens kein Problem.
      Mein FF 3.0 zeigt auch nicht den Fortschrittsbalken "Grafiken werden geladen" beim Seitenaufruf. Das war aber von Anfang an so, und ist auch eigentlich unwichtig.

      Auch wenn FF 3.0 nicht mehr ganz aktuell ist - so alt, dass man ihn ignorieren kann, ist er IMHO noch nicht.

      Ciao,
       Martin

      --
      F: Was sagt der große Keks zum kleinen Keks?
      A: Du kannst dich jetzt verkrümeln.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Lieber Martin,

        kann es sein, dass der FF3.0 denselben Cache wie der 3.6 benutzt? Und Fehlermeldungen zeigt er auch keine mehr an? Das klingt sehr seltsam.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hallo,

          kann es sein, dass der FF3.0 denselben Cache wie der 3.6 benutzt?

          nein, die beiden erwähnten Firefoxe laufen auf separaten Rechnern (FF3.6 auf Ubuntu, FF3.0 auf Windows).

          Und Fehlermeldungen zeigt er auch keine mehr an?

          Was für Fehlermeldungen? Meinst du die Fehlerkonsole? - Sorry, ich hatte völlig verpennt, da mal reinzuschauen. Hier der Nachtrag:

          Beim Laden der Seite erscheint:

          Fehler: uncaught exception: [Exception... "Not enough arguments [nsIXMLHttpRequest.send]"  nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)"  location: "JS frame :: http://felix-riesterer.de/self/maedn/maedn.js :: anonymous :: line 575"  data: no]

          Wenn ich dann das Spiel starte, kommt aber nichts mehr dazu; es passiert einfach nix mehr:

          Das klingt sehr seltsam.

          Find' ich auch.

          So long,
           Martin

          --
          Die meisten Menschen werden früher oder später durch Computer ersetzt.
          Für manche würde aber auch schon ein einfacher Taschenrechner genügen.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. Lieber Martin,

            Fehler: uncaught exception: [Exception... "Not enough arguments [nsIXMLHttpRequest.send]"  nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)"  location: "JS frame :: http://felix-riesterer.de/self/maedn/maedn.js :: anonymous :: line 575"  data: no]

            aha! Er stört sich an meinem XHR. Den "missbrauche" ich, um an den Textinhalt meiner CSS-Datei zu gelangen (responseText). Dass der CSS-Code kein gültiges XML ist, ist mir schon klar, aber dass dieser Missbrauch zum völligen Anhalten im FF3 führt, verstehe ich nicht - oder ist es mein "leeres" send(), dass ich da aufrufe? Muss in der send-Methode eines XHR-Objektes nicht irgendetwas bezüglich synchron oder asynchron stehen?

            Das klingt sehr seltsam.

            Find' ich auch.

            Vielleicht ist es das aber garnicht? In der Doku bei Mozilla zum XHR steht etwas zu einem _optionalen_ Argument bei "send()". Ich nutze es nicht (in meinem Klammern steht nix). Bedeutet "optional" nicht "kann man auch lassen"? Hmm... woher also der Fehler?

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
            1. Hallo,

              Fehler: uncaught exception: [Exception... "Not enough arguments [nsIXMLHttpRequest.send]"  nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)"  location: "JS frame :: http://felix-riesterer.de/self/maedn/maedn.js :: anonymous :: line 575"  data: no]
              aha! Er stört sich an meinem XHR.

              ja, soviel kann ich auch aus der Fehlermeldung entnehmen. Ich war aber ehrlich gesagt zu faul, mich dann in den Quellcode einzufuchsen.

              Den "missbrauche" ich, um an den Textinhalt meiner CSS-Datei zu gelangen (responseText).

              Oh. Wozu das? Das hört sich sehr unorthodox an.

              Bedeutet "optional" nicht "kann man auch lassen"?

              So verstehe ich das auch. Wasser ist also optional: Man kann es trinken, und man kann es lassen. ;-)

              So long,
               Martin

              --
              Wer barfuß geht, dem kann man nicht die Schuld in die Schuhe schieben.
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              1. Hi.

                Bedeutet "optional" nicht "kann man auch lassen"?

                So verstehe ich das auch. Wasser ist also optional: Man kann es trinken, und man kann es lassen. ;-)

                Oder optional als Stange in die Ecke stellen.

                Schönen Sonntag noch!
                O'Brien

                --
                Frank und Buster: "Heya, wir sind hier um zu helfen!"
                1. Hallo,

                  Wasser ist also optional: Man kann es trinken, und man kann es lassen. ;-)
                  Oder optional als Stange in die Ecke stellen.

                  bah, Scheißkälte!

                  Ciao,
                   Martin

                  --
                  Zwei Mäuse treiben's miteinander. Sagt der Mäuserich: "Hoffentlich ist nicht wieder alles für die Katz."
                  Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              2. Lieber Martin,

                Den [XHR] "missbrauche" ich, um an den Textinhalt meiner CSS-Datei zu gelangen (responseText).

                Oh. Wozu das? Das hört sich sehr unorthodox an.

                um die benötigten Grafikdateien vorzuladen hole ich mir alle url(...)-Eigenschaften aus der CSS-Datei. Um nun aber an den CSS-Code als String zu gelangen missbrauche ich den XHR. Da ich die CSS-Datei "nachlade" (also ein <link>-Element dynamisch in das Dokument einfüge) habe ich "zur Laufzeit" keine Informationen über die CSS-Regeln.

                Man könnte auch das <link>-Element mit einem onload-Handler versehen, der dann das Stylesheet auswertet - aber wie ich dann an den CSS-Code als String gelange, weiß ich noch nicht, denn "data" oder "childNodes" gibt es nicht bzw. ist leer. Vielleicht gibt es da ja eine Möglichkeit außer über linkElement.sheet.cssRules[i].cssText zu iterieren. Mir ist auch (noch) nicht bekannt, ob die sheet-Eigenschaft eines <link>-Elementes seit IE6 in allen Browsern unterstützt wird.

                Liebe Grüße,

                Felix Riesterer.

                --
                ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
                1. Hallo Felix,

                  Den [XHR] "missbrauche" ich, um an den Textinhalt meiner CSS-Datei zu gelangen (responseText).
                  Oh. Wozu das? Das hört sich sehr unorthodox an.
                  um die benötigten Grafikdateien vorzuladen ...

                  provokative, aber ernstgemeinte Frage: Wozu das Vorladen?

                  Soweit ich gesehen habe, sind die Grafiken alle relativ klein (wenige kB), so dass sie auch "on demand" ohne nennenswerte Verzögerung zur Verfügung stehen sollten. Ich habe jedenfalls im FF3.0 keine Verzögerungen bemerkt, obwohl der ja anscheinend nichts vorgeladen hat - zumindest diese Meldung und den Fortschrittsbalken dazu hat er nie gezeigt.

                  Und mal ehrlich: Ein Spielablauf, der vom menschlichen Reaktionsvermögen bestimmt wird und bei dem man den Computer-Part gezielt langsam macht, leidet doch nicht darunter, wenn mal eine Sekunde zusätzlich als Pause entsteht, oder?

                  Ciao,
                   Martin

                  --
                  Wenn der Computer wirklich alles kann,
                  dann kann er mich mal kreuzweise.
                  Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                  1. Lieber Martin,

                    provokative, aber ernstgemeinte Frage: Wozu das Vorladen?

                    je nachdem auf welchen Wert man die Animationsgeschwindigkeit gestellt hat, ist es in den ersten Spielminuten für den menschlichen Spieler nicht immer nachvollziehbar, warum das Spiel wie "reagiert". Insbesondere das Nicht-Sehen der benutzbaren Spielfigur(en) wegen der noch nachzuladenden Grafik(en) kann die ansonsten hoffentlich intuitive Benutzerführung sehr verwirren.

                    Liebe Grüße,

                    Felix Riesterer.

                    --
                    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  15. Gestern abend konnte ich es testen: Auf dem iPhone mit Safari war das Spiel vollumfänglich nutzbar!

    Die Darstellung war schon verteufelt winzig. Ohne großes Zoomen kam man nicht vernünftig an die Einstellungen heran. Aber das Bedienen des Würfels und der Figuren ging dann ohne Zoom doch recht leidlich. Wer große Finger hat, der könnte dann doch den Zoom zuschalten müssen...

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  16. Liebe Mitlesende,

    ein wichtiger Kritikpunkt war die fehlende Erläuterung zu der Spielvariante "Crazy India". Die "Classic"-Variante ist hinreichend bekannt, um sich sofort im Spiel zurecht zu finden, das gilt aber nicht automatisch für die "Crazy India"-Variante. Nun kann man sich die Spielregeln anzeigen lassen und sollte mit beiden Spielvarianten zurecht kommen.

    Sind die Regeln verständlich geschrieben? Entstehen irgendwo Missverständnisse? Oder findet wer offensichtliche Fehler?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo,

      Oder findet wer offensichtliche Fehler?

      Hier ein Typo:

      Jeder Spieler hat vier Spielsteine gleicher Farbe, die er von den Starpositionen [...]

      Bei Crazy India ist es mir einmal passiert, dass ich mit drei günen Figuren ziehen durfte, aber leider nicht mit der vierten, die auf ein Zielfeld hätte gehen können. Ist das ok? Natürlich wäre ich am liebsten ins Ziel marschiert.

      Gruß, Don P

  17. Hallo Felix,

    nach meinen Tests müsste das Spiel eigentlich(!) zufriedenstellend laufen, aber da ich nicht alle aktuellen Browser testen kann, bitte ich um fleißiges Ausprobieren: "Mensch ärgere dich nicht!" online spielen

    ich war heute nachmittag bei meinen Eltern zu Besuch, und wir haben tatsächlich mal wieder eine Runde Mensch ärgere dich nicht gespielt. Meine Eltern haben eine Schmidt-Originalausgabe aus den späten 60er Jahren; man sieht dem ganzen Set das Alter schon an: Der Pappdeckel des Spielfelds hat schon etwas abgestoßene Ecken und Kratzer, die bunten Holzfiguren sind schon ziemlich abgegriffen, und auch die Anleitung, ein einmal gefaltetes Blatt, ist schon mit Vorsicht zu handhaben.

    Ich habe die Chance genutzt, die Details nachzulesen, zu denen hier im Thread schon unterschiedliche Ansichten geäußert wurden.

    Schlagzwang: Davon steht in der Spielanleitung nichts. Es ist immer nur die Rede davon, dass eine gegnerische Figur geschlagen werden *darf*.

    Spielbeginn: Die von mir beschriebene Variante, dass die erste Figur schon auf dem Startfeld "A" steht und sofort starten darf, ohne dass man dafür eine 6 würfeln muss, ist offiziell.

    Überspringen: Das Überspringen von Figuren, die bereits mit Lücken dazwischen auf den Zielfeldern a,b,c,d stehen, wird in der Spielanleitung sogar ganz ausdrücklich als Beispiel beschrieben, ist also zulässig.

    Ansonsten steht einer individuellen Auslegung oder Definition bestimmter Detailregeln ja nichts im Weg, man sollte sich nur vor Spielbeginn einig sein.

    So long,
     Martin

    --
    Disziplin: Teppichböden wiederfinden, wenn man sie verlegt hat.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(