Spaces:
Runtime error
Runtime error
Sasha Rush
commited on
Commit
·
ed381da
1
Parent(s):
6c33a5f
save
Browse files- app.py +22 -10
- requirements.txt +1 -0
app.py
CHANGED
|
@@ -238,6 +238,7 @@ def draw_board(grid, num=0):
|
|
| 238 |
canvas = canvas.center_xy().frame(0.5)
|
| 239 |
canvas = rectangle(canvas.get_envelope().width, canvas.get_envelope().height).line_width(0.5).fill_color(Color("orange")) + canvas
|
| 240 |
canvas.render_svg(f"pic{num}.svg", 256)
|
|
|
|
| 241 |
return canvas
|
| 242 |
|
| 243 |
|
|
@@ -354,12 +355,20 @@ evil_game = Game(boundary=(8, 15), key=(5, 1), flag=(7, 13), init=(0, 0), walls=
|
|
| 354 |
|
| 355 |
games = {"Easy": easy_game, "Medium": medium_game, "Hard": hard_game, "Evil": evil_game}
|
| 356 |
|
| 357 |
-
#
|
| 358 |
-
def animate(
|
|
|
|
|
|
|
| 359 |
images = []
|
| 360 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 361 |
images.append(imageio.v2.imread(f"pic{i}.png"))
|
| 362 |
-
|
|
|
|
| 363 |
|
| 364 |
|
| 365 |
def load(inp):
|
|
@@ -435,7 +444,7 @@ def move(board, action, old_pos):
|
|
| 435 |
with gr.Column():
|
| 436 |
im = gr.Gallery(label="Gallery of the Game")
|
| 437 |
im.style(preview=True, object_fit="scale-down", columns=1, container=True)
|
| 438 |
-
msg_box = gr.
|
| 439 |
|
| 440 |
output = gr.Code(label="Generating Game Code (You can also edit and rerun)", language="python", value="""def my_example():
|
| 441 |
b = Game(init=(0, 0), flag=(2, 2), walls= [], boundary= (3, 3), key= (1, 1))
|
|
@@ -490,7 +499,9 @@ def move(board, action, old_pos):
|
|
| 490 |
state_val = (data[prompt], prefix, count, data[examples])
|
| 491 |
else:
|
| 492 |
final_msg = "Didn't make it"
|
| 493 |
-
|
|
|
|
|
|
|
| 494 |
msg_box: final_msg, state: state_val}
|
| 495 |
|
| 496 |
|
|
@@ -502,8 +513,9 @@ def move(board, action, old_pos):
|
|
| 502 |
c = data[output]
|
| 503 |
print(c)
|
| 504 |
i = 0
|
|
|
|
| 505 |
for j in range(len(c)):
|
| 506 |
-
|
| 507 |
prefix = c[:j]
|
| 508 |
ps = prefix.split("\n")
|
| 509 |
if len(ps) > 3 and not ps[-2].strip().startswith("#") and prefix.endswith("\n"):
|
|
@@ -511,11 +523,11 @@ def move(board, action, old_pos):
|
|
| 511 |
exec(prefix + "\n return b\nq['board'] = my_example()")
|
| 512 |
draw_board(q["board"].board.grid, i)
|
| 513 |
i += 1
|
| 514 |
-
animate(
|
| 515 |
-
out = {im: [f"
|
| 516 |
print(out)
|
| 517 |
return out
|
| 518 |
-
run_btn.click(run2, inputs={output}, outputs={im})
|
| 519 |
|
| 520 |
gr.HTML("""<center><h2>Leaderboard</h2></center>
|
| 521 |
|
|
|
|
| 238 |
canvas = canvas.center_xy().frame(0.5)
|
| 239 |
canvas = rectangle(canvas.get_envelope().width, canvas.get_envelope().height).line_width(0.5).fill_color(Color("orange")) + canvas
|
| 240 |
canvas.render_svg(f"pic{num}.svg", 256)
|
| 241 |
+
canvas.render(f"pic{num}.png", 256)
|
| 242 |
return canvas
|
| 243 |
|
| 244 |
|
|
|
|
| 355 |
|
| 356 |
games = {"Easy": easy_game, "Medium": medium_game, "Hard": hard_game, "Evil": evil_game}
|
| 357 |
|
| 358 |
+
# Anima
|
| 359 |
+
def animate(game):
|
| 360 |
+
cur = game.original
|
| 361 |
+
i = 0
|
| 362 |
images = []
|
| 363 |
+
draw_board(cur.grid, i)
|
| 364 |
+
images.append(imageio.v2.imread(f"pic{i}.png"))
|
| 365 |
+
for act in game.actions:
|
| 366 |
+
cur = cur.move(act)
|
| 367 |
+
i += 1
|
| 368 |
+
draw_board(cur.grid, i)
|
| 369 |
images.append(imageio.v2.imread(f"pic{i}.png"))
|
| 370 |
+
|
| 371 |
+
return imageio.v2.mimsave('movie.gif', images, **{ 'duration': 1000, 'loop': 100})
|
| 372 |
|
| 373 |
|
| 374 |
def load(inp):
|
|
|
|
| 444 |
with gr.Column():
|
| 445 |
im = gr.Gallery(label="Gallery of the Game")
|
| 446 |
im.style(preview=True, object_fit="scale-down", columns=1, container=True)
|
| 447 |
+
msg_box = gr.HTML(label="", show_label=False)
|
| 448 |
|
| 449 |
output = gr.Code(label="Generating Game Code (You can also edit and rerun)", language="python", value="""def my_example():
|
| 450 |
b = Game(init=(0, 0), flag=(2, 2), walls= [], boundary= (3, 3), key= (1, 1))
|
|
|
|
| 499 |
state_val = (data[prompt], prefix, count, data[examples])
|
| 500 |
else:
|
| 501 |
final_msg = "Didn't make it"
|
| 502 |
+
animate(q["board"])
|
| 503 |
+
|
| 504 |
+
yield {im: ["movie.gif"], counter: count, output: prefix,
|
| 505 |
msg_box: final_msg, state: state_val}
|
| 506 |
|
| 507 |
|
|
|
|
| 513 |
c = data[output]
|
| 514 |
print(c)
|
| 515 |
i = 0
|
| 516 |
+
q = {}
|
| 517 |
for j in range(len(c)):
|
| 518 |
+
|
| 519 |
prefix = c[:j]
|
| 520 |
ps = prefix.split("\n")
|
| 521 |
if len(ps) > 3 and not ps[-2].strip().startswith("#") and prefix.endswith("\n"):
|
|
|
|
| 523 |
exec(prefix + "\n return b\nq['board'] = my_example()")
|
| 524 |
draw_board(q["board"].board.grid, i)
|
| 525 |
i += 1
|
| 526 |
+
animate(q["board"])
|
| 527 |
+
out = {im: [f"movie.gif"], msg_box: ""}
|
| 528 |
print(out)
|
| 529 |
return out
|
| 530 |
+
run_btn.click(run2, inputs={output}, outputs={im, msg_box})
|
| 531 |
|
| 532 |
gr.HTML("""<center><h2>Leaderboard</h2></center>
|
| 533 |
|
requirements.txt
CHANGED
|
@@ -5,3 +5,4 @@ pycairo
|
|
| 5 |
tiktoken
|
| 6 |
imageio
|
| 7 |
pandas
|
|
|
|
|
|
| 5 |
tiktoken
|
| 6 |
imageio
|
| 7 |
pandas
|
| 8 |
+
|