Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
115
Task/Snake/FreeBASIC/snake.basic
Normal file
115
Task/Snake/FreeBASIC/snake.basic
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
REM Snake
|
||||
|
||||
#define EXTCHAR Chr(255)
|
||||
|
||||
Dim Shared As Integer puntos, contar, longitud, posX, posY, oldhi = 0
|
||||
Dim Shared As Integer x(500), y(500)
|
||||
For contar = 1 To 500
|
||||
x(contar) = 0 : y(contar) = 0
|
||||
Next contar
|
||||
Dim Shared As Byte fruitX, fruitY, convida
|
||||
Dim Shared As Single delay
|
||||
Dim Shared As String direccion, usuario
|
||||
|
||||
Sub Intro
|
||||
Cls
|
||||
Color 15, 0
|
||||
Print " _ _ _ _ "
|
||||
Print " / \ / \ / \ / \ "
|
||||
Print " ___________/ _\/ _\/ _\/ _\____________ "
|
||||
Print " __________/ /_/ /_/ /_/ /______________ "
|
||||
Print " | /\ /\ /\ / \ \___ "
|
||||
Print " |/ \_/ \_/ \_/ \ "+Chr(248)+"\ "
|
||||
Print " \___/--< "
|
||||
Color 14, 0
|
||||
Locate 10, 28: Print "---SNAKE---"
|
||||
Locate 12, 4: Print "Para jugar, usa las teclas de flecha para moverte."
|
||||
Locate 13, 4: Print "Pulsa <1-3> para velocidad, o <Esc> para salir."
|
||||
If puntos > oldhi Then oldhi = puntos
|
||||
Locate 14, 4: Print "M xima puntuaci¢n: "; oldhi
|
||||
usuario = ""
|
||||
While usuario = ""
|
||||
usuario = Inkey
|
||||
Wend
|
||||
If usuario = Chr(27) Then End 'ESC
|
||||
delay = .14
|
||||
If usuario = "1" Then delay = .26
|
||||
If usuario = "3" Then delay = .08
|
||||
Cls
|
||||
longitud = 9
|
||||
puntos = 0
|
||||
posX = 40 : posY = 10
|
||||
direccion = "derecha"
|
||||
convida = true
|
||||
fruitX = Int(Rnd * 79) + 1
|
||||
fruitY = Int(Rnd * 20) + 1
|
||||
Locate 22, 1
|
||||
For contar = 1 To 80
|
||||
Print Chr(196); ''"-";
|
||||
Next contar
|
||||
End Sub
|
||||
|
||||
Sub MenuPrincipal
|
||||
Dim As Integer num, oldX, oldY
|
||||
Dim As Single tm, tm2
|
||||
|
||||
Color 10
|
||||
Locate 23, 2: Print "SNAKE - <Esc> salir - Puntos: "; puntos
|
||||
If posX = fruitX And posY = fruitY Then
|
||||
longitud += 1
|
||||
puntos += 1
|
||||
fruitX = Int(Rnd * 79) + 1
|
||||
fruitY = Int(Rnd * 21) + 1
|
||||
End If
|
||||
Locate fruitY, fruitX : Color 12: Print Chr(01) : Color 10'"@"
|
||||
x(0) = posX : y(0) = posY
|
||||
|
||||
For contar = 1 To 499
|
||||
num = 500 - contar
|
||||
x(num) = x(num - 1)
|
||||
y(num) = y(num - 1)
|
||||
Next contar
|
||||
|
||||
oldX = x(longitud) : oldY = y(longitud)
|
||||
If oldX > 0 And oldY > 0 Then Locate oldY, oldX : Print " "
|
||||
|
||||
Locate posY, posX: Print Chr(219) '"Û"
|
||||
tm = Timer
|
||||
tm2 = tm + delay
|
||||
While tm < tm2
|
||||
tm = Timer
|
||||
usuario = Inkey
|
||||
If usuario = EXTCHAR & "H" Then direccion = "arriba"
|
||||
If usuario = EXTCHAR & "P" Then direccion = "abajo"
|
||||
If usuario = EXTCHAR & "K" Then direccion = "izquierda"
|
||||
If usuario = EXTCHAR & "M" Then direccion = "derecha"
|
||||
If usuario = Chr(27) Then Intro
|
||||
Wend
|
||||
If direccion = "derecha" Then posX += 1
|
||||
If posX > 80 Then convida = false
|
||||
If direccion = "izquierda" Then posX -= 1
|
||||
If posX < 1 Then convida = false
|
||||
If direccion = "arriba" Then posY -= 1
|
||||
If posY < 1 Then convida = false
|
||||
If direccion = "abajo" Then posY += 1
|
||||
If posY > 21 Then convida = false
|
||||
|
||||
For contar = 0 To longitud
|
||||
If posX = x(contar) And posY = y(contar) Then convida = false
|
||||
Next contar
|
||||
|
||||
If convida = false Then
|
||||
Cls : Locate 11, 19: Print "Pulsa <space>..."
|
||||
Locate 10, 18: Print "Has muerto! Con"; puntos; " puntos." : Sleep
|
||||
While Inkey = "": Wend
|
||||
Intro
|
||||
End If
|
||||
MenuPrincipal
|
||||
End Sub
|
||||
|
||||
'--- Programa Principal ---
|
||||
Randomize Timer
|
||||
Intro
|
||||
MenuPrincipal
|
||||
End
|
||||
'--------------------------
|
||||
Loading…
Add table
Add a link
Reference in a new issue