File size: 4,489 Bytes
7fefc87
 
 
 
 
 
7b23af0
172a1e4
7b23af0
 
 
 
 
 
 
 
 
 
 
 
 
172a1e4
 
 
 
 
 
 
 
7b23af0
 
172a1e4
 
 
7b23af0
 
172a1e4
 
 
 
7b23af0
 
 
172a1e4
 
 
 
 
 
d358914
172a1e4
 
 
 
 
7b23af0
172a1e4
7b23af0
172a1e4
 
7b23af0
 
172a1e4
7b23af0
 
172a1e4
7b23af0
 
1cc58e9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7b23af0
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
"""
FileName: app.py
Author: Benhao Huang
Create Date: 2023/11/19
Description: Main Page of our Demo
"""
import base64
import streamlit as st

import base64
from pathlib import Path
import tempfile


def st_display_pdf(pdf_file):
    with open(pdf_file, "rb") as f:
        base64_pdf = base64.b64encode(f.read()).decode('utf-8')
    pdf_display = f'<embed src="data:application/pdf;base64,{base64_pdf}" width="800" height="1000" type="application/pdf">'
    st.markdown(pdf_display, unsafe_allow_html=True)


# 设置页面配置
st.set_page_config(
    page_title="AI 3603 Gomoku Project",
    page_icon="👋",
    layout="wide",
    initial_sidebar_state="collapsed"
)
# 大标题
st.write('<h1 style="text-align: center; color: black; font-weight: bold;">AI 3603 Gomoku Project 👋</h1>',
         unsafe_allow_html=True)
# 项目参与者
st.write('<p style="text-align: center; font-size: 20px;"><a href="https://github.com" style="color: blue; font-weight: normal; margin-right: 20px; text-decoration: none;">Jiaxin Li</a> \
<a href="https://github.com" style="color: blue; font-weight: normal; margin-right: 20px; text-decoration: none;">Junzhe Shen</a> \
<a href="https://github.com" style="color: blue; font-weight: normal; text-decoration: none;">Benhao Huang</a></p>',
         unsafe_allow_html=True)
# 标签
st.markdown("""
<div style="text-align: center;">
<a href="#" style="background-color: #343a40; color: white; font-size: 15px; padding: 10px 15px; margin: 5px; border-radius: 15px; text-decoration: none;">📄 Report</a>
<a href="https://github.com/Lijiaxin0111/AI_3603_BIGHOME" style="background-color: #343a40; color: white; font-size: 15px; padding: 10px 15px; margin: 5px; border-radius: 15px; text-decoration: none;">💻 Code</a>
<a href="https://huggingface.co/spaces/Gomoku-Zero/Demo" style="background-color: #343a40; color: white; font-size: 15px; padding: 10px 15px; margin: 5px; border-radius: 15px; text-decoration: none;">🌐 Space</a>
<a href="https://docs.google.com/presentation/d/1l3eLFqeGGKxvlbJYs5qi-ir1ZDifNMMebZILVgkYEoE/edit?usp=sharing" style="background-color: #343a40; color: white; font-size: 15px; padding: 10px 15px; margin: 5px; border-radius: 15px; text-decoration: none;">📊 PPT</a>
</div>
</br>
</br>
""", unsafe_allow_html=True)
# 项目介绍
st.markdown("""
<div style='color: red; font-size:18px'>(Better to clone this space locally to run games, the reaction time of the bot is much longer in huggingface's space) </div>
<div style='color: black; font-size:18px'>Gomoku is an abstract strategy board game. Also called <span style='color:red;'>Gobang</span> or <span style='color:red;'>Five in a Row</span>, 
it is traditionally played with Go pieces (black and white stones) 
on a Go board. It is straightforward and fun, but also full of strategy and challenge.
Our project is aiming to apply Machine Learning techniques to build a powerful Gomoku AI.</div>
""",
            unsafe_allow_html=True)
# 创新点和图片展示
st.write("<h2 style='text-align: center; color: black; font-weight: bold;'>Main Works 👍</h2>", unsafe_allow_html=True)
col1, col2, col3 = st.columns(3)
with col1:
    st.image("assets/model.png", width=800)  # 替换为你的图片 URL
    st.caption("Gomoku Agent Based on Duel DQN")
with col2:
    st.image("assets/data-collect.png", width=700)  # 替换为你的图片 URL
    st.caption("Our Pipeline to Collect Training Data")
with col3:
    st.image("assets/gomokubot.png", width=600)  # 替换为你的图片 URL
    st.caption("Rule-Based GomokuBot")

st.write("<h2 style='text-align: center; color: black; font-weight: bold;'>Some Demos </h2>", unsafe_allow_html=True)

file1 = open("assets/multi-model.gif", "rb")
contents = file1.read()
data_url1 = base64.b64encode(contents).decode("utf-8")
file1.close()

file2 = open("assets/mercy.gif", "rb")
contents = file2.read()
data_url2 = base64.b64encode(contents).decode("utf-8")
file2.close()

file3 = open("assets/edge_blindness.gif", "rb")
contents = file3.read()
data_url3 = base64.b64encode(contents).decode("utf-8")
file3.close()

st.markdown(
    f"""<div style="display: flex; justify-content: space-between;">
        <img src="data:image/gif;base64,{data_url1}" alt="cat gif" style="width: 700px;">
        <img src="data:image/gif;base64,{data_url2}" alt="cat gif" style="width: 700px;">
        <img src="data:image/gif;base64,{data_url3}" alt="cat gif" style="width: 700px;">
    </div>""",
    unsafe_allow_html=True,
)