Idee für ein Knobelspiel - wer codet´s?

Es gibt 413 Antworten in diesem Thema, welches 65.269 mal aufgerufen wurde. Der letzte Beitrag (14. Januar 2009 um 15:10) ist von ogd.

  • Zitat

    Original von hannenz
    ääähm. tja das kann evtl. schon sein was du sagst.
    die aufaddierung erfolgt im hauptprogramm.
    der test auf null auch.
    nur das dekrementiern findet im irq statt.
    während des aufaddierens ist der teil des irqs der dekrementiert aber gesperrt.


    ehm... zum ersten.

    so wie ich das sehe, ist der test auf null (lda timelow, ora timehigh, bne *+3, jmp x) aber direkt vor der dekrementierung...also BEIDES im irq!!!!.

    und wie willst du das sperren des tests auf null & decrementieren denn realisiert haben???
    wenn das nämlich nicht hinhaut, wird es der fehler sein!

  • so, hab mir das problem eben nochmals (zusammen mit einer angenehmen morgendusche (warmduscher :gluck )) durch den kopf gehen lassen.

    probier doch mal folgendes.

    im hauptprogramm:

    1. sperrflag setzten (irgendeine speicherstelle)
    2. zeit aufaddieren
    3. sperrflag löschen


    und im irq:

    wenn sperrflag gelöscht:

    1. auf null testen
    2. zeit dekrementieren
    3. zeitbalken updaten


    wenn sperrflag gesetzt KEINES der 3 dinge tun, auch nicht den zeitbalken updaten,
    da es da sonst auch zu gfx bugs kommen könnte.


    das müsste das problem beheben... es sei denn, da ist noch wo anders der hund drin.

  • So, neue Testspielrunde abgeschlossen!

    Aufgefallen ist:
    - Joker-Tierchen erzeugen nicht nur Grafikfehler, wenn sie fallen, sondern auch, wenn man sie mit ihrem Nebentier tauscht
    - Die NO MORE MOVES - Meldung kommt immer noch, auch wenn das Level mit diesem Zug abgeschlossen ist
    - Ich hatte zweimal den Fall, dass eine der Tier-Grafiken mit Schrott bzw. einer Zahl überschrieben wurde (siehe Screenshot).

    Wie wäre es, wenn man noch einen Endlos-Mode als Variante implementiert? Mich stört der Level-Wechsel eher beim Spielen. :) Man könnte dann z.B. immer gezielt Joker-Tierchen auftauchen lassen, wenn die möglichen Züge sich dem Ende neigen...

    Volker

  • ganz genau so hab ich's ja ;) (weiss jetzt nicht mehr genau welche version DU hast, aber genau so mache ich es in der aktuellen version und bisher trat der timeout-bug auch nicht mehr auf... ich sag ja: ich hoffe das wars. ich glaube in der vorigen version war es so, dass im irq nur dekrementiert wurde, nicht aber ein timeout-flag gesetzt wurde.
    Das sperren erfolgt genau wie du es beschreibst, ebenfalls vom hauptprogramm aus einfach durch ein flag, das im irq getestet wird und bei != 0 eben den "timer-teil" überspringt.)

    ich werd mal nochmal einen snapshot hochladen, damit ihr probe zocken könnt. kommt heute noch...

    Volker: ja, die jokers machen bissl probleme beim tausch und ruinterfallen; ich hab das inzwischen gefixt, jedoch treten immer noch fehler in der darstellung auf. muss ich wohl nochmal ran.
    endlos modus: ja ok, aber dann ohne highscore oder wie...?! wie genau meinst du das: auch ohne zeitlimit??

    die "no_more_moves vor levelende" mach ich noch.

    habe jetzt den highscore saver auch implementiert (wahlweise). blöderweise schmiert dabei das programm unter TFR (FINAL REPLAY RR-ROM) ab - bis ich das mal raus hatte, dass es daran liegt - bin schier verzweifelt.

  • Zitat

    Original von hannenz
    endlos modus: ja ok, aber dann ohne highscore oder wie...?!


    Würde ich sagen

    Zitat

    Original von hannenz
    wie genau meinst du das: auch ohne zeitlimit??


    Denke schon, quasi ein Trainingsmodus. :)

  • ist ja langweilig... aber wenn ihr wollt; ist ja kein problem...

    Roland:

    mein irq sieht folgendermassen aus (der interessante teil)

    IRQ:

    [...]
    1. test auf timer == 0, wenn ja setze time_out = 1 und überspringe timer
    2. teste stop flag, wenn ungleich null, überspringe timer
    3. dekrementiere timer
    4. zeichne balken
    ... weiter im irq
    [...]

    HAUPTPROGRAMM:

    setze stop flag (1)
    [...]
    addiere zeit auf
    [...]
    lösche stop flag (0)

    [...]

    if (time_out){
    do_alles_mögliche_timeout_eben...
    }


    im hauptprogramm ist das stop flag immer auf eins, wenn die zeit aufaddiert wird.
    ich sehe keine undichte stelle mehr. das muss wasserdicht sein.
    aber jetzt können ja alle mal kräftig zocken bis die joysticks qualmen, dann werden wir ja schnell sehen ob der bug weiterhin auftritt.

    mittlerweile habe ich einmal einen anderen bug entdeckt, der ebenso seltsam ist: komplett-absturz bei PAUSE (run/stop)... bitte um rückmeldung ob das auch nochmal auftritt!

  • Und wo bekomm ich den neusten Snapshot her? ;)

  • mann, wo hab ich manchmal nur meinen kopf...???!!!!
    hier:

    Bitte melde dich an, um diesen Link zu sehen.

    ACHTUNG! Ab jetzt gibts kein PRG mehr sonder ein d64.
    wie gesagt: highscore saver und TFR --> crash!

  • ehm, ich sehe aber die schwachstelle auf anhieb (und genau so wie zuvor beschrieben.

    du musst im irq punkt 1 und 2 vertauschen.
    denn so wie es jetzt ist, testest du ja IMMER ob timer == 0, auch wenn das stop flag gesetzt ist !!!!
    und wenn der irq eben genau zwischen dem aufaddieren des low und highbytes des timers zuschläg, kann der fehler eintreten (-> low ist bereits auf 00 gesetzt, high aber noch nicht auf 1 (sonder auch noch auf 0)).

  • yep. wenn man es so betrachtet hast du schlicht und ergreifend RECHT! ;)
    könnt mich in den a*** beissen, dass ich das nicht selber gemerkt hab.
    also: wird sofort gefixt.

    btw: hab gerade OHNE VICE-ALT-BESCH*** Level 14: 80776 Pkt. :) :) :)

  • So, hab die Version gerade ausprobiert und muss leider sagen, dass sie mir nun gar nicht mehr gefällt, da nun kurz nach jedem Zug, den man macht, wirklich immer so ein Bonustier auftaucht. Heißt, man braucht fast immer nur das Bonustier benutzen, um ins nächste Level zu kommen. Das hat dann leider mit dem eigentlichen Spielsinn nicht mehr viel zu tun. Hab dadurch mal so eben nebenbei über 87000 Punkte gemacht.

  • aaargh!! habe da mal die wahrscheinlichkeit für joker-tiere auf extrem hoch gesetzt, um was zu testen... muss wohl vergessen haben das vor dem upload wieder auf "normale wahrscheinlichkeit" zu setzen. ist also keine absicht.

    ich habe gerade die richtige version hoch geladen:
    nochmal: Bitte melde dich an, um diesen Link zu sehen.

    fixes:
    - timeout bug gefixt (dank an roland!)
    - level_up vor no_more_moves
    - joker tiere gfx bugs bei swap/ drop
    - alles mögliche...

    EDIT: MOMENT MAL IRGENDWAS STIMMT DA NICHT MIT DEM UPLOAD... ES WIRD IMMER EINE FALSCHE VERSION HOCHGELADEN, MUSS DAS ERST CHECKEN!!

    ok, sollte jetzt gehen, keine ahnung was da falsch lief.... ich hatte 100% die aktuelle version hochgeladen, konnte aber auch immer nur eine alte downloaden... jetzt auf einmal gehts. der start screen sollte jetzt grau sein, dann habt ihr die aktuelle.

  • Achso, dann ist ja alles klar. Nur kann ich jetzt das d64-Teil nicht öffnen, auch nicht mit D64-Editor. ;)

    Edit: Oh, jetzt erst dein Edit gelesen. :D

  • jetzt sollte es gehen. :)

    Pohli: dein nächster post ist No. 1000 (!)

  • Hey super, so macht's wieder richtig Spaß. :]
    Nur der Highscore-Saver funktioniert bei mir nicht auf WinVICE 1.19, die Laufwerks-LED blinkt und die Highscore-Tabelle wird nicht aktualisiert. Dabei wollte ich unbedingt Paul Penis runterkicken. :D

    Zitat

    Original von hannenz
    Pohli: dein nächster post ist No. 1000 (!)


    Ja und?

  • tatsächlich, du hast recht. muss irgendwie am disk image liegen.
    ich mach die snapshots mit einem selbstgeschriebenen command line tool, also kompilieren, packen, image machen, datein (zoomania.prg, zoo.hi) ins image schreiben.
    hab das jetzt mal von hand mit dem d64 editor gemacht, da funktioniert das tadellos.
    es geht aber auch mit dem aktuellen snapshot wenn man im vice true drive emulation deaktiviert.
    also, mach ihn raus, den paul penis (kannst dich ja mit "hans schwanz" eintragen ;), mein gott bin ich manchmal pubertär...)

  • @hannenz:
    Könntest Du mir bitte demnächst mal eine Version das Games zukommen lassen, in der statt dem Laden bzw. Speichern der Hiscoretable auf Disk zwei externe Adressen mit JSR angesprungen werden?
    Ich würde dann versuchen, einen MMC64-kompatiblen Hiscoresaver zu bauen.

    CU
    Kratznagel

  • Also das "Endlos-Spiel" sollte meiner Meinung nur so lange gehen bis man keine Moves mehr hat.

    Dann natürlich ohne Zeit damit man sich auch überlegen kann welche Tiere man am besten auflöst. Da könnte man dann auch eine Highscore-Tabelle ruhig wieder nehmen. Weil irgendwann sind keine Züge mehr möglich...

  • Also, ich habe mich ja noch gar nicht zum Spiel geäußert und muss sagen:

    COOL, das schockt total und macht süchtig!

    Das Beste ist, dass meine Freundin, die sonst immer meckert, wenn ich mal wieder Stunden vorm Commodore hänge, auch vom Spiel begeistert ist!!!!
    Aber sie hat mich auch schon gefragt, ob man zum Üben nicht mal due Zeit ausstellen kann!

    Wäre echt super, wenn man noch einen Trainingsmodus integrieren könnte.

    Nochmal vielen Dank an Hannez und seine Mitstreiter!!! =)

    MfG
    Fenris

  • das spiel ist fertig :) :)
    ich bin gerade am optimieren, will gecruncht noch unter 16k kommen, wegen modul... (im moment bin ich bei 16541 Bytes...)

    die final version enthält einen "trainer" (ohne zeit und ohne levels) und hoffentlich keine bugs mehr ;)

    stay tuned...