added some better error msgs. maybe fixed sockets staying open.

This commit is contained in:
Vincent Rodley 2025-08-04 11:08:02 +12:00
parent b6b5b08977
commit 58f59a3335

13
main.py
View File

@ -103,7 +103,7 @@ def play_game(player1_get_move, player2_get_move):
try:
tile = board[col].index("O")
except ValueError:
continue # column full, skip turn (could add retry logic)
continue
board[col][tile] = player
@ -127,6 +127,7 @@ def play_local_pvp():
def play_lan_server():
HOST, PORT = "0.0.0.0", 65432
try:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
@ -138,7 +139,11 @@ def play_lan_server():
lambda p, b: send_and_return_local_move(p, b, conn),
lambda p, b: socket_receive_move(conn)
)
except:
print("Somebody broke something. Try again.")
input("Press ENTER to return to the menu.")
finally:
s.close()
def play_lan_client():
while True:
@ -152,8 +157,10 @@ def play_lan_client():
lambda p, b: send_and_return_local_move(p, b, s)
)
break
except:
except ConnectionRefusedError:
print("No game found on that IP. Try again.")
except ConnectionResetError or ValueError:
print("The game was closed by host (I think).")
def send_and_return_local_move(player, board, sock):
col = local_move_provider(player, board)