File size: 1,754 Bytes
544eb23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import gradio as gr
import numpy as np

# Define the game board as a 2D numpy array
board = np.zeros((20, 20))

# Define the snake as a list of coordinates
snake = [(10, 10)]

# Define the food as a list of coordinates
food = [(15, 15)]

def make_board():
    board = np.zeros((20, 20))
    for snake_pos in snake:
        board[snake_pos] = 1
    for food_pos in food:
        board[food_pos] = 2
    return board

def update_board():
    global board, snake, food

    # Move the snake in the direction of the arrow keys
    if gr.inputs.arrow_up:
        snake.append((snake[-1][0], snake[-1][1]-1))
    if gr.inputs.arrow_down:
        snake.append((snake[-1][0], snake[-1][1]+1))
    if gr.inputs.arrow_left:
        snake.append((snake[-1][0]-1, snake[-1][1]))
    if gr.inputs.arrow_right:
        snake.append((snake[-1][0]+1, snake[-1][1]))

    # Update the food location
    food = [(15, 15)]

    # Update the board
    board = make_board()
    gr.outputs.board = board

gr.Interface("Snake Game", update_board, inputs=[
    gr.Input(gr.Slider(0, 20, default_value=0), description="X"),
    gr.Input(gr.Slider(0, 20, default_value=0), description="Y"),
    gr.Input(gr.Slider(0, 20, default_value=0), description="Width"),
    gr.Input(gr.Slider(0, 20, default_value=0), description="Height"),
    gr.Input(gr.Button("Reset"), description="Reset"),
])

gr.Interface("Snake Game", update_board, inputs=[
    gr.Input(gr.Slider(0, 20, default_value=0), description="X"),
    gr.Input(gr.Slider(0, 20, default_value=0), description="Y"),
    gr.Input(gr.Slider(0, 20, default_value=0), description="Width"),
    gr.Input(gr.Slider(0, 20, default_value=0), description="Height"),
    gr.Input(gr.Button("Reset"), description="Reset"),
]).launch()