package main
import "fmt"
var title int
func main() {
var board [][]int
var size int
var tr, tc, dr, dc int
size = 8
board = make([][]int, size)
for i := 0; i < size; i++ {
board[i] = make([]int, size)
}
tr = 0
tc = 0
dr = 2
dc = 2
divide(board, tr, tc, dr, dc, size)
for i:=0;i<size;i++{
for j:=0;j<size;j++{
fmt.Printf("%3d",board[i][j])
}
fmt.Println()
}
}
func divide(board [][]int, tr, tc, dr, dc, size int) {
if size == 1 {
return
}
s := size / 2
title++
n := title
//top left
if dr < tr+s && dc < tc+s {
divide(board, tr, tc, dr, dc, s)
} else {
board[tr+s-1][tc+s-1]=n
divide(board, tr, tc, tr+s-1, tc+s-1, s)
}
//top right
if dr < tr+s && dc >= tc+s {
divide(board, tr, tc+s, dr, dc, s)
} else {
board[tr+s-1][tc+s]=n
divide(board, tr, tc+s, tr+s-1, tc+s, s)
}
//bottom left
if dr >= tr+s && dc < tc+s {
divide(board, tr+s, tc, dr, dc, s)
} else {
board[tr+s][tc+s-1]=n
divide(board, tr+s, tc, tr+s, tc+s-1, s)
}
//bottom right
if dr >= tr+s && dc >= tc+s {
divide(board, tr+s, tc+s, dr, dc, s)
} else {
board[tr+s][tc+s]=n
divide(board, tr+s, tc+s, tr+s, tc+s, s)
}
}