Chess_Challenge / app.py
HFUsman's picture
Update app.py
4ed43c7 verified
Raw
History Blame Contribute Delete
2.16 kB
import streamlit as st
import chess
import chess.engine
import random
def init_board():
board = chess.Board()
return board
def make_move(board, move):
try:
board.push_san(move)
except ValueError:
st.error("Invalid move. Please try again.")
def computer_move(board, difficulty):
# Use simple AI (random move) or implement basic engine here
legal_moves = list(board.legal_moves)
move = random.choice(legal_moves) # Random move as a simple AI example
board.push(move)
def render_chessboard():
# Render Chessboard Placeholder
st.text("Render 3D Chessboard Here")
def main():
st.title('3D Chess Game')
difficulty = st.slider("Select Difficulty (in seconds per move)", min_value=1, max_value=10, value=3)
game_mode = st.radio("Select Game Mode", ['Play with Computer', 'Two Player'])
board = init_board()
st.write("Current Board:")
st.text(board)
while not board.is_game_over():
if game_mode == 'Play with Computer':
player_move = st.text_input("Your move (e.g., e2e4): ")
if player_move:
make_move(board, player_move)
st.write(f"Player Move: {player_move}")
render_chessboard()
if board.is_game_over():
break
computer_move(board, difficulty)
st.write(f"Computer Move: {board.peek()}")
render_chessboard()
else:
player_move = st.text_input("Player 1 Move (e.g., e2e4): ")
if player_move:
make_move(board, player_move)
st.write(f"Player 1 Move: {player_move}")
render_chessboard()
if board.is_game_over():
break
player_move = st.text_input("Player 2 Move (e.g., e7e5): ")
if player_move:
make_move(board, player_move)
st.write(f"Player 2 Move: {player_move}")
render_chessboard()
st.write("Game Over!")
if __name__ == "__main__":
main()