mirror of
https://github.com/rfivet/uemacs.git
synced 2024-12-29 20:46:22 -05:00
Seed the pseudo-random generator on initialization.
Add example script to solve a maze by flood painting.
This commit is contained in:
parent
674a3baba4
commit
b4ff6798cd
3
eval.c
3
eval.c
@ -13,6 +13,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
#include "basic.h"
|
#include "basic.h"
|
||||||
#include "bind.h"
|
#include "bind.h"
|
||||||
@ -305,6 +306,8 @@ void varinit(void)
|
|||||||
result = malloc( NSTRING) ;
|
result = malloc( NSTRING) ;
|
||||||
ressize = NSTRING ;
|
ressize = NSTRING ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
seed = time( NULL) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
63
floodmaz.cmd
Normal file
63
floodmaz.cmd
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# 6 set $seed
|
||||||
|
execute-file maze.cmd
|
||||||
|
|
||||||
|
set %thisbuf $cbufname
|
||||||
|
|
||||||
|
10 store-macro # push x y
|
||||||
|
set %x $curcol
|
||||||
|
set %y $curline
|
||||||
|
select-buffer stack
|
||||||
|
beginning-of-file
|
||||||
|
insert-string %x
|
||||||
|
newline
|
||||||
|
insert-string %y
|
||||||
|
newline
|
||||||
|
select-buffer %thisbuf
|
||||||
|
!endm
|
||||||
|
|
||||||
|
11 store-macro # pop x y
|
||||||
|
select-buffer stack
|
||||||
|
beginning-of-file
|
||||||
|
set %x $line
|
||||||
|
1 kill-to-end-of-line
|
||||||
|
set %y $line
|
||||||
|
1 kill-to-end-of-line
|
||||||
|
select-buffer %thisbuf
|
||||||
|
set $curline %y
|
||||||
|
set $curcol %x
|
||||||
|
!endm
|
||||||
|
|
||||||
|
set $curline 1
|
||||||
|
set $curcol 0
|
||||||
|
execute-macro-10 #push stop position
|
||||||
|
set %x 1
|
||||||
|
set $curline 4
|
||||||
|
set $curcol %x
|
||||||
|
set %OC $curchar
|
||||||
|
set %NC &asc "█"
|
||||||
|
!while ¬ &equ %x 0
|
||||||
|
set $curchar %NC
|
||||||
|
set %cc $curcol
|
||||||
|
set %ll $curline
|
||||||
|
set $curcol &add %cc 1
|
||||||
|
!if &equ $curchar %OC
|
||||||
|
execute-macro-10
|
||||||
|
!endif
|
||||||
|
set $curcol &add %cc -1
|
||||||
|
!if &equ $curchar %OC
|
||||||
|
execute-macro-10
|
||||||
|
!endif
|
||||||
|
set $curline &add %ll 1
|
||||||
|
set $curcol %cc
|
||||||
|
!if &equ $curchar %OC
|
||||||
|
execute-macro-10
|
||||||
|
!endif
|
||||||
|
set $curline &add %ll -1
|
||||||
|
set $curcol %cc
|
||||||
|
!if &equ $curchar %OC
|
||||||
|
execute-macro-10
|
||||||
|
!endif
|
||||||
|
execute-macro-11
|
||||||
|
!endwhile
|
||||||
|
set $curline 3
|
||||||
|
set $curcol 1
|
9
maze.cmd
9
maze.cmd
@ -1,4 +1,7 @@
|
|||||||
|
# record seed
|
||||||
# 5 set $seed
|
# 5 set $seed
|
||||||
|
set %S $seed
|
||||||
|
|
||||||
# setup direction offsets
|
# setup direction offsets
|
||||||
set %D1 0
|
set %D1 0
|
||||||
set %D2 1
|
set %D2 1
|
||||||
@ -83,6 +86,12 @@ set %cnt &tim &sub &div %w 2 1 &sub &div %l 2 1
|
|||||||
set $curcol %x
|
set $curcol %x
|
||||||
!endwhile
|
!endwhile
|
||||||
|
|
||||||
|
# id maze
|
||||||
|
beginning-of-file
|
||||||
|
kill-to-end-of-line
|
||||||
|
insert-string &cat " Maze " &cat %w &cat "x" &cat &sub %l 2 &cat " #" %S
|
||||||
|
&sub $curwidth $curcol insert-string " "
|
||||||
|
|
||||||
# draw the entrance
|
# draw the entrance
|
||||||
set $curline 3
|
set $curline 3
|
||||||
set $curcol 1
|
set $curcol 1
|
||||||
|
Loading…
Reference in New Issue
Block a user