| 1234567891011121314151617181920212223242526 | 
							- func gameOfLife(board [][]int) {
 
- 	m, n := len(board), len(board[0])
 
- 	xDir := []int{1, 1, 0, -1, -1, -1, 0, 1}
 
- 	yDir := []int{0, -1, -1, -1, 0, 1, 1, 1}
 
- 	for y := 0; y < m; y++ {
 
- 		for x := 0; x < n; x++ {
 
- 			cnt := 0
 
- 			for i := 0; i < 8; i++ {
 
- 				xPos, yPos := x+xDir[i], y+yDir[i]
 
- 				if 0 <= xPos && xPos < n && 0 <= yPos && yPos < m {
 
- 					cnt += board[yPos][xPos] & 1
 
- 				}
 
- 			}
 
- 			if cnt == 2 {  // Keep current state
 
- 				board[y][x] |= (board[y][x] & 1) << 1
 
- 			} else if cnt == 3 {  // Live :-)
 
- 				board[y][x] |= 2
 
- 			}  // Else, die X-(
 
- 		}
 
- 	}
 
- 	for y := 0; y < m; y++ {
 
- 		for x := 0; x < n; x++ {
 
- 			board[y][x] >>= 1
 
- 		}
 
- 	}
 
- }
 
 
  |