archie/tcl-dp/examples/tictactoe/playerO.tcl
2024-05-27 16:13:40 +02:00

48 lines
941 B
Tcl

#
# playerO.tcl -- Tcl/Tk script for player O, the RPC client.
#
# This script should be run after running the player X script.
#
package require dp 4.0
set player O;
puts stdout "Tic Tac Toe - player O";
# Get information from user;
#
puts stdout "Enter the host address of player X: " nonewline;
gets stdin host;
puts stdout "Enter the port number of player X: " nonewline;
gets stdin port;
# Connect to server (player X) as an RPC client;
#
set server [dp_MakeRPCClient $host $port];
# Instead of creating a local board object, we ask the server to
# distribute its board object to us;
#
source board.tcl;
set remFile [dp_RPC $server set dp_rpcFile]
dp_RPC $server eval dp_DistributeObject .board $remFile board;
# Initialize the user interface;
#
source interface.tcl;
# Trigger a user interface update whenever the state slot of
# the distributed board object changes;
#
dp_SetTrigger after .board state DisplayUpdate