Posted to tcl by aspect at Thu May 19 02:36:34 GMT 2011view raw

  1. #!/usr/bin/tclsh
  2. package require Tk
  3.  
  4. set whos_turn 0 ;# players are numbered 0 and 1 - player 0 goes first
  5.  
  6. # this is our event, called when a button is pressed
  7. proc take_turn {player} {
  8. global whos_turn
  9. if {$whos_turn != $player} {
  10. .text insert end "Not player $player's turn!"
  11. } else {
  12. .text insert end "Player $player takes a turn"
  13. set whos_turn [expr {1-$player}]
  14. }
  15. }
  16.  
  17. # create the GUI
  18. button .p1 -text "Player 0 go" -command {take_turn 0}
  19. button .p2 -text "Player 1 go" -command {take_turn 1}
  20. frame .f
  21. text .text
  22. .text insert end "Game started! Player $whos_turn goes first"
  23. grid .f
  24. grid .text
  25. grid .p1 .p2 -in .f
  26.  
  27. # now enter the event loop
  28. vwait forever