Buchempfehlung
Visual Basic 6 Kochbuch
Visual Basic 6 Kochbuch
Viele praktische Tipps zum Programmieren mit Visual Basic 6, die sich oft auch auf FB übertragen lassen. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

14.1: Zufallsgesteuerte Computerbewegung

Uploader:Redakteurnemored
Datum/Zeit:29.10.2011 00:54:30
Hinweis: Dieser Quelltext ist Bestandteil des Projekts OpenBook: 2D-Spieleprogrammierung, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.

' *** CODE 14.1: Zufallsgesteuerte Computerbewegung

DO
  ' Vorwaertszug testen
  SELECT CASE cr
    CASE Links
      IF felddata(cx-1, cy) = Leer THEN bewege cx, cy, Links  : CONTINUE DO
    CASE Oben
      IF felddata(cx, cy-1) = Leer THEN bewege cx, cy, Oben   : CONTINUE DO
    CASE Rechts
      IF felddata(cx+1, cy) = Leer THEN bewege cx, cy, Rechts : CONTINUE DO
    CASE Unten
      IF felddata(cx, cy+1) = Leer THEN bewege cx, cy, Unten  : CONTINUE DO
  END SELECT

  ' verfuegbare Richtungen suchen
  DIM AS INTEGER linksabbiegen = 0, rechtsabbiegen = 0
  SELECT CASE cr
    CASE Links
      IF felddata(cx, cy+1) = Leer THEN linksabbiegen = -1
      IF felddata(cx, cy-1) = Leer THEN rechtsabbiegen = -1
    CASE Oben
      IF felddata(cx-1, cy) = Leer THEN linksabbiegen = -1
      IF felddata(cx+1, cy) = Leer THEN rechtsabbiegen = -1
    CASE Rechts
      IF felddata(cx, cy-1) = Leer THEN linksabbiegen = -1
      IF felddata(cx, cy+1) = Leer THEN rechtsabbiegen = -1
    CASE Unten
      IF felddata(cx+1, cy) = Leer THEN linksabbiegen = -1
      IF felddata(cx-1, cy) = Leer THEN rechtsabbiegen = -1
  END SELECT
  IF linksabbiegen AND (NOT rechtsabbiegen) THEN      ' nur linksabbiegen
    cr = (cr+3) MOD 4
  ELSEIF (NOT linksabbiegen) AND rechtsabbiegen THEN  ' nur rechtsabbiegen
    cr = (cr+1) MOD 4
  ELSEIF linksabbiegen AND rechtsabbiegen THEN        ' beides moeglich
    ' zu 50% links, zu 50% rechts abbiegen
    IF RND < .5 THEN cr = (cr+3) MOD 4 ELSE cr = (cr+1) MOD 4
  ELSE                                                ' keines moeglich
    cr = (cr+2) MOD 4
  END IF
LOOP UNTIL INKEY <> ""