All pastes #420513 Raw Edit

jmccaffrey

public python v1 · immutable
·published 2007-04-02 05:51 UTC
rendered paste body
#!/usr/bin/env pythonimport Numericdef find_tour(size, start_x, start_y):    moves = [[1, 2], [2, 1], [2, -1], [1, -2], [-1, -2], [-2, -1], [-2, 1], [-1, 2]]    board = Numeric.empty([size, size])      trace = []    n_move = 1    for i in range(0, size):        for j in range(0, size):            board[i, j] = -1    board[0, 0] = 0         cur_x = start_x    cur_y = start_y    while n_move < size * size:        p = []        for move in moves:            move_x = cur_x + move[0]            move_y = cur_y + move[1]            if (move_x >= 0) and (move_y >= 0) and (move_x < size) and (move_y < size) and (board[move_x][move_y] == -1):                p.append((move_x, move_y))        while not len(p):                      cur_x, cur_y, p = trace.pop()            board[cur_x, cur_y] = -1            n_move = n_move - 1;        cur_x, cur_y = p.pop()        board[cur_x, cur_y] = n_move                trace.append((cur_x, cur_y, p))        n_move = n_move + 1    return boardb = find_tour(8, 0, 0)print b