Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. let count_neighbours (x,y) board size =
  2. if size < 0 then 0
  3. else
  4. let neighbours (x,y) board size =
  5. match (size-1) with
  6. 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
  7. |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
  8. |size when size=x -> get_cell (x,y+1) board + get_cell (x-1,y+1) board + get_cell (x-1,y) board +
  9. get_cell (x-1,y-1) board + get_cell (x,y-1) board
  10. |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
  11. |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
  12. |size when x=0 -> get_cell (x+1,y+1) board + get_cell (x+1,y) board + get_cell (x,y+1) board +
  13. get_cell (x-1,y-1) board + get_cell (x-1,y) board
  14. |size when size=y -> get_cell (x-1,y) board + get_cell (x+1,y) board +get_cell (x+1,y-1) board +
  15. get_cell (x,y-1) board + get_cell (x-1,y-1) board
  16. |size when y=0 -> get_cell (x,y+1) board + get_cell (x+1,y+1) board + get_cell (x+1,y) board +
  17. get_cell (x-1,y) board + get_cell (x-1,y+1) board
  18. | _ -> get_cell (x-1,y-1) board + get_cell (x-1,y) board + get_cell (x-1,y+1) board +
  19. 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 +
  20. get_cell (x+1,y+1) board
  21. in
  22. neighbours (x,y) board size;;
  23.  
  24.  
  25.  
  26. let seed_life board size nb =
  27. if nb < 0 then
  28. invalid_arg "Le nombre de cellule ne peux pas etre nul "
  29. else
  30. let rec seed board nb = match nb with
  31. | 0 -> board
  32. | n -> seed (put_cell new_cell (1+ Random.int size ,1+ Random.int size ) board) (n-1)
  33. in seed board nb ;;
  34.  
  35. let new_board size nb =
  36. if size < 0 then
  37. invalid_arg " The size can't be negatif "
  38. else seed_life (init_board (size,size) empty) size nb ;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement