Snake - haase-news

Direkt zum Seiteninhalt

Hauptmenü:

Informatik > Bereiche > Logo

pr aaa
 bild
 setze "futterliste []
 setze "rand.links -420
 setze "rand.unten -200
 setze "feld.breite 840
 setze "feld.höhe 400
 futter.setzen
 setze "punktliste (liste :futter)
 futter.setzen
 settimer 1 5000 [sh auf :futter quadrat.löschen futter.setzen]
 sh auf liste :rand.links :rand.unten
 sa wh 2 [vw :feld.höhe re 90 vw :feld.breite re 90]
 sh mitte
 quadrat.init
 setze "xf 1 setze "yf 0 vi
 keyboardon [setze "taste char keyboardvalue auswertung]
 setFocus [FMSLogo]
 schlange.bewegen
ende

pr auswertung
 wenn :taste = "a [setze "xf -1 setze "yf 0 rk]
 wenn :taste = "w [setze "xf 0 setze "yf 1 rk]
 wenn :taste = "d [setze "xf 1 setze "yf 0 rk]
 wenn :taste = "s [setze "xf 0 setze "yf -1 rk]
 wenn :taste = "4 [setze "xf -1 setze "yf 0 rk]
 wenn :taste = "5 [setze "xf -1 setze "yf 0 rk]
 wenn :taste = "8 [setze "xf 0 setze "yf 1 rk]
 wenn :taste = "6 [setze "xf 1 setze "yf 0 rk]
 wenn :taste = "2 [setze "xf 0 setze "yf -1 rk]
 wenn :taste = "# [keyboardoff cleartimer 1 halt]
ende

pr futter.setzen
 do.until [futter.setzen.intern][nicht? element? :futter :punktliste]
 quadrat.zeigen :futter
ende

pr futter.setzen.intern
 setze "futter.x :rand.links + :punkt.breite + :punkt.breite * zz (:feld.breite / :punkt.breite - 1)
 setze "futter.y :rand.unten+ :punkt.breite + :punkt.breite   * zz (:feld.höhe /:punkt.breite - 1)
 setze "futter liste :futter.x :futter.y
ende

pr quadrat.init
 setze "schlangenfarbe [0 0 255]
 setze "weiß [255 255 255]
 füllfarbe :schlangenfarbe
 farbe :schlangenfarbe
 setze "quadrat.breite 18
 setze "punkt.breite :quadrat.breite+2
ende

pr quadrat.löschen
 füllfarbe :weiß
 fülle
 füllfarbe :schlangenfarbe
ende

pr quadrat.zeigen :punkt
 sh auf :punkt
 re 90 rw :quadrat.breite/2 li 90 rw :quadrat.breite/2 sa
 vw :quadrat.breite re 90
 vw :quadrat.breite re 90
 vw :quadrat.breite re 90
 vw :quadrat.breite re 90
 sh vw :quadrat.breite/2 re 90 vw :quadrat.breite/2 li 90 fülle
ende

pr schlange.bewegen
 schlange.neuerPunkt :xf :yf
 wenn (er :punktliste) = :futter [schlange.hängean :futter]
 quadrat.zeigen er :punktliste
 schlange.löscheLetztes warte 2
 schlange.bewegen :xf :yf
ende

pr schlange.hängean :punkt
 setze "punktliste ml :punkt :punktliste
ende

pr schlange.löscheLetztes
 auf lz :punktliste
 quadrat.löschen
 setze "punktliste ol :punktliste
ende

pr schlange.neuerPunkt :xf :yf
 setze "x er er :punktliste
 setze "x :x+:xf*:punkt.breite
 setze "y lz er :punktliste
 setze "y :y+:yf*:punkt.breite
 wenn :x>:rand.links+:feld.breite-:punkt.breite [setze "x :rand.links+:punkt.breite]
 wenn :x<:rand.links+:punkt.breite [setze "x :rand.links+:feld.breite-:punkt.breite]
 wenn :y>:rand.unten+:feld.höhe-:punkt.breite [setze "y :rand.unten+:punkt.breite]
 wenn :y<:rand.unten+:punkt.breite [setze "y :rand.unten+:feld.höhe-:punkt.breite]
 setze "punkt liste :x :y
 setze "punktliste me :punkt :punktliste
ende

pr schlange.zeigen :punktliste
 wenn leer? :punktliste [rk]
 quadrat.zeigen er :punktliste
 schlange.zeigen oe :punktliste
ende

Screenshot

Die Kollisionsabfrage funktioniert im Moment nicht. Eine Bearbeitung erfolgt in den nächsten Tagen.

 
Zurück zum Seiteninhalt | Zurück zum Hauptmenü