set color 0, 0, 0
cls
for x = 0 to sizeof(maze) - 1
for y = 0 to sizeof(maze[0]) - 1
dx = x*side
dy = y*side
set color 255, 255, 255
if not maze[x][y].l draw line dx, dy, dx, dy + side - 1
if not maze[x][y].r draw line dx + side - 1, dy, dx + side - 1, dy + side - 1
if not maze[x][y].u draw line dx, dy, dx + side - 1, dy
if not maze[x][y].d draw line dx, dy + side - 1, dx + side - 1, dy + side - 1
next
next
redraw
while not keydown(KEY_ESCAPE, true) fwait 60
' GenerateMaze
' ------------
' Return an array of the size w*h, where every element has four fields, l, r, u and d, telling if
' there's a way left, right, up and down.
function GenerateMaze(w, h)
maze = fill([vis: false, l: false, r: false, u: false, d: false], w, h)
GenerateMazeRec(maze, rnd(sizeof(maze)), rnd(sizeof(maze[0])), 0)
return maze
function GenerateMazeRec(maze, x, y, dir)
if x < 0 or x >= sizeof(maze) or y < 0 or y >= sizeof(maze[0]) return false
if maze[x][y].vis return false
maze[x][y].vis = true
if dir = 1
maze[x][y].r = true
maze[x + 1][y].l = true
elseif dir = 2
maze[x][y].l = true
maze[x - 1][y].r = true
elseif dir = 3
maze[x][y].d = true
maze[x][y + 1].u = true
elseif dir = 4
maze[x][y].u = true
maze[x][y - 1].d = true
endif
visit = [1, 2, 3, 4]
while sizeof(visit)
index = rnd(sizeof(visit))
if visit[index] = 1 GenerateMazeRec(maze, x - 1, y, 1)
elseif visit[index] = 2 GenerateMazeRec(maze, x + 1, y, 2)
elseif visit[index] = 3 GenerateMazeRec(maze, x, y - 1, 3)
else GenerateMazeRec(maze, x, y + 1, 4)
free key visit, index
wend
return true
endfunc
endfunc
I'll post some more code later, explaining how this can be used for creating a map for the wolf3d library.
I'm making a tiny karaoke machine, but I can't find a function to convert string to number and to syncronize song and lyrics.
Could you please advise me ?
Code:
'TOBE...synchronize lyrics and timestamps
clearscreen()
set caret 10,10
for i = 1 to j-2
'time1 = left(lyrics[i],2) 'take the first two digits number of lyrics[i]
'convert time1 from string to number
'if 'real time' = time1 then display lyrics
wln mid(lyrics[i],3,80)
wait 3000 'this line should be removed if lyrics and timestamps are synchronized
next
Herewith the full code
Code:
'==================================================================================
' T.I.N.Y K.A.R.A.O.K.E
'
' Songs :
' 1. Nathan Evans - Wellerman (Sea Shanty)
' https://www.youtube.com/watch?v=bNQSMTNSnUw
'
' DISCLAIMER
' It is not intended for commercial use and not for sale
' No person or entity associated with this game received payment
' or anything of value, or entered into any agreement,
' in connection with any game assets used in this game.
'
' All trademarks and game assets are the property of their respective owners.
' While every effort is made to acknowledge their works,
' some of the game assets used in in this tiny game may not have
' clear name of the artist/author/creator/developer to be referred with.
' It may not include all relevant facts or the most up-to-date information.
'
'==================================================================================
'-----------------
' INITIALIZATION
'-----------------
set window "Karaoke",500,225,false,2
' color definition
visible black = [0,0,0]
visible white = [255,255,255]
' table to store lyrics line by line
lyrics = []
'-----------
' MAIN LOOP
'-----------
do
clearscreen()
'karaoke menu
set caret 10,10
wln "Karaoke"
wln "* Choose music file (wav)"
wln "* Choose lyric file (txt)"
wln
wln "Press SPACE to continue or ESC to quit"
do
if keydown(KEY_ESCAPE,true) then end
wait 1
until keydown(KEY_SPACE,true)
'loop until filename is not blank
do
filemusic = openfiledialog("wav")
filelyrics = openfiledialog("txt")
until not filemusic="" and not filelyrics=""
'loop until ready
loopready("Are you ready",14)
'read lyrics from text file line by line
f = openfile(filelyrics)
j = 1
do
lyrics[j] = frln(f)
j = j + 1
until frln(f) = unset
free file f
'load and play music
load music 1,filemusic
play music 1
'TOBE...synchronize lyrics and timestamps
clearscreen()
set caret 10,10
for i = 1 to j-2
'time1 = left(lyrics[i],2) 'take the first two digits number of lyrics[i]
'convert time1 from string to number
'if 'real time' = time1 then display lyrics
wln mid(lyrics[i],3,80)
wait 3000 'this line should be removed if lyrics and timestamps are synchronized
next
'loop until ready
loopready("Next Song ",14)
free music 1
loop
'-----------
' FUNCTIONS
'-----------
function clearscreen()
set color black;cls;set color white
endfunc
function loopready(message,lineNum)
do
'clear inside a defined rectangle
set color black
draw rect 10,lineNum*15,300,15,1
'continue ?
set color white
set caret 10,lineNum*15
write message+" (Y/N) ?"
answer = rln()
if upper(answer)="N" then end
until upper(answer)="Y"
endfunc
I have a question about the snake game. The snake's body is divided into small pieces and they follow the head. How can I make the pieces that make up the body follow the head of the snake when I move it?
What's up guys! Can we have examples of practical use of codes for the Windows console?
1 - Search.
2 - create directory.
3 - A program to receive two numbers from the user and make the sum and display it on the screen.
4 - Remove directories.
5 - Search within files, .txt, Doc.
6 - Basic Mini Compiler.
7 - Receive arguments via the prompt command line.
Something to learn more about the language.
thanks