コード例 #1
0
ファイル: my_boards.py プロジェクト: elidaian/sudoku
def create_board():
    """
    Create a new board or some new boards.

    * If this page is requested with a GET method, the board generation form is returned.
    * If this page is requested with a POST method, a board generation form is processed, and new board/s is/are
        generated. Later a board generation form is returned, with a message that new boards were generated, with a
        link to the newly generated board/s.

    :return: As explained above.
    :rtype: flask.Response
    """
    just_created = False
    user = User.get_by_id(session["user"])

    if request.method == "POST":
        try:
            board_type = request.form["type"]
            width, height = BOARD_TO_DIMENSION[board_type](request.form)
            count = int(request.form["count"])

            boards = [DBBoard.create_board(user, generate(width, height)) for _ in xrange(count)]
            commit()

            board_ids = [board.id for board in boards]
            session["last_boards"] = board_ids

            if len(board_ids) == 1:
                flash("Created one board", "success")
            else:
                flash("Created %d boards" % len(board_ids), "success")
            just_created = True
        except (KeyError, ValueError):
            flash("Invalid request data", "danger")
        except:
            flash("Internal server error", "danger")
    return render_template("create_board.html", just_created=just_created, user=user)
コード例 #2
0
ファイル: generator_fixtures.py プロジェクト: elidaian/sudoku
def generated_board():
    """
    :return: A generated board.
    :rtype: :class:`~board.Board`
    """
    return generate(2, 2)
コード例 #3
0
ファイル: generator_fixtures.py プロジェクト: elidaian/sudoku
def generated_dodeka():
    """
    :return: A generated dodeka board.
    :rtype: :class:`~board.Board`
    """
    return generate(3, 4)
コード例 #4
0
ファイル: generator_fixtures.py プロジェクト: elidaian/sudoku
def generated_board9():
    """
    :return: A generated board of regular size.
    :rtype: :class:`~board.Board`
    """
    return generate(3, 3)
コード例 #5
0
ファイル: profile.py プロジェクト: elidaian/sudoku
from time import time
from edsudoku.generator import generate

__author__ = "Eli Daian <*****@*****.**>"

NUM_ITERATIONS = 20

a = time()
for i in xrange(NUM_ITERATIONS):
    board = generate(3, 4)
b = time()

print 'Took %.2f seconds' % ((b - a) / NUM_ITERATIONS)

# Regular: Took 0.42 seconds
# Dodeka: Took 2.06 seconds