home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 February / PCWK0297.iso / envelop / envelop.5 / Tools / Arsenal / apps / gametpeg / gametpeg.eto < prev    next >
Text File  |  1996-07-08  |  18KB  |  592 lines

  1. Type PegImage From Image
  2.   Dim PegID As Integer
  3.  
  4.   ' METHODS for object: PegImage
  5.   Sub MouseDown(button, shift As Integer, x,y As Single)
  6.     ' If there is no parent for this object, then don't do anything
  7.     If Not Parent Then Exit Sub
  8.   
  9.     ' If the game has not been started, remove the first peg
  10.     If Not Parent.GameStarted Then 
  11.       Picture = Parent.bmpNoPeg
  12.       Refresh
  13.       Parent.GameStarted = -1
  14.       Parent.lblNotice.Caption = "Game is in progress..."
  15.     End If
  16.   End Sub
  17.  
  18.   Sub HasPeg(peg_count As Integer)
  19.     ' This routine checks to see if there is a peg in the control
  20.     If Not Parent Then Exit Sub
  21.   
  22.     If Picture == Parent.bmpPeg Then 
  23.       peg_count = peg_count + 1
  24.     End If
  25.   
  26.   End Sub
  27.  
  28.   Sub PegInit()
  29.     ' If there is no parent for this object, then don't do anything
  30.     If Not Parent Then Exit Sub
  31.   
  32.     ' Initialize the picture to show
  33.     Picture = Parent.bmpPeg
  34.   End Sub
  35.  
  36.   Sub DragAndDrop(source As XferData, x,y As Single, state As OleDropState, effect As OleDropEffect)
  37.     ' If there is no parent for this object, then don't do anything
  38.     If Not Parent Then Exit Sub
  39.   
  40.     ' Image is dropped onto image control
  41.     If state == 3 Then 
  42.       If Picture == Parent.bmpPeg Then 
  43.         effect = 0
  44.         Exit Sub
  45.       End If
  46.       If Parent.ValidMove(PegID) Then 
  47.         ' allow drop to take place
  48.         Picture = Parent.bmpPeg
  49.       Else 
  50.         effect = 0
  51.       End If
  52.     End If
  53.   End Sub
  54.  
  55.   Sub DragStart(o as XferData, x,y As Single)
  56.     ' If there is no parent for this object, then don't do anything
  57.     If Not Parent Then Exit Sub
  58.   
  59.     If Parent.GameStarted And Picture == Parent.bmpPeg Then 
  60.       Picture = Parent.bmpNoPeg
  61.       Parent.DragSource = PegID
  62.       If o.Drag(2) <> 2 Then 
  63.         Picture = Parent.bmpPeg
  64.       Else 
  65.         Parent.MoveOver
  66.       End If
  67.     End If
  68.   End Sub
  69.  
  70. End Type
  71.  
  72. Type GameTPegMasterForm From SampleMasterForm
  73.   Dim imgLabel As New Image
  74.   Dim lblNotice As New Label
  75.   Dim bmpPeg As New Bitmap
  76.   Dim bmpNoPeg As New Bitmap
  77.   Dim GameStarted As Integer
  78.   Dim DragSource As String
  79.   Dim img0 As New PegImage
  80.   Dim img1 As New PegImage
  81.   Dim img2 As New PegImage
  82.   Dim img3 As New PegImage
  83.   Dim img4 As New PegImage
  84.   Dim img5 As New PegImage
  85.   Dim img6 As New PegImage
  86.   Dim img7 As New PegImage
  87.   Dim img8 As New PegImage
  88.   Dim img9 As New PegImage
  89.   Dim img10 As New PegImage
  90.   Dim img11 As New PegImage
  91.   Dim img12 As New PegImage
  92.   Dim img13 As New PegImage
  93.   Dim img14 As New PegImage
  94.  
  95.   ' METHODS for object: GameTPegMasterForm
  96.   Sub Resize()
  97.   End Sub
  98.  
  99.   Sub MouseDown(button, shift As Integer, x,y As Single)
  100.     ' If the game has not been started, remove the first peg
  101.     If Not GameStarted Then 
  102.       img0.Picture = GameTPegMasterForm.bmpNoPeg
  103.       img0.Refresh
  104.       GameStarted = -1
  105.       lblNotice.Caption = "Game is in progress..."
  106.     End If
  107.   End Sub
  108.  
  109.   Sub DragAndDrop(source As XferData, x,y As Single, state As OleDropState, effect As OleDropEffect)
  110.     ' Image is dropped onto image 6
  111.     If state == 3 Then 
  112.       effect = 0
  113.     End If
  114.   End Sub
  115.  
  116.   Function MoveOK(No1 As Integer, No2 As Integer, No3 As Integer) As Integer
  117.     Dim bmp1 As String
  118.     Dim bmp2 As String
  119.     Dim bmp3 As String
  120.   
  121.     ' Get the names of the bitmaps in the designated image controls
  122.     bmp1 = GetPictureName(No1)
  123.     bmp2 = GetPictureName(No2)
  124.     bmp3 = GetPictureName(No3)
  125.   
  126.     ' Check to see if this sequence is valid or not
  127.     If bmp1 == "GameTPegMasterForm.bmpPeg" And bmp2 == "GameTPegMasterForm.bmpPeg" And bmp3 == "GameTPegMasterForm.bmpNoPeg" Then 
  128.       MoveOK = -1
  129.     ElseIf bmp3 == "GameTPegMasterForm.bmpPeg" And bmp2 == "GameTPegMasterForm.bmpPeg" And bmp1 == "GameTPegMasterForm.bmpNoPeg" Then 
  130.       MoveOK = -1
  131.     Else 
  132.       MoveOK = 0
  133.     End If
  134.   
  135.   End Function
  136.  
  137.   Function ValidMove(pos As Integer) As Integer
  138.     Dim valid_move As Integer
  139.   
  140.     ' Initialize the valid flag
  141.     valid_move = 1
  142.   
  143.     ' Checks the validity of the move
  144.     Select Case pos
  145.       Case 0
  146.         If DragSource == "3" And img1.Picture == bmpPeg Then 
  147.           img1.Picture = bmpNoPeg
  148.         ElseIf DragSource == "5" And img2.Picture == bmpPeg Then 
  149.           img2.Picture = bmpNoPeg
  150.         Else 
  151.           valid_move = 0
  152.         End If
  153.       Case 1
  154.         If DragSource == "6" And img3.Picture == bmpPeg Then 
  155.           img3.Picture = bmpNoPeg
  156.         ElseIf DragSource == "8" And img4.Picture == bmpPeg Then 
  157.           img4.Picture = bmpNoPeg
  158.         Else 
  159.           valid_move = 0
  160.         End If
  161.       Case 2
  162.         If DragSource == "9" And img5.Picture == bmpPeg Then 
  163.           img5.Picture = bmpNoPeg
  164.         ElseIf DragSource == "7" And img4.Picture == bmpPeg Then 
  165.           img4.Picture = bmpNoPeg
  166.         Else 
  167.           valid_move = 0
  168.         End If
  169.       Case 3
  170.         If DragSource == "0" And img1.Picture == bmpPeg Then 
  171.           img1.Picture = bmpNoPeg
  172.         ElseIf DragSource == "10" And img6.Picture == bmpPeg Then 
  173.           img6.Picture = bmpNoPeg
  174.         ElseIf DragSource == "5" And img4.Picture == bmpPeg Then 
  175.           img4.Picture = bmpNoPeg
  176.         ElseIf DragSource == "12" And img7.Picture == bmpPeg Then 
  177.           img7.Picture = bmpNoPeg
  178.         Else 
  179.           valid_move = 0
  180.         End If
  181.       Case 4
  182.         If DragSource == "11" And img7.Picture == bmpPeg Then 
  183.           img7.Picture = bmpNoPeg
  184.         ElseIf DragSource == "13" And img8.Picture == bmpPeg Then 
  185.           img8.Picture = bmpNoPeg
  186.         Else 
  187.           valid_move = 0
  188.         End If
  189.       Case 5
  190.         If DragSource == "0" And img2.Picture == bmpPeg Then 
  191.           img2.Picture = bmpNoPeg
  192.         ElseIf DragSource == "14" And img9.Picture == bmpPeg Then 
  193.           img9.Picture = bmpNoPeg
  194.         ElseIf DragSource == "12" And img8.Picture == bmpPeg Then 
  195.           img8.Picture = bmpNoPeg
  196.         ElseIf DragSource == "3" And img4.Picture == bmpPeg Then 
  197.           img4.Picture = bmpNoPeg
  198.         Else 
  199.           valid_move = 0
  200.         End If
  201.       Case 6
  202.         If DragSource == "1" And img3.Picture == bmpPeg Then 
  203.           img3.Picture = bmpNoPeg
  204.         ElseIf DragSource == "8" And img7.Picture == bmpPeg Then 
  205.           img7.Picture = bmpNoPeg
  206.         Else 
  207.           valid_move = 0
  208.         End If
  209.       Case 7
  210.         If DragSource == "2" And img4.Picture == bmpPeg Then 
  211.           img4.Picture = bmpNoPeg
  212.         ElseIf DragSource == "9" And img8.Picture == bmpPeg Then 
  213.           img8.Picture = bmpNoPeg
  214.         Else 
  215.           valid_move = 0
  216.         End If
  217.       Case 8
  218.         If DragSource == "6" And img7.Picture == bmpPeg Then 
  219.           img7.Picture = bmpNoPeg
  220.         ElseIf DragSource == "1" And img4.Picture == bmpPeg Then 
  221.           img4.Picture = bmpNoPeg
  222.         Else 
  223.           valid_move = 0
  224.         End If
  225.       Case 9
  226.         If DragSource == "2" And img5.Picture == bmpPeg Then 
  227.           img5.Picture = bmpNoPeg
  228.         ElseIf DragSource == "7" And img8.Picture == bmpPeg Then 
  229.           img8.Picture = bmpNoPeg
  230.         Else 
  231.           valid_move = 0
  232.         End If
  233.       Case 10
  234.         If DragSource == "3" And img6.Picture == bmpPeg Then 
  235.           img6.Picture = bmpNoPeg
  236.         ElseIf DragSource == "12" And img11.Picture == bmpPeg Then 
  237.           img11.Picture = bmpNoPeg
  238.         Else 
  239.           valid_move = 0
  240.         End If
  241.       Case 11
  242.         If DragSource == "4" And img7.Picture == bmpPeg Then 
  243.           img7.Picture = bmpNoPeg
  244.         ElseIf DragSource == "13" And img12.Picture == bmpPeg Then 
  245.           img12.Picture = bmpNoPeg
  246.         Else 
  247.           valid_move = 0
  248.         End If
  249.       Case 12
  250.         If DragSource == "3" And img7.Picture == bmpPeg Then 
  251.           img7.Picture = bmpNoPeg
  252.         ElseIf DragSource == "5" And img8.Picture == bmpPeg Then 
  253.           img8.Picture = bmpNoPeg
  254.         ElseIf DragSource == "10" And img11.Picture == bmpPeg Then 
  255.           img11.Picture = bmpNoPeg
  256.         ElseIf DragSource == "14" And img13.Picture == bmpPeg Then 
  257.           img13.Picture = bmpNoPeg
  258.         Else 
  259.           valid_move = 0
  260.         End If
  261.       Case 13
  262.         If DragSource == "4" And img8.Picture == bmpPeg Then 
  263.           img8.Picture = bmpNoPeg
  264.         ElseIf DragSource == "11" And img12.Picture == bmpPeg Then 
  265.           img12.Picture = bmpNoPeg
  266.         Else 
  267.           valid_move = 0
  268.         End If
  269.       Case 14
  270.         If DragSource == "5" And img9.Picture == bmpPeg Then 
  271.           img9.Picture = bmpNoPeg
  272.         ElseIf DragSource == "12" And img13.Picture == bmpPeg Then 
  273.           img13.Picture = bmpNoPeg
  274.         Else 
  275.           valid_move = 0
  276.         End If
  277.     End Select
  278.   
  279.     If valid_move == 0 Then 
  280.       ValidMove = 0
  281.     Else 
  282.       ValidMove = 1
  283.     End If
  284.   
  285.   End Function
  286.  
  287.   Function MoreMoves() As Integer
  288.     If MoveOK(0, 1, 3) Then 
  289.       MoreMoves = -1
  290.     ElseIf MoveOK(0, 2, 5) Then 
  291.       MoreMoves = -1
  292.     ElseIf MoveOK(1, 3, 6) Then 
  293.       MoreMoves = -1
  294.     ElseIf MoveOK(2, 5, 9) Then 
  295.       MoreMoves = -1
  296.     ElseIf MoveOK(6, 7, 8) Then 
  297.       MoreMoves = -1
  298.     ElseIf MoveOK(9, 8, 7) Then 
  299.       MoreMoves = -1
  300.     ElseIf MoveOK(3, 6, 10) Then 
  301.       MoreMoves = -1
  302.     ElseIf MoveOK(5, 9, 14) Then 
  303.       MoreMoves = -1
  304.     ElseIf MoveOK(2, 4, 7) Then 
  305.       MoreMoves = -1
  306.     ElseIf MoveOK(4, 7, 11) Then 
  307.       MoreMoves = -1
  308.     ElseIf MoveOK(1, 4, 8) Then 
  309.       MoreMoves = -1
  310.     ElseIf MoveOK(4, 8, 13) Then 
  311.       MoreMoves = -1
  312.     ElseIf MoveOK(5, 8, 12) Then 
  313.       MoreMoves = -1
  314.     ElseIf MoveOK(3, 7, 12) Then 
  315.       MoreMoves = -1
  316.     ElseIf MoveOK(10, 11, 12) Then 
  317.       MoreMoves = -1
  318.     ElseIf MoveOK(12, 13, 14) Then 
  319.       MoreMoves = -1
  320.     ElseIf MoveOK(11, 12, 13) Then 
  321.       MoreMoves = -1
  322.     Else 
  323.       MoreMoves = 0
  324.     End If
  325.   
  326.   End Function
  327.  
  328.   Function GetPictureName (img As Integer) As String
  329.     ' Based on the image control number passed to this routine
  330.     ' return the associated picture bitmap
  331.     Select Case img
  332.       Case 0
  333.         GetPictureName = img0.Picture
  334.       Case 1
  335.         GetPictureName = img1.Picture
  336.       Case 2
  337.         GetPictureName = img2.Picture
  338.       Case 3
  339.         GetPictureName = img3.Picture
  340.       Case 4
  341.         GetPictureName = img4.Picture
  342.       Case 5
  343.         GetPictureName = img5.Picture
  344.       Case 6
  345.         GetPictureName = img6.Picture
  346.       Case 7
  347.         GetPictureName = img7.Picture
  348.       Case 8
  349.         GetPictureName = img8.Picture
  350.       Case 9
  351.         GetPictureName = img9.Picture
  352.       Case 10
  353.         GetPictureName = img10.Picture
  354.       Case 11
  355.         GetPictureName = img11.Picture
  356.       Case 12
  357.         GetPictureName = img12.Picture
  358.       Case 13
  359.         GetPictureName = img13.Picture
  360.       Case 14
  361.         GetPictureName = img14.Picture
  362.     End Select
  363.   End Function
  364.  
  365.   Sub MoveOver()
  366.     Dim peg_count As Integer
  367.     Dim message As String
  368.   
  369.     ' Determine if there are any more moves possible
  370.     If Not MoreMoves() Then 
  371.       ' No more move are possible so let's count whats left over
  372.       peg_count = 0
  373.   
  374.       ' Ask all controls if they have a peg and if so, increment the peg_count variable
  375.       Controls.HasPeg(peg_count)
  376.   
  377.       Select Case peg_count
  378.         Case 1
  379.           message = "General"
  380.         Case 2
  381.           message = "Captain"
  382.         Case 3
  383.           message = "Sergeant"
  384.         Case Else
  385.           message = "Private"
  386.       End Select
  387.   
  388.       ' Let the user know how he did
  389.       lblNotice.Caption = "Game Over!" & Chr(13) & Chr(10) & "Your rank is: " & message
  390.   
  391.     End If
  392.   End Sub
  393.  
  394.   Sub ResetApplication_Click ()
  395.     ' Initialize the scales of all images
  396.     Controls.PegInit
  397.   
  398.     ' Initialize game flags
  399.     GameStarted = 0
  400.   
  401.     ' Let the user know what's going on
  402.     lblNotice.Caption = "Click to remove first peg..."
  403.   
  404.     ' Size the form to match the bitmap
  405.     GameTPegMasterForm.Width = 3570
  406.     GameTPegMasterForm.Height = 5055
  407.   
  408.     Controls.Refresh
  409.   
  410.   End Sub
  411.  
  412. End Type
  413.  
  414. Begin Code
  415. ' Reconstruction commands for object: PegImage
  416. '
  417.   With PegImage
  418.     .DragMode := "LeftMouse"
  419.     .Move(0, 0, 0, 0)
  420.     .ScrollBars := "Never"
  421.     .PegID := 0
  422.   End With  'PegImage
  423. ' Reconstruction commands for object: GameTPegMasterForm
  424. '
  425.   With GameTPegMasterForm
  426.     .Caption := "Pegs Game"
  427.     .Move(7485, 2715, 3570, 5055)
  428.     .GameStarted := 0
  429.     .DragSource := "13"
  430.     .SampleDir := "W:\arsenal\apps\gametpeg\"
  431.     .SampleName := "gametpeg"
  432.     With .imgLabel
  433.       .Caption := "imgLabel"
  434.       .ZOrder := 2
  435.       .Move(300, 3450, 2850, 585)
  436.     End With  'GameTPegMasterForm.imgLabel
  437.     With .lblNotice
  438.       .Caption := "Click to remove first peg..."
  439.       .ZOrder := 1
  440.       .Move(450, 3495, 2550, 495)
  441.       .Alignment := "Center"
  442.     End With  'GameTPegMasterForm.lblNotice
  443.     With .bmpPeg
  444.       .LoadType := "MemoryBased"
  445.       .FileName := "gametpeg.ero"
  446.       .ResId := 0
  447.     End With  'GameTPegMasterForm.bmpPeg
  448.     With .bmpNoPeg
  449.       .LoadType := "MemoryBased"
  450.       .FileName := "gametpeg.ero"
  451.       .ResId := 628
  452.     End With  'GameTPegMasterForm.bmpNoPeg
  453.     With .img0
  454.       .Caption := "img0"
  455.       .DragMode := "RightMouse"
  456.       .ZOrder := 3
  457.       .Move(1500, 300, 480, 480)
  458.       .Picture := GameTPegMasterForm.bmpPeg
  459.       .ScrollBars := "Automatic"
  460.     End With  'GameTPegMasterForm.img0
  461.     With .img1
  462.       .Caption := "img1"
  463.       .DragMode := "RightMouse"
  464.       .ZOrder := 4
  465.       .Move(1200, 900, 480, 480)
  466.       .Picture := GameTPegMasterForm.bmpPeg
  467.       .ScrollBars := "Automatic"
  468.       .PegID := 1
  469.     End With  'GameTPegMasterForm.img1
  470.     With .img2
  471.       .Caption := "img2"
  472.       .DragMode := "RightMouse"
  473.       .ZOrder := 5
  474.       .Move(1800, 900, 480, 480)
  475.       .Picture := GameTPegMasterForm.bmpPeg
  476.       .ScrollBars := "Automatic"
  477.       .PegID := 2
  478.     End With  'GameTPegMasterForm.img2
  479.     With .img3
  480.       .Caption := "img3"
  481.       .DragMode := "RightMouse"
  482.       .ZOrder := 6
  483.       .Move(900, 1500, 480, 480)
  484.       .Picture := GameTPegMasterForm.bmpPeg
  485.       .ScrollBars := "Automatic"
  486.       .PegID := 3
  487.     End With  'GameTPegMasterForm.img3
  488.     With .img4
  489.       .Caption := "img4"
  490.       .DragMode := "RightMouse"
  491.       .ZOrder := 7
  492.       .Move(1500, 1500, 480, 480)
  493.       .Picture := GameTPegMasterForm.bmpPeg
  494.       .ScrollBars := "Automatic"
  495.       .PegID := 4
  496.     End With  'GameTPegMasterForm.img4
  497.     With .img5
  498.       .Caption := "img5"
  499.       .DragMode := "RightMouse"
  500.       .ZOrder := 8
  501.       .Move(2100, 1500, 480, 480)
  502.       .Picture := GameTPegMasterForm.bmpPeg
  503.       .ScrollBars := "Automatic"
  504.       .PegID := 5
  505.     End With  'GameTPegMasterForm.img5
  506.     With .img6
  507.       .Caption := "img6"
  508.       .DragMode := "RightMouse"
  509.       .ZOrder := 9
  510.       .Move(600, 2100, 480, 480)
  511.       .Picture := GameTPegMasterForm.bmpPeg
  512.       .ScrollBars := "Automatic"
  513.       .PegID := 6
  514.     End With  'GameTPegMasterForm.img6
  515.     With .img7
  516.       .Caption := "img7"
  517.       .DragMode := "RightMouse"
  518.       .ZOrder := 10
  519.       .Move(1200, 2100, 480, 480)
  520.       .Picture := GameTPegMasterForm.bmpPeg
  521.       .ScrollBars := "Automatic"
  522.       .PegID := 7
  523.     End With  'GameTPegMasterForm.img7
  524.     With .img8
  525.       .Caption := "img8"
  526.       .DragMode := "RightMouse"
  527.       .ZOrder := 11
  528.       .Move(1800, 2100, 480, 480)
  529.       .Picture := GameTPegMasterForm.bmpPeg
  530.       .ScrollBars := "Automatic"
  531.       .PegID := 8
  532.     End With  'GameTPegMasterForm.img8
  533.     With .img9
  534.       .Caption := "img9"
  535.       .DragMode := "RightMouse"
  536.       .ZOrder := 12
  537.       .Move(2400, 2100, 480, 480)
  538.       .Picture := GameTPegMasterForm.bmpPeg
  539.       .ScrollBars := "Automatic"
  540.       .PegID := 9
  541.     End With  'GameTPegMasterForm.img9
  542.     With .img10
  543.       .Caption := "img10"
  544.       .DragMode := "RightMouse"
  545.       .ZOrder := 13
  546.       .Move(300, 2700, 480, 480)
  547.       .Picture := GameTPegMasterForm.bmpPeg
  548.       .ScrollBars := "Automatic"
  549.       .PegID := 10
  550.     End With  'GameTPegMasterForm.img10
  551.     With .img11
  552.       .Caption := "img11"
  553.       .DragMode := "RightMouse"
  554.       .ZOrder := 14
  555.       .Move(900, 2700, 480, 480)
  556.       .Picture := GameTPegMasterForm.bmpPeg
  557.       .ScrollBars := "Automatic"
  558.       .PegID := 11
  559.     End With  'GameTPegMasterForm.img11
  560.     With .img12
  561.       .Caption := "img12"
  562.       .DragMode := "RightMouse"
  563.       .ZOrder := 15
  564.       .Move(1500, 2700, 480, 480)
  565.       .Picture := GameTPegMasterForm.bmpPeg
  566.       .ScrollBars := "Automatic"
  567.       .PegID := 12
  568.     End With  'GameTPegMasterForm.img12
  569.     With .img13
  570.       .Caption := "img13"
  571.       .DragMode := "RightMouse"
  572.       .ZOrder := 16
  573.       .Move(2100, 2700, 480, 480)
  574.       .Picture := GameTPegMasterForm.bmpPeg
  575.       .ScrollBars := "Automatic"
  576.       .PegID := 13
  577.     End With  'GameTPegMasterForm.img13
  578.     With .img14
  579.       .Caption := "img14"
  580.       .DragMode := "RightMouse"
  581.       .ZOrder := 17
  582.       .Move(2700, 2700, 480, 480)
  583.       .Picture := GameTPegMasterForm.bmpPeg
  584.       .ScrollBars := "Automatic"
  585.       .PegID := 14
  586.     End With  'GameTPegMasterForm.img14
  587.     With .helpfile
  588.       .FileName := "W:\arsenal\apps\gametpeg\gametpeg.hlp"
  589.     End With  'GameTPegMasterForm.helpfile
  590.   End With  'GameTPegMasterForm
  591. End Code
  592.