Hello, Guest the thread was called435 times and contains 2 replays

last post from BIF at the

Z10: Smaragd-Sammler


  • Da Interesse daran bestand diesen kurzweiligen BIF 10-Zeiler nachzuprogrammieren mache ich hier mal diesen Thread auf.


    Als erste wird die Statusleiste ausgegeben und die Smaragde zufällig über den Bildschirm verteilt
    und das Männchen auf eine freie Stelle plaziert.
    Danach erfolgt das Smaragdesammeln mit Tonausgabe und Anzeige in der Statusleiste oben rechtsbündig.
    Die erste Angabe in der Statusleiste zeigt überigens linksbündig den Rundenzähler.
    Als End-Effekt dient ein Rahmenflimmern und dann gehts auch schon weiter in die nächste Runde.


    Also dann, viel Spass und Erfolg beim Nachprogrammieren !!!


    Schönen Gruß.

  • Etwas einfacher ist es wahrscheinlich den Smaragd-Sammler erst mal mit Ein-Zeichen-Elementen zu programmieren:



    Für die Programmierung sind natürlich mehrere Unterprogramme nötig,
    1. Schirm-Positionierung
    2. Bildschirm-Auswertung
    3. Tastenauswertung
    4. Statusleiste
    5. Tonausgabe.
    6. Rahmenflimmern als Levelende.


    Schönen Gruß.

  • LISTING: Smaragd-Sammler (1x1)
    ----------------------------------------------
    Hallo, mal wieder, wer sich dafür interessiert, wie ich´s gemacht habe für die bringe ich hier den Quellcode des Smaragd-Sammlers (1x1), den man dann natürlich auch auf 2x2-Zeichen-Elemente erweitern kann.


    Listing:
    0 :deffnc(a)=peek(peek(209)+peek(210)*256+pos(.)+a):deffnr(a)=int(rnd(1)*a)
    1 :n=53280:poken+1,11:poken,0:r=r+1:m=70+fnr(60):s=54276:pokes+20,15:poke19,1
    2 :m$="[gelb,rev-off]Q[links]":p$="[hellgrün,rev-off]Z":b$="[home,revers,hellgrau,N,h]":a$="“
    3 :print"[clr]"b$r;tab(80):getc$:gosub8:fora=1tom:gosub9:printp$;:next:gosub8:gosub9
    4 :print" [links]"a$m$;:ifm<1then:fora=.to350:poken,aand15:next:goto
    5 :poke198,.:wait198,7:geta$:b=(a$="[links]")-(a$="[rechts]"):a=(a$="[hoch]")-(a$="[runter]"):c=b+a*40
    6 :x=pos(.):y=peek(214):x=x+40*(x>39):ifc=.ory+a<2ory+a>23orx+b<.orx+b>39goto5
    7 :a=fnc(c)>32:m=m+a:g=g-a:on-agosub8:poke211,x:poke214,y:sys58640:goto4
    8 :printb$tab(39-len(str$(g)))g:pokes,.:pokes-3,25:pokes+1,42:pokes,17:return
    9 :poke211,fnr(40):poke214,fnr(24):sys58640:on-(fnc(.)<>32)goto9:return


    Ein wesentliches Element der Basic-Spiele-Programmierung ist dabei die Bildschim-Peek-Funktion in Zeile 0, mit der ich abhängig von der Varialben.a die Positionen rechts, links, oben, unten von der aktuellen Bildschirm-Position des Cursors lesen kann.


    Zeile.0: Funktionsdefinierung Bildschirm-Peek und Zufalls-Funktion
    Zeile.1: Konstannten für Ton, Rahmen, Rundenzähler , Smaragdzahl+ Rahmen und Hintergrundfarbe
    Zeile.2: Strings für Männchen, Smaragde, Statusleiste
    Zeile.3: Ausgabe der Smaragde auf dem Schirm
    Zeile.4: Männchenausgabe+ End-Flimer-Effekt
    Zeile.5: Tasten-Abfrage+Auswertung
    Zeile.6: Positionsbestimmung und Sicherheitsabfrage
    Zeile.7: Diamanten-Zählen+Anzeigen
    Zeile.8: Ton und Punkt-Anzeige rechtsbündig
    Zeile.9: Zufalls-Positionierung des Cursors und prüfen auf Leerzeichen.


    Schönen Gruß.