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

  1. $PBExportHeader$tictactoe_cell.sru
  2. $PBExportComments$Generated by ObjectTeam
  3. forward
  4. global type tictactoe_cell from nonvisualobject
  5. end type
  6. end forward
  7.  
  8. shared variables
  9. // User defined attributes
  10.  
  11. // Non modeled user defined attributes
  12.  
  13. end variables
  14.  
  15. global type tictactoe_cell from nonvisualobject
  16. end type
  17. global tictactoe_cell tictactoe_cell
  18.  
  19. type variables
  20. // User defined attributes
  21. string contents = ' '
  22.  
  23. // Association attributes
  24. private classdict neighbourDict
  25.  
  26. // Non modeled user defined attributes
  27.  
  28. // Control to class mappings
  29. //    tictactoe_cell --> TicTacToe_Cell
  30. end variables
  31.  
  32. forward prototypes
  33. public function integer getMaxLine ()
  34. public function integer getLine (string dir, string x)
  35. public function tictactoe_cell getNeighbour (string Direction)
  36. public subroutine setNeighbour (string Direction, tictactoe_cell newNeighbour)
  37. public subroutine removeNeighbour (string Direction)
  38. end prototypes
  39.  
  40. public function integer getMaxLine ();//
  41. integer maxValue
  42. integer lineValue
  43. maxValue  = getLine('N',  contents) + getLine('S',  contents) - 1
  44. lineValue = getLine('E',  contents) + getLine('W',  contents) - 1
  45. IF (maxValue < lineValue) THEN maxValue = lineValue
  46. lineValue = getLine('NE', contents) + getLine('SW', contents) - 1
  47. IF (maxValue < lineValue) THEN maxValue = lineValue
  48. lineValue = getLine('NW', contents) + getLine('SE', contents) - 1
  49. IF (maxValue < lineValue) THEN maxValue = lineValue
  50. return maxValue
  51. end function
  52.  
  53. public function integer getLine (string dir, string x);//
  54. tictactoe_cell cell
  55. integer retValue = 0
  56. IF (contents = x) THEN
  57.     retValue = 1
  58.     cell = getNeighbour(dir)
  59.     IF NOT isNull(cell) THEN
  60.         retValue = retValue + cell.getLine(dir, x)
  61.     END IF
  62. END IF
  63. return retValue
  64. end function
  65.  
  66. public function tictactoe_cell getNeighbour (string Direction);// Association accessor method
  67. return neighbourDict.get(Direction)
  68. end function
  69.  
  70. public subroutine setNeighbour (string Direction, tictactoe_cell newNeighbour);// Association accessor method
  71. if isNull(newNeighbour) then
  72.     return
  73. end if
  74. neighbourDict.set(Direction, newNeighbour)
  75. end subroutine
  76.  
  77. public subroutine removeNeighbour (string Direction);// Association accessor method
  78. powerobject object
  79. object = neighbourDict.get(Direction)
  80. if isNull(object) then
  81.     return
  82. end if
  83. neighbourDict.remove(Direction)
  84. end subroutine
  85.  
  86. on tictactoe_cell.create
  87. TriggerEvent( this, "constructor" )
  88. end on
  89.  
  90. on tictactoe_cell.destroy
  91. TriggerEvent( this, "destructor" )
  92. end on
  93.  
  94. event constructor;neighbourDict = create classdict
  95. // Start user code section
  96. // End user code section
  97. end event
  98.  
  99. event destructor;// Start user code section
  100. // End user code section
  101. destroy(neighbourDict)
  102. setNull(neighbourDict)
  103. end event
  104.  
  105.