home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / TicTacToe_GUI.frm < prev    next >
Text File  |  1997-10-01  |  13KB  |  429 lines

  1. VERSION 5.00
  2. Begin VB.Form TicTacToe_GUI 
  3.    BackColor       =   &H00000000&
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "Tic Tac Toe"
  6.    ClientHeight    =   4170
  7.    ClientLeft      =   8400
  8.    ClientTop       =   2805
  9.    ClientWidth     =   3585
  10.    FillColor       =   &H80000003&
  11.    BeginProperty Font 
  12.       Name            =   "Terminal"
  13.       Size            =   13.5
  14.       Charset         =   255
  15.       Weight          =   700
  16.       Underline       =   0   'False
  17.       Italic          =   0   'False
  18.       Strikethrough   =   0   'False
  19.    EndProperty
  20.    LinkTopic       =   "Form1"
  21.    MaxButton       =   0   'False
  22.    ScaleHeight     =   4170
  23.    ScaleWidth      =   3585
  24.    Begin VB.Frame Board
  25.       BackColor       =   &H00000000&
  26.       ClipControls    =   0   'False
  27.       Height          =   3375
  28.       Left            =   -120
  29.       TabIndex        =   1
  30.       Top             =   -240
  31.       Width           =   3735
  32.       Begin VB.CommandButton CellButton
  33.          BeginProperty Font 
  34.             Name            =   "Arial"
  35.             Size            =   24
  36.             Charset         =   0
  37.             Weight          =   700
  38.             Underline       =   0   'False
  39.             Italic          =   0   'False
  40.             Strikethrough   =   0   'False
  41.          EndProperty
  42.          Height          =   735
  43.          Index           =   8
  44.          Left            =   2280
  45.          TabIndex        =   10
  46.          TabStop         =   0   'False
  47.          Top             =   2160
  48.          Width           =   855
  49.       End
  50.       Begin VB.CommandButton CellButton
  51.          BeginProperty Font 
  52.             Name            =   "Arial"
  53.             Size            =   24
  54.             Charset         =   0
  55.             Weight          =   700
  56.             Underline       =   0   'False
  57.             Italic          =   0   'False
  58.             Strikethrough   =   0   'False
  59.          EndProperty
  60.          Height          =   735
  61.          Index           =   7
  62.          Left            =   1440
  63.          TabIndex        =   9
  64.          TabStop         =   0   'False
  65.          Top             =   2160
  66.          Width           =   855
  67.       End
  68.       Begin VB.CommandButton CellButton
  69.          BeginProperty Font 
  70.             Name            =   "Arial"
  71.             Size            =   24
  72.             Charset         =   0
  73.             Weight          =   700
  74.             Underline       =   0   'False
  75.             Italic          =   0   'False
  76.             Strikethrough   =   0   'False
  77.          EndProperty
  78.          Height          =   735
  79.          Index           =   6
  80.          Left            =   600
  81.          TabIndex        =   8
  82.          TabStop         =   0   'False
  83.          Top             =   2160
  84.          Width           =   855
  85.       End
  86.       Begin VB.CommandButton CellButton
  87.          BeginProperty Font 
  88.             Name            =   "Arial"
  89.             Size            =   24
  90.             Charset         =   0
  91.             Weight          =   700
  92.             Underline       =   0   'False
  93.             Italic          =   0   'False
  94.             Strikethrough   =   0   'False
  95.          EndProperty
  96.          Height          =   735
  97.          Index           =   5
  98.          Left            =   2280
  99.          TabIndex        =   7
  100.          TabStop         =   0   'False
  101.          Top             =   1440
  102.          Width           =   855
  103.       End
  104.       Begin VB.CommandButton CellButton
  105.          BeginProperty Font 
  106.             Name            =   "Arial"
  107.             Size            =   24
  108.             Charset         =   0
  109.             Weight          =   700
  110.             Underline       =   0   'False
  111.             Italic          =   0   'False
  112.             Strikethrough   =   0   'False
  113.          EndProperty
  114.          Height          =   735
  115.          Index           =   4
  116.          Left            =   1440
  117.          TabIndex        =   6
  118.          TabStop         =   0   'False
  119.          Top             =   1440
  120.          Width           =   855
  121.       End
  122.       Begin VB.CommandButton CellButton
  123.          BeginProperty Font 
  124.             Name            =   "Arial"
  125.             Size            =   24
  126.             Charset         =   0
  127.             Weight          =   700
  128.             Underline       =   0   'False
  129.             Italic          =   0   'False
  130.             Strikethrough   =   0   'False
  131.          EndProperty
  132.          Height          =   735
  133.          Index           =   3
  134.          Left            =   600
  135.          TabIndex        =   5
  136.          TabStop         =   0   'False
  137.          Top             =   1440
  138.          Width           =   855
  139.       End
  140.       Begin VB.CommandButton CellButton
  141.          BeginProperty Font 
  142.             Name            =   "Arial"
  143.             Size            =   24
  144.             Charset         =   0
  145.             Weight          =   700
  146.             Underline       =   0   'False
  147.             Italic          =   0   'False
  148.             Strikethrough   =   0   'False
  149.          EndProperty
  150.          Height          =   735
  151.          Index           =   2
  152.          Left            =   2280
  153.          TabIndex        =   4
  154.          TabStop         =   0   'False
  155.          Top             =   720
  156.          Width           =   855
  157.       End
  158.       Begin VB.CommandButton CellButton
  159.          BeginProperty Font 
  160.             Name            =   "Arial"
  161.             Size            =   24
  162.             Charset         =   0
  163.             Weight          =   700
  164.             Underline       =   0   'False
  165.             Italic          =   0   'False
  166.             Strikethrough   =   0   'False
  167.          EndProperty
  168.          Height          =   735
  169.          Index           =   1
  170.          Left            =   1440
  171.          TabIndex        =   3
  172.          TabStop         =   0   'False
  173.          Top             =   720
  174.          Width           =   855
  175.       End
  176.       Begin VB.CommandButton CellButton
  177.          BeginProperty Font 
  178.             Name            =   "Arial"
  179.             Size            =   24
  180.             Charset         =   0
  181.             Weight          =   700
  182.             Underline       =   0   'False
  183.             Italic          =   0   'False
  184.             Strikethrough   =   0   'False
  185.          EndProperty
  186.          Height          =   735
  187.          Index           =   0
  188.          Left            =   600
  189.          TabIndex        =   2
  190.          TabStop         =   0   'False
  191.          Top             =   720
  192.          Width           =   855
  193.       End
  194.    End
  195.    Begin VB.Label Result
  196.       Alignment       =   2  'Center
  197.       BackColor       =   &H80000008&
  198.       BeginProperty Font 
  199.          Name            =   "Arial"
  200.          Size            =   18
  201.          Charset         =   0
  202.          Weight          =   700
  203.          Underline       =   0   'False
  204.          Italic          =   0   'False
  205.          Strikethrough   =   0   'False
  206.       EndProperty
  207.       ForeColor       =   &H0000FFFF&
  208.       Height          =   855
  209.       Left            =   0
  210.       TabIndex        =   0
  211.       Top             =   3360
  212.       Width           =   3615
  213.    End
  214.    Begin VB.Menu GameMenu
  215.       Caption         =   "&Game"
  216.       Begin VB.Menu New
  217.          Caption         =   "&New"
  218.          Shortcut        =   ^N
  219.       End
  220.    End
  221.    Begin VB.Menu Opponent
  222.       Caption         =   "&Opponent"
  223.       Begin VB.Menu Oppo
  224.          Caption         =   "&Human"
  225.          Checked         =   -1  'True
  226.          Index           =   0
  227.          Shortcut        =   ^H
  228.       End
  229.       Begin VB.Menu Oppo
  230.          Caption         =   "Computer &X"
  231.          Index           =   1
  232.          Shortcut        =   ^X
  233.       End
  234.       Begin VB.Menu Oppo
  235.          Caption         =   "Computer &O"
  236.          Index           =   2
  237.          Shortcut        =   ^O
  238.       End
  239.    End
  240. End
  241. Attribute VB_Name = "TicTacToe_GUI"
  242. Attribute VB_GlobalNameSpace = False
  243. Attribute VB_Creatable = False
  244. Attribute VB_PredeclaredId = True
  245. Attribute VB_Exposed = False
  246. '
  247. ' File          : TicTacToe_GUI.frm
  248. '
  249. ' Project       : demo
  250. ' Configuration : demo 1
  251. ' Phase         : Implementation 1
  252. ' System        : TicTacToe 1
  253. '
  254. ' User defined control GameMenu of TicTacToe_GameMenu
  255. ' User defined control New of TicTacToe_New
  256. ' User defined control Opponent of TicTacToe_OpponentMenu
  257. ' User defined control Oppo of TicTacToe_Opponent
  258. ' User defined control Oppo of TicTacToe_Opponent
  259. ' User defined control Oppo of TicTacToe_Opponent
  260. ' User defined control Board of TicTacToe_Board
  261. ' User defined control CellButton of TicTacToe_CellButton
  262. ' User defined control CellButton of TicTacToe_CellButton
  263. ' User defined control CellButton of TicTacToe_CellButton
  264. ' User defined control CellButton of TicTacToe_CellButton
  265. ' User defined control CellButton of TicTacToe_CellButton
  266. ' User defined control CellButton of TicTacToe_CellButton
  267. ' User defined control CellButton of TicTacToe_CellButton
  268. ' User defined control CellButton of TicTacToe_CellButton
  269. ' User defined control CellButton of TicTacToe_CellButton
  270. ' User defined control Result of TicTacToe_Result
  271. ' Graphical User Interface of the game.
  272. Option Explicit
  273.  
  274.  
  275. ' Association attributes
  276.  
  277. Public computer_ As TicTacToe_Computer
  278.  
  279. Public game_ As TicTacToe_Game
  280.  
  281.  
  282. ' User defined attributes
  283.  
  284. Private numberOfCells_ As Integer
  285. ' Has default value 9
  286.  
  287.  
  288. ' User defined methods
  289.  
  290. Public Sub TicTacToe_GUI_Constructor(a_computer As TicTacToe_Computer, a_game As TicTacToe_Game)
  291.     numberOfCells = 9
  292.     Set computer = a_computer
  293.     Set game = a_game
  294.     ' Start user section
  295.     game.startGame
  296.     ' End user section
  297. End Sub
  298.  
  299. Private Sub Form_Terminate()
  300.     ' Start user section
  301.     ' End user section
  302.     If Not (computer_ Is Nothing) Then
  303.         Set computer_.gui_ = Nothing
  304.     End If
  305.     If Not (game_ Is Nothing) Then
  306.         Set game_.gui_ = Nothing
  307.     End If
  308. End Sub
  309.  
  310. ' Disables all the buttons of the board.
  311. Public Sub disableBoard()
  312.     Dim i As Integer
  313.     For i = 0 To (numberOfCells - 1)
  314.         CellButton(i).Enabled = False
  315.     Next i
  316. End Sub
  317.  
  318. ' Enables all the buttons of the board.
  319. Public Sub enableBoard()
  320.     Dim i As Integer
  321.     For i = 0 To (numberOfCells - 1)
  322.         If CellButton(i).Caption = "" Then
  323.             CellButton(i).Enabled = True
  324.         End If
  325.     Next i
  326. End Sub
  327.  
  328. ' Clears the contents of all the buttons of the board.
  329. Public Sub clearBoard()
  330.     Dim i As Integer
  331.     For i = 0 To (numberOfCells - 1)
  332.         CellButton(i).Caption = ""
  333.     Next i
  334. End Sub
  335.  
  336. ' Displays the specified result.
  337. Public Sub displayResult(text As String)
  338.     Result.Caption = text
  339. End Sub
  340.  
  341.  
  342. ' Events
  343.  
  344. ' Initializes the window.
  345. Private Sub Form_Initialize()
  346.     Dim game_temp As New TicTacToe_Game
  347.     Dim comp_temp As New TicTacToe_Computer
  348.     Me.TicTacToe_GUI_Constructor comp_temp, game_temp
  349.     game_temp.TicTacToe_Game_Constructor
  350.     comp_temp.TicTacToe_Computer_Constructor game_temp
  351. End Sub
  352.  
  353. ' Starts new game.
  354. Public Sub New_Click()
  355.     game.startGame
  356.     computer.checkTurn
  357. End Sub
  358.  
  359. ' Sets opponent.
  360. Public Sub Oppo_Click(Index As Integer)
  361.      Oppo(0).Checked = False
  362.      Oppo(1).Checked = False
  363.      Oppo(2).Checked = False
  364.      Oppo(Index).Checked = True
  365.      If Index > 0 Then
  366.         computer.id = Mid(game.players, Index, 1)
  367.         computer.checkTurn
  368.      Else
  369.         computer.id = ""
  370.      End If
  371. End Sub
  372.  
  373. ' Checks if cell is empty and sets it.
  374. Public Sub CellButton_Click(Index As Integer)
  375.     If CellButton(Index).Enabled Then
  376.         CellButton(Index).Enabled = False
  377.         CellButton(Index).Caption = game.getActivePlayer
  378.         game.selectCell (Index)
  379.         computer.checkTurn
  380.     End If
  381. End Sub
  382.  
  383.  
  384. ' Access methods
  385.  
  386. Public Property Get numberOfCells() As Integer
  387.     numberOfCells = numberOfCells_
  388. End Property
  389.  
  390. Public Property Let numberOfCells(x As Integer)
  391.     numberOfCells_ = x
  392. End Property
  393.  
  394.  
  395. ' Association methods
  396.  
  397. Public Property Get computer() As TicTacToe_Computer
  398.     Set computer = computer_
  399. End Property
  400.  
  401. Public Property Set computer(x As TicTacToe_Computer)
  402.     If Not (x Is Nothing) Then
  403.         If x.gui Is Nothing Then
  404.             If Not (computer_ Is Nothing) Then
  405.                 Set computer_.gui_ = Nothing
  406.             End If
  407.             Set computer_ = x
  408.             Set x.gui_ = Me
  409.         End If
  410.     End If
  411. End Property
  412.  
  413. Public Property Get game() As TicTacToe_Game
  414.     Set game = game_
  415. End Property
  416.  
  417. Public Property Set game(x As TicTacToe_Game)
  418.     If Not (x Is Nothing) Then
  419.         If x.gui Is Nothing Then
  420.             If Not (game_ Is Nothing) Then
  421.                 Set game_.gui_ = Nothing
  422.             End If
  423.             Set game_ = x
  424.             Set x.gui_ = Me
  425.         End If
  426.     End If
  427. End Property
  428.  
  429.