Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let count_neighbours (x,y) board size =
- if size < 0 then 0
- else
- let neighbours (x,y) board size =
- match (size-1) with
- size when x=size && y=size -> get_cell (x-1,y) board + get_cell (x-1,y-1) board + get_cell (x,y-1) board
- |size when size=x && y=0 -> get_cell (x-1,y) board + get_cell (x-1,y+1) board + get_cell (x,y-1) board
- |size when size=x -> get_cell (x,y+1) board + get_cell (x-1,y+1) board + get_cell (x-1,y) board +
- get_cell (x-1,y-1) board + get_cell (x,y-1) board
- |size when x=0 && size=y -> get_cell(x+1,y) board + get_cell (x+1,y-1) board + get_cell (x,y-1) board
- |size when x=0 && y=0 -> get_cell (x+1,y) board + get_cell (x+1,y+1) board + get_cell (x,y+1) board
- |size when x=0 -> get_cell (x+1,y+1) board + get_cell (x+1,y) board + get_cell (x,y+1) board +
- get_cell (x-1,y-1) board + get_cell (x-1,y) board
- |size when size=y -> get_cell (x-1,y) board + get_cell (x+1,y) board +get_cell (x+1,y-1) board +
- get_cell (x,y-1) board + get_cell (x-1,y-1) board
- |size when y=0 -> get_cell (x,y+1) board + get_cell (x+1,y+1) board + get_cell (x+1,y) board +
- get_cell (x-1,y) board + get_cell (x-1,y+1) board
- | _ -> get_cell (x-1,y-1) board + get_cell (x-1,y) board + get_cell (x-1,y+1) board +
- get_cell (x,y-1) board + get_cell (x,y+1) board + get_cell (x+1,y-1) board + get_cell (x+1,y) board +
- get_cell (x+1,y+1) board
- in
- neighbours (x,y) board size;;
- let seed_life board size nb =
- if nb < 0 then
- invalid_arg "Le nombre de cellule ne peux pas etre nul "
- else
- let rec seed board nb = match nb with
- | 0 -> board
- | n -> seed (put_cell new_cell (1+ Random.int size ,1+ Random.int size ) board) (n-1)
- in seed board nb ;;
- let new_board size nb =
- if size < 0 then
- invalid_arg " The size can't be negatif "
- else seed_life (init_board (size,size) empty) size nb ;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement