vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Der Rohcode in AmigaBasic. 
Autor: unbekannt
Datum: 08.09.01 21:11

Ohne Data - Locations!
 
Vorbereitungen:
   Dim Lab$(49,21) ' Dimensioniert ein zweidimenionales Feld
   Ri = -90        ' Datentyp: Integer.
 
LabyrinthEinlesen:
   For y = 1 To 20
      Read Stern$   'Daten einlesen
      For x = 1 To 48
          Lab$(x,y) = Mid$(Stern$,x,1)
          If Lab$(x,y) = "*" Then 'Also eine Sperre
             Line(x*8-8, y*8-8)-(x*8-1, y*8-1),Farbe,BF
          End If
      Next
   Next
   Color 3
 
MausPositionierung:
   Locate 21,1: Print "Positionieren Sie die Maus!" 'Msgbox ...
   While Mouse(0) <> 0 : Wend 'Ereignisprozedur Mouse_click!
   While Mouse(0) = 0
      xpos = Mouse(1) : ypos = Mouse(2) 'kein Problem!!!
   Wend
   x = Int(xPos/8)+1 
   y = Int(yPos/8)+1
   If Lab$(x,y) = "*" Then
      Goto MausPositionierung
   End If
   Locate 21,1 : Print Space$(30)
   AltX = X : AltY = Y : BX = X : BY = Y
 
MainProgramm:
   Gosub Maus 'Diese Sprünge brauchen wir nicht mehr ;-)
   If x = 44 And y = 20 Then Ende
   On (Ri/-90) Goto Grad90, Grad180, Grad270, Grad360)
       'Eine Jumptable: Wie nostalgisch ;-)
 
Grad90:
   If Lab$(x-1,y)= " " And Lab$(x,y-1) = "*" Then
      X = X - 1
      Goto MainProgramm
   End If 
   If Lab$(x,y-1)=" " Then 
      y=y-1
      Ri = - 360
      Goto MainProgramm
   End If
   If Lab$(x-1,y)="*" Then
      Ri=Ri - 90
      Goto MainProgramm
   End If
 
Grad180:
   If Lab$(x,y+1)= " " And Lab$(x-1,y) = "*" Then
      Y = Y - 1
      Goto MainProgramm
   End If 
   If Lab$(x-1,y)=" " Then 
      x=x-1
      Ri = Ri + 90
      Goto MainProgramm
   End If
   If Lab$(x,y-1)="*" Then
      Ri=Ri - 90
      Goto MainProgramm
   End If
 
Grad270:
   If Lab$(x+1,y)= " " And Lab$(x,y+1) = "*" Then
      X = X + 1
      Goto MainProgramm
   End If 
   If Lab$(x,y+1)=" " Then 
      y=y+1
      Ri = Ri + 90
      Goto MainProgramm
   End If
   If Lab$(x+1,y)="*" Then
      Ri=Ri - 90
      Goto MainProgramm
   End If
 
Grad360:
   If Lab$(x,y-1)= " " And Lab$(x+1,y) = "*" Then
      Y = Y - 1
      Goto MainProgramm
   End If 
   If Lab$(x+1,y)=" " Then 
      x=x+1
      Ri = Ri+90
      Goto MainProgramm
   End If
   If Lab$(x-1,y)="*" Then
      Ri=-Abs(90+Ri)
      Goto MainProgramm
   End If
   Ri = -90
   Goto Grad90
 
NeueRichtung:
   Ri=-90*Int(Rnd(1) * 4)
   If Ri > 0 Then Ri = 0
   If Ri = 0 Then a=0 : b = -1
   If Ri = -90 Then a=-1 : b=0
   If Ri = -180 Then a = 0: b=1
   If Ri = -270 Then a = 1: b=0
   While Lab$(x+a,y+b)=" "
        Ri = 0
        x =x + a
        y =y + b
        Gosub Maus
   Wend
   Bx=x 
   By=y
   s=0
   Ri=-360-Ri
   Goto MainProgramm
 
Ende:
   Locate 21,1 : Print "Ausgang gefunden!"
   While Mouse(0) <> 0 : Wend
   Goto MousePositionierung
 
Maus:
   s=s+1
   Locate Alty,Altx : Print " "
   Locate y,x : Print "*"
   AltX = x : AltY = y
   If Bx = x And By = y And s > 1 Then NeueRichtung
   Return
cu
Lordchen
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Labyrinth programmieren176Frosch08.09.01 19:02
Re: Labyrinth programmieren1.118unbekannt08.09.01 19:15
Kurzer Nachtrag: Drehung.908unbekannt08.09.01 19:23
Re: Kurzer Nachtrag: Drehung.93Frosch08.09.01 19:37
Re: Kurzer Nachtrag: Drehung.853unbekannt08.09.01 19:40
Re: Kurzer Nachtrag: Drehung.104Frosch08.09.01 19:49
Kennst Du ggf. Amiga-Basic? (oT)855unbekannt08.09.01 19:51
Re: Kennst Du ggf. Amiga-Basic? (oT)86Frosch08.09.01 20:12
OK, dann folgendes:854unbekannt08.09.01 20:14
Re: OK, dann folgendes:85Frosch08.09.01 20:17
Der Rohcode in AmigaBasic.988unbekannt08.09.01 21:11
Geschichte des "Pledge"-Algorithmus1.073unbekannt08.09.01 20:05

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel