home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / TicTacToe_GUI.srw < prev    next >
Text File  |  1997-09-30  |  12KB  |  490 lines

  1. $PBExportHeader$tictactoe_gui.srw
  2. $PBExportComments$Generated by ObjectTeam
  3. forward
  4. global type tictactoe_gui from window
  5. end type
  6. type cellbutton1 from commandbutton within tictactoe_gui
  7. end type
  8. type cellbutton2 from commandbutton within tictactoe_gui
  9. end type
  10. type cellbutton3 from commandbutton within tictactoe_gui
  11. end type
  12. type cellbutton4 from commandbutton within tictactoe_gui
  13. end type
  14. type cellbutton5 from commandbutton within tictactoe_gui
  15. end type
  16. type cellbutton6 from commandbutton within tictactoe_gui
  17. end type
  18. type cellbutton7 from commandbutton within tictactoe_gui
  19. end type
  20. type cellbutton8 from commandbutton within tictactoe_gui
  21. end type
  22. type cellbutton9 from commandbutton within tictactoe_gui
  23. end type
  24. type result from statictext within tictactoe_gui
  25. end type
  26. type board from groupbox within tictactoe_gui
  27. end type
  28. end forward
  29.  
  30. shared variables
  31. // User defined attributes
  32.  
  33. // Non modeled user defined attributes
  34.  
  35. end variables
  36.  
  37. global type tictactoe_gui from window
  38. WindowType WindowType = main!
  39. string MenuName = "TicTacToe_MainMenu"
  40. int X = 1
  41. int Y = 1
  42. int Width = 1098
  43. int Height = 1241
  44. boolean TitleBar = true
  45. string Title = "Tic Tac Toe"
  46. long BackColor = 0
  47. boolean ControlMenu = true
  48. boolean MinBox = true
  49. boolean ToolBarVisible = false
  50. string Icon = ".\TicTacToe.ico"
  51. cellbutton1 cellbutton1
  52. cellbutton2 cellbutton2
  53. cellbutton3 cellbutton3
  54. cellbutton4 cellbutton4
  55. cellbutton5 cellbutton5
  56. cellbutton6 cellbutton6
  57. cellbutton7 cellbutton7
  58. cellbutton8 cellbutton8
  59. cellbutton9 cellbutton9
  60. result result
  61. board board
  62. end type
  63. global tictactoe_gui tictactoe_gui
  64.  
  65. type variables
  66. // User defined attributes
  67.  
  68. // Association attributes
  69. public tictactoe_computer computer
  70. public tictactoe_game game
  71. private classdict cellButtonDict
  72.  
  73. // Non modeled user defined attributes
  74.  
  75. // Control to class mappings
  76. //    tictactoe_gui --> TicTacToe_GUI
  77. //    cellbutton1 --> TicTacToe_CellButton
  78. //    cellbutton2 --> TicTacToe_CellButton
  79. //    cellbutton3 --> TicTacToe_CellButton
  80. //    cellbutton4 --> TicTacToe_CellButton
  81. //    cellbutton5 --> TicTacToe_CellButton
  82. //    cellbutton6 --> TicTacToe_CellButton
  83. //    cellbutton7 --> TicTacToe_CellButton
  84. //    cellbutton8 --> TicTacToe_CellButton
  85. //    cellbutton9 --> TicTacToe_CellButton
  86. //    result --> TicTacToe_Result
  87. //    board --> TicTacToe_Board
  88. end variables
  89.  
  90. forward prototypes
  91. public subroutine disableBoard ()
  92. public subroutine enableBoard ()
  93. public subroutine clearBoard ()
  94. public subroutine displayResult (string text)
  95. public subroutine cellButtonClick (integer index)
  96. public subroutine removeComputer ()
  97. public subroutine setComputer (tictactoe_computer newComputer)
  98. public function tictactoe_computer getComputer ()
  99. public subroutine removeGame ()
  100. public subroutine setGame (tictactoe_game newGame)
  101. public function tictactoe_game getGame ()
  102. public function commandbutton getCellButton (integer index)
  103. public subroutine setCellButton (integer index, commandbutton newCellButton)
  104. public subroutine removeCellButton (integer index)
  105. end prototypes
  106.  
  107. public subroutine disableBoard ();// disables all cells of board
  108. integer i
  109. commandbutton cb
  110. FOR i = 1 TO 9
  111.     cb = getCellButton(i)
  112.     cb.Enabled = False
  113. NEXT
  114. end subroutine
  115.  
  116. public subroutine enableBoard ();// enables all cells of board
  117. integer i
  118. commandbutton cb
  119. FOR i = 1 TO 9
  120.     cb = getCellButton(i)
  121.     cb.Enabled = True
  122. NEXT
  123. end subroutine
  124.  
  125. public subroutine clearBoard ();// clears all cells of board
  126. integer i
  127. commandbutton cb
  128. FOR i = 1 TO 9
  129.     cb = getCellButton(i)
  130.     cb.Text = ' '
  131. NEXT
  132. end subroutine
  133.  
  134. public subroutine displayResult (string text);// sets result
  135. result.Text = text
  136. end subroutine
  137.  
  138. public subroutine cellButtonClick (integer index);commandbutton cb
  139. cb = getCellButton(index)
  140.  
  141. IF cb.Enabled THEN
  142.     cb.Enabled = False
  143.     cb.Text = game.getActivePlayer()
  144.     game.selectCell(index)
  145.     computer.checkTurn();
  146. END IF
  147. end subroutine
  148.  
  149. public subroutine removeComputer ();// Association accessor method
  150. if not isNull(computer) then
  151.     setNull(computer.gui)
  152. end if
  153. setNull(computer)
  154. end subroutine
  155.  
  156. public subroutine setComputer (tictactoe_computer newComputer);// Association accessor method
  157. if not isNull(computer) then
  158.     setNull(computer.gui)
  159. end if
  160. if not isNull(newComputer) then
  161.     TicTacToe_GUI nullRef
  162.     setNull(nullRef)
  163.     newComputer.setGui(nullRef)
  164.     newComputer.gui = this
  165. end if
  166. computer = newComputer
  167. end subroutine
  168.  
  169. public function tictactoe_computer getComputer ();// Association accessor method
  170. return computer
  171. end function
  172.  
  173. public subroutine removeGame ();// Association accessor method
  174. if not isNull(game) then
  175.     setNull(game.gui)
  176. end if
  177. setNull(game)
  178. end subroutine
  179.  
  180. public subroutine setGame (tictactoe_game newGame);// Association accessor method
  181. if not isNull(game) then
  182.     setNull(game.gui)
  183. end if
  184. if not isNull(newGame) then
  185.     TicTacToe_GUI nullRef
  186.     setNull(nullRef)
  187.     newGame.setGui(nullRef)
  188.     newGame.gui = this
  189. end if
  190. game = newGame
  191. end subroutine
  192.  
  193. public function tictactoe_game getGame ();// Association accessor method
  194. return game
  195. end function
  196.  
  197. public function commandbutton getCellButton (integer index);// Association accessor method
  198. return cellButtonDict.get(index)
  199. end function
  200.  
  201. public subroutine setCellButton (integer index, commandbutton newCellButton);// Association accessor method
  202. if isNull(newCellButton) then
  203.     return
  204. end if
  205. cellButtonDict.set(index, newCellButton)
  206. end subroutine
  207.  
  208. public subroutine removeCellButton (integer index);// Association accessor method
  209. powerobject object
  210. object = cellButtonDict.get(index)
  211. if isNull(object) then
  212.     return
  213. end if
  214. cellButtonDict.remove(index)
  215. end subroutine
  216.  
  217. on tictactoe_gui.create
  218. if this.MenuName = "TicTacToe_MainMenu" then this.MenuID = create TicTacToe_MainMenu
  219. this.cellbutton1=create cellbutton1
  220. this.cellbutton2=create cellbutton2
  221. this.cellbutton3=create cellbutton3
  222. this.cellbutton4=create cellbutton4
  223. this.cellbutton5=create cellbutton5
  224. this.cellbutton6=create cellbutton6
  225. this.cellbutton7=create cellbutton7
  226. this.cellbutton8=create cellbutton8
  227. this.cellbutton9=create cellbutton9
  228. this.result=create result
  229. this.board=create board
  230. this.Control[]={ this.cellbutton1,&
  231. this.cellbutton2,&
  232. this.cellbutton3,&
  233. this.cellbutton4,&
  234. this.cellbutton5,&
  235. this.cellbutton6,&
  236. this.cellbutton7,&
  237. this.cellbutton8,&
  238. this.cellbutton9,&
  239. this.result,&
  240. this.board}
  241. end on
  242.  
  243. on tictactoe_gui.destroy
  244. if IsValid(MenuID) then destroy(MenuID)
  245. destroy(this.cellbutton1)
  246. destroy(this.cellbutton2)
  247. destroy(this.cellbutton3)
  248. destroy(this.cellbutton4)
  249. destroy(this.cellbutton5)
  250. destroy(this.cellbutton6)
  251. destroy(this.cellbutton7)
  252. destroy(this.cellbutton8)
  253. destroy(this.cellbutton9)
  254. destroy(this.result)
  255. destroy(this.board)
  256. end on
  257.  
  258. event open;TriggerEvent (this, "constructor")
  259. // Start user code section
  260.  
  261. // End user code section
  262. end event
  263.  
  264. event constructor;setNull(computer)
  265. setNull(game)
  266. cellButtonDict = create classdict
  267. // Start user code section
  268. tictactoe_game newGame
  269. newGame = create tictactoe_game
  270. setgame(newGame)
  271.  
  272. tictactoe_computer newComp
  273. newComp = create tictactoe_computer
  274. newComp.setgame(this.game)
  275. setcomputer(newComp)
  276.  
  277. setCellButton(1,cellbutton1)
  278. setCellButton(2,cellbutton2)
  279. setCellButton(3,cellbutton3)
  280. setCellButton(4,cellbutton4)
  281. setCellButton(5,cellbutton5)
  282. setCellButton(6,cellbutton6)
  283. setCellButton(7,cellbutton7)
  284. setCellButton(8,cellbutton8)
  285. setCellButton(9,cellbutton9)
  286. Width=1098
  287. Height=1241
  288.  
  289. game.startGame()
  290. // End user code section
  291. end event
  292.  
  293. event close;TriggerEvent (this, "destructor")
  294. // Start user code section
  295.  
  296. // End user code section
  297. end event
  298.  
  299. event destructor;// Start user code section
  300. // End user code section
  301. if not isNull(computer) then
  302.     setNull(computer.gui)
  303. end if
  304. setNull(computer)
  305. if not isNull(game) then
  306.     setNull(game.gui)
  307. end if
  308. setNull(game)
  309. destroy(cellButtonDict)
  310. setNull(cellButtonDict)
  311. end event
  312.  
  313. type cellbutton1 from commandbutton within tictactoe_gui
  314. int X = 142
  315. int Y = 141
  316. int Width = 270
  317. int Height = 193
  318. int TabOrder = 10
  319. string Text = " "
  320. int TextSize = -24
  321. int Weight = 700
  322. string FaceName = "Arial"
  323. FontFamily FontFamily = Swiss!
  324. FontPitch FontPitch = Variable!
  325. end type
  326.  
  327. event clicked;parent.cellbuttonclick(1)
  328. end event
  329.  
  330. type cellbutton2 from commandbutton within tictactoe_gui
  331. int X = 412
  332. int Y = 141
  333. int Width = 270
  334. int Height = 193
  335. int TabOrder = 20
  336. string Text = " "
  337. int TextSize = -24
  338. int Weight = 700
  339. string FaceName = "Arial"
  340. FontFamily FontFamily = Swiss!
  341. FontPitch FontPitch = Variable!
  342. end type
  343.  
  344. event clicked;parent.cellbuttonclick(2)
  345. end event
  346.  
  347. type cellbutton3 from commandbutton within tictactoe_gui
  348. int X = 682
  349. int Y = 141
  350. int Width = 270
  351. int Height = 193
  352. int TabOrder = 30
  353. string Text = " "
  354. int TextSize = -24
  355. int Weight = 700
  356. string FaceName = "Arial"
  357. FontFamily FontFamily = Swiss!
  358. FontPitch FontPitch = Variable!
  359. end type
  360.  
  361. event clicked;parent.cellbuttonclick(3)
  362. end event
  363.  
  364. type cellbutton4 from commandbutton within tictactoe_gui
  365. int X = 142
  366. int Y = 333
  367. int Width = 270
  368. int Height = 193
  369. int TabOrder = 40
  370. string Text = " "
  371. int TextSize = -24
  372. int Weight = 700
  373. string FaceName = "Arial"
  374. FontFamily FontFamily = Swiss!
  375. FontPitch FontPitch = Variable!
  376. end type
  377.  
  378. event clicked;parent.cellbuttonclick(4)
  379. end event
  380.  
  381. type cellbutton5 from commandbutton within tictactoe_gui
  382. int X = 412
  383. int Y = 333
  384. int Width = 270
  385. int Height = 193
  386. int TabOrder = 50
  387. string Text = " "
  388. int TextSize = -24
  389. int Weight = 700
  390. string FaceName = "Arial"
  391. FontFamily FontFamily = Swiss!
  392. FontPitch FontPitch = Variable!
  393. end type
  394.  
  395. event clicked;parent.cellbuttonclick(5)
  396. end event
  397.  
  398. type cellbutton6 from commandbutton within tictactoe_gui
  399. int X = 682
  400. int Y = 333
  401. int Width = 270
  402. int Height = 193
  403. int TabOrder = 60
  404. string Text = " "
  405. int TextSize = -24
  406. int Weight = 700
  407. string FaceName = "Arial"
  408. FontFamily FontFamily = Swiss!
  409. FontPitch FontPitch = Variable!
  410. end type
  411.  
  412. event clicked;parent.cellbuttonclick(6)
  413. end event
  414.  
  415. type cellbutton7 from commandbutton within tictactoe_gui
  416. int X = 142
  417. int Y = 525
  418. int Width = 270
  419. int Height = 185
  420. int TabOrder = 70
  421. string Text = " "
  422. int TextSize = -24
  423. int Weight = 700
  424. string FaceName = "Arial"
  425. FontFamily FontFamily = Swiss!
  426. FontPitch FontPitch = Variable!
  427. end type
  428.  
  429. event clicked;parent.cellbuttonclick(7)
  430. end event
  431.  
  432. type cellbutton8 from commandbutton within tictactoe_gui
  433. int X = 412
  434. int Y = 525
  435. int Width = 270
  436. int Height = 185
  437. int TabOrder = 80
  438. string Text = " "
  439. int TextSize = -24
  440. int Weight = 700
  441. string FaceName = "Arial"
  442. FontFamily FontFamily = Swiss!
  443. FontPitch FontPitch = Variable!
  444. end type
  445.  
  446. event clicked;parent.cellbuttonclick(8)
  447. end event
  448.  
  449. type cellbutton9 from commandbutton within tictactoe_gui
  450. int X = 682
  451. int Y = 525
  452. int Width = 270
  453. int Height = 185
  454. int TabOrder = 90
  455. string Text = " "
  456. int TextSize = -24
  457. int Weight = 700
  458. string FaceName = "Arial"
  459. FontFamily FontFamily = Swiss!
  460. FontPitch FontPitch = Variable!
  461. end type
  462.  
  463. event clicked;parent.cellbuttonclick(9)
  464. end event
  465.  
  466. type result from statictext within tictactoe_gui
  467. int X = 5
  468. int Y = 897
  469. int Width = 1098
  470. int Height = 149
  471. string Text = "O is the winner!!!"
  472. Alignment Alignment = Center!
  473. long TextColor = 65535
  474. long BackColor = 0
  475. int TextSize = -18
  476. int Weight = 700
  477. string FaceName = "Arial"
  478. FontFamily FontFamily = Swiss!
  479. FontPitch FontPitch = Variable!
  480. end type
  481.  
  482. type board from groupbox within tictactoe_gui
  483. int Width = 1093
  484. int Height = 825
  485. boolean Enabled = false
  486. BorderStyle BorderStyle = StyleRaised!
  487. long BackColor = 0
  488. end type
  489.  
  490.