File size: 1,179 Bytes
1b105dd
1
{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: tictactoe"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio "]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["import gradio as gr\n", "\n", "with gr.Blocks() as demo:\n", "    turn = gr.Textbox(\"X\", interactive=False, label=\"Turn\")\n", "    board = gr.Dataframe(value=[[\"\", \"\", \"\"]] * 3, interactive=False, type=\"array\")\n", "\n", "    def place(board: list[list[int]], turn, evt: gr.SelectData):  # type: ignore\n", "        if evt.value:\n", "            return board, turn\n", "        board[evt.index[0]][evt.index[1]] = turn\n", "        turn = \"O\" if turn == \"X\" else \"X\"\n", "        return board, turn\n", "\n", "    board.select(place, [board, turn], [board, turn], show_progress=\"hidden\")\n", "\n", "if __name__ == \"__main__\":\n", "    demo.launch()\n"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5}