| Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) | |
| Dim sheet As Worksheet | |
| If g_gameEnded = True Then | |
| Exit Sub | |
| End If | |
| Set sheet = ThisWorkbook.ActiveSheet | |
| If g_Ships Is Nothing Then Code.AddShips Battleship.Range(board1) | |
| If Collide(Target, Battleship.Range(board1)) Then | |
| If Target.Borders(xlDiagonalUp).Weight <> xlMedium Then | |
| SetHit Target | |
| Dim Ship | |
| Dim isHit As Boolean | |
| isHit = False | |
| For Each Ship In g_Ships | |
| If Ship.isHit(Target.Cells(1, 1), True) Then | |
| If CheckWinner(g_Ships) Then | |
| MsgBox "You win!", vbOKOnly + vbExclamation, "Battleships" | |
| g_gameEnded = True | |
| Cancel = True | |
| Exit Sub | |
| End If | |
| isHit = True | |
| Exit For | |
| End If | |
| Next | |
| If isHit = False Then | |
| Unprotect | |
| Battleship.Cells(g_logRow, 2).value = "You get a miss on " & Target.Address | |
| Battleship.Names("PlayerMisses").RefersToRange.value = Battleship.Names("PlayerMisses").RefersToRange.value + 1 | |
| g_logRow = g_logRow + 1 | |
| Protect "" | |
| End If | |
| ComputerPlay.Move | |
| End If | |
| End If | |
| Cancel = True | |
| End Sub | |
| Private Sub Worksheet_SelectionChange(ByVal Target As Range) | |
| Target.Cells(1, 1).Select | |
| End Sub |