Spaces:
Runtime error
Runtime error
Testing early streamlit display in game_database
Browse files
app.py
CHANGED
@@ -1,8 +1,12 @@
|
|
|
|
1 |
import chess
|
2 |
import random
|
3 |
import streamlit as st
|
4 |
from transformers import pipeline
|
5 |
|
|
|
|
|
|
|
6 |
generator2 = pipeline('text-generation', model='BlueSunflower/gpt2-medium-chess')
|
7 |
generator = pipeline('text-generation', model='gpt2')
|
8 |
|
@@ -77,7 +81,7 @@ class AInstance:
|
|
77 |
def check_if_end(self):
|
78 |
return self.game_end
|
79 |
|
80 |
-
def verify_move(string):
|
81 |
board = chess.Board()
|
82 |
st.write("Board: " + string)
|
83 |
for move in string.split():
|
@@ -92,7 +96,7 @@ def verify_move(string):
|
|
92 |
return True
|
93 |
return False
|
94 |
|
95 |
-
def check_mate(string):
|
96 |
#simulates mate idk
|
97 |
if(random.randrange(0,100) == 4):
|
98 |
st.write("H")
|
@@ -117,24 +121,40 @@ def make_move(instance, game_state):
|
|
117 |
|
118 |
|
119 |
def main():
|
|
|
|
|
|
|
|
|
120 |
if(random.randrange(0,1)):
|
121 |
-
white = AInstance(
|
122 |
-
black = AInstance(
|
123 |
st.write("Gpt2 is White and Gpt2 Optimized is Black")
|
124 |
else:
|
125 |
-
white = AInstance(
|
126 |
-
black = AInstance(
|
127 |
st.write("Gpt2 is Black and Gpt2 Optimized is White")
|
128 |
|
|
|
|
|
129 |
game_state = "e4 e5"
|
130 |
game_ongoing = True
|
131 |
while game_ongoing:
|
132 |
game_state, game_ongoing = make_move(white, game_state)
|
|
|
133 |
if not game_ongoing:
|
134 |
-
print_game(game_state)
|
135 |
break
|
136 |
game_state, game_ongoing = make_move(black, game_state)
|
|
|
137 |
if not game_ongoing:
|
138 |
-
print_game(game_state)
|
139 |
break
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
import chess
|
3 |
import random
|
4 |
import streamlit as st
|
5 |
from transformers import pipeline
|
6 |
|
7 |
+
from game_database import GameDatabase
|
8 |
+
from logger import Logger
|
9 |
+
|
10 |
generator2 = pipeline('text-generation', model='BlueSunflower/gpt2-medium-chess')
|
11 |
generator = pipeline('text-generation', model='gpt2')
|
12 |
|
|
|
81 |
def check_if_end(self):
|
82 |
return self.game_end
|
83 |
|
84 |
+
def verify_move(string): #Given all moves so far, this checks if any moves are illegal.
|
85 |
board = chess.Board()
|
86 |
st.write("Board: " + string)
|
87 |
for move in string.split():
|
|
|
96 |
return True
|
97 |
return False
|
98 |
|
99 |
+
def check_mate(string): #Am confusion
|
100 |
#simulates mate idk
|
101 |
if(random.randrange(0,100) == 4):
|
102 |
st.write("H")
|
|
|
121 |
|
122 |
|
123 |
def main():
|
124 |
+
|
125 |
+
player_1 = "gpt2"
|
126 |
+
player_2 = "gpt2-medium-chess"
|
127 |
+
|
128 |
if(random.randrange(0,1)):
|
129 |
+
white = AInstance(player_1, generator)
|
130 |
+
black = AInstance(player_2, generator2)
|
131 |
st.write("Gpt2 is White and Gpt2 Optimized is Black")
|
132 |
else:
|
133 |
+
white = AInstance(player_2, generator2)
|
134 |
+
black = AInstance(player_1, generator)
|
135 |
st.write("Gpt2 is Black and Gpt2 Optimized is White")
|
136 |
|
137 |
+
onetime_logger = Logger(white.type, black.type) #Logger.model_1 should be white and vice versa
|
138 |
+
|
139 |
game_state = "e4 e5"
|
140 |
game_ongoing = True
|
141 |
while game_ongoing:
|
142 |
game_state, game_ongoing = make_move(white, game_state)
|
143 |
+
onetime_logger.add_legal_move(game_state)
|
144 |
if not game_ongoing:
|
145 |
+
#print_game(game_state)
|
146 |
break
|
147 |
game_state, game_ongoing = make_move(black, game_state)
|
148 |
+
onetime_logger.add_legal_move(game_state)
|
149 |
if not game_ongoing:
|
150 |
+
#print_game(game_state)
|
151 |
break
|
152 |
+
|
153 |
+
finished_game = onetime_logger.return_formatted_game()
|
154 |
+
onetime_db = GameDatabase()
|
155 |
+
onetime_db.add_game(finished_game)
|
156 |
+
onetime_db.display_tournament
|
157 |
+
|
158 |
+
onetime_db.display_tournament()
|
159 |
+
if __name__ == "__main__":
|
160 |
+
main()
|
src/game_database.py β game_database.py
RENAMED
@@ -1,6 +1,7 @@
|
|
1 |
import chess
|
2 |
import matplotlib.pyplot as plt
|
3 |
import pandas as pd
|
|
|
4 |
from typing import Dict
|
5 |
from logger import Logger
|
6 |
|
@@ -23,9 +24,16 @@ class GameDatabase:
|
|
23 |
#bar chart of tournament winrates
|
24 |
win_results = df["Winner"].value_counts()
|
25 |
print(win_results.rank())
|
26 |
-
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
if __name__ == "__main__":
|
31 |
test_logger = Logger("ChessGPT", "ChatGPT")
|
|
|
1 |
import chess
|
2 |
import matplotlib.pyplot as plt
|
3 |
import pandas as pd
|
4 |
+
import streamlit as st
|
5 |
from typing import Dict
|
6 |
from logger import Logger
|
7 |
|
|
|
24 |
#bar chart of tournament winrates
|
25 |
win_results = df["Winner"].value_counts()
|
26 |
print(win_results.rank())
|
27 |
+
|
28 |
+
names = ["steve", "bob", "emily"]
|
29 |
+
nums = [1,2,3]
|
30 |
+
|
31 |
+
fig, axs = plt.subplots(2,1)
|
32 |
+
axs[0].plot(names, nums)
|
33 |
+
axs[1].bar(names, nums)
|
34 |
+
st.pyplot(fig)
|
35 |
+
|
36 |
+
|
37 |
|
38 |
if __name__ == "__main__":
|
39 |
test_logger = Logger("ChessGPT", "ChatGPT")
|
src/interface.py β interface.py
RENAMED
File without changes
|
src/interface_experiment.py β interface_experiment.py
RENAMED
File without changes
|
src/logger.py β logger.py
RENAMED
File without changes
|