please i got the exam tomorrow this is my code:
''
-
'Skeleton Program for the AQA AS Paper 1 Summer 2016 examination
'this code should be used in conjunction with the Preliminary Material
'written by the AQA Programmer Team
'developed in the Visual Studio 2008 programming environment
'Version Number 1.0
Imports System.IO
Module Module1
Const TrainingGame As String = "Training.txt"
Dim score As Integer = 0
Dim Missiles As Integer = 50
Structure TShip
Dim Name As String
Dim Size As Integer
End Structure
Sub GetRowColumn(ByRef Row As Integer, ByRef Column As Integer)
Console.WriteLine()
Console.WriteLine("Please enter 11 to return to menu and 12 to quit!")
Console.WriteLine("You currently have a score of " & score & " points! ")
Console.WriteLine("You have " & Missiles & " missiles left!")
If Missiles = 0 Then
Console.ForegroundColor = ConsoleColor.Red
Console.WriteLine("Game Over!!! No More Missiles Left! ")
Console.ResetColor()
End If
Do
Console.Write("Please enter column: ")
Column = Console.ReadLine()
If Column = 11 Then
Main()
ElseIf Column = 12 Then
End
End If
If Column > -1 And Column < 13 Then
Exit Do
Else : Console.WriteLine("Please enter a boundary between 0 - 10")
End If
Loop
Do
Console.Write("Please enter row: ")
Row = Console.ReadLine()
If Row = 11 Then
Main()
ElseIf Row = 12 Then
End
End If
If Row > -1 And Row < 13 Then
Exit Do
Else : Console.WriteLine("Please enter a boundary between 0 - 10")
End If
Loop
Console.WriteLine()
End Sub
Sub MakePlayerMove(ByRef Board(,) As Char, ByRef Ships() As TShip)
Dim Row As Integer
Dim Column As Integer
GetRowColumn(Row, Column)
If Board(Row, Column) = "m" Or Board(Row, Column) = "h" Then
Console.WriteLine("Sorry, you have already shot at the square (" & Column & "," & Row & "). Please try again.")
ElseIf Board(Row, Column) = "-" Then
Console.WriteLine("Sorry, (" & Column & "," & Row & ") is a miss.")
Board(Row, Column) = "m"
If Board(Row, Column) = "m" Then
Missiles = (Missiles - 1)
End If
Else
Console.WriteLine("Hit at (" & Column & "," & Row & ").")
If Board(Row, Column) = "A" Then
Board(Row, Column) = "h"
Missiles -= 1
score = (score + 5)
Console.WriteLine("You have hit part of the Aircraft carrier")
ElseIf Board(Row, Column) = "B" Then
Board(Row, Column) = "h"
Missiles -= 1
score = (score + 4)
Console.WriteLine("You have hit part of the Battleship")
ElseIf Board(Row, Column) = "S" Then
Board(Row, Column) = "h"
Missiles -= 1
score += 3
Console.WriteLine("You have hit part of the Submarine")
ElseIf Board(Row, Column) = "D" Then
Board(Row, Column) = "h"
Missiles -= 1
score += 2
Console.WriteLine("You have hit part of the Destroyer")
ElseIf Board(Row, Column) = "P" Then
Board(Row, Column) = "h"
Missiles -= 1
score += 1
Console.WriteLine("You have hit part of the Patrol Boat")
ElseIf Board(Row, Column) = "C" Then
Board(Row, Column) = "h"
Missiles -= 1
score += 1
Console.WriteLine("You have hit part of the Cruiser")
End If
End If
End Sub
Sub SetUpBoard(ByRef Board(,) As Char)
Dim Row As Integer
Dim Column As Integer
For Row = 0 To 10
For Column = 0 To 10
Board(Row, Column) = "-"
Next
Next
End Sub
Sub LoadGame(ByVal Filename As String, ByRef Board(,) As Char)
Dim Row As Integer
Dim Column As Integer
Dim Line As String
Using FileReader As StreamReader = New StreamReader(Filename)
For Row = 0 To 10
Line = FileReader.ReadLine()
For Column = 0 To 10
Board(Row, Column) = Line(Column)
Next
Next
End Using
End Sub
Sub Savegame(ByRef Board(,) As Char)
Dim Row, Column As Integer
Dim Line As String
Using Filewriter As StreamWriter = New StreamWriter("SavedGame.txt")
For Row = 0 To 10
For Column = 0 To 10
Line = Board(Row, Column)
Filewriter.WriteLine(Line)
Next
Next
End Using
End Sub
Sub PlaceRandomShips(ByRef Board(,) As Char, ByVal Ships() As TShip)
Dim Valid As Boolean
Dim Row As Integer
Dim Column As Integer
Dim Orientation As Char
Dim HorV As Integer
For Each Ship In Ships
Valid = False
While Not Valid
Row = Int(Rnd() * 11)
Column = Int(Rnd() * 11)
HorV = Int(Rnd() * 2)
If HorV = 0 Then
Orientation = "v"
Else
Orientation = "h"
End If
Valid = ValidateBoatPosition(Board, Ship, Row, Column, Orientation)
End While
Console.WriteLine("Computer placing the " & Ship.Name)
PlaceShip(Board, Ship, Row, Column, Orientation)
Next
End Sub
Sub PlaceShip(ByRef Board(,) As Char, ByVal Ship As TShip, ByVal Row As Integer, ByVal Column As Integer, ByVal Orientation As Char)
Dim Scan As Integer
If Orientation = "v" Then
For Scan = 0 To Ship.Size - 1
Board(Row + Scan, Column) = Ship.Name(0)
Next
ElseIf Orientation = "h" Then
For Scan = 0 To Ship.Size - 1
Board(Row, Column + Scan) = Ship.Name(0)
Next
End If
End Sub
Function ValidateBoatPosition(ByVal Board(,) As Char, ByVal Ship As TShip, ByVal Row As Integer, ByVal Column As Integer, ByVal Orientation As Char)
Dim Scan As Integer
If Orientation = "v" And Row + Ship.Size > 10 Then
Return False
ElseIf Orientation = "h" And Column + Ship.Size > 10 Then
Return False
Else
If Orientation = "v" Then
For Scan = 0 To Ship.Size - 1
If Board(Row + Scan, Column) <> "-" Then
Return False
End If
Next
ElseIf (Orientation = "h") Then
For Scan = 0 To Ship.Size - 1
If Board(Row, Column + Scan) <> "-" Then
Return False
End If
Next
End If
End If
Return True
End Function
Function CheckWin(ByVal Board(,) As Char)
Dim Row As Integer
Dim Column As Integer
For Row = 0 To 10
For Column = 0 To 10
If Board(Row, Column) = "A" Or Board(Row, Column) = "B" Or Board(Row, Column) = "S" Or Board(Row, Column) = "D" Or Board(Row, Column) = "P" Or Board(Row, Column) = "C" Then
Return False
End If
Next
Next
Return True
End Function
Sub PrintBoard(ByVal Board(,) As Char)
Dim Row As Integer
Dim Column As Integer
Console.WriteLine()
Console.WriteLine("The board looks like this: ")
Console.WriteLine()
Console.Write(" ")
For Column = 0 To 10
Console.Write(" " & Column & " ")
Next
Console.WriteLine()
For Row = 0 To 10
Console.Write(Row & " ")
For Column = 0 To 10
If Board(Row, Column) = "-" Then
Console.Write(" ")
ElseIf Board(Row, Column) = "A" Or Board(Row, Column) = "B" Or Board(Row, Column) = "S" Or Board(Row, Column) = "D" Or Board(Row, Column) = "P" Or Board(Row, Column) = "C" Then
Console.Write(" ")
Else
Console.Write(Board(Row, Column))
End If
If Column <> 10 Then
Console.Write(" | ")
End If
Next
Console.WriteLine()
Next
End Sub
Sub DisplayMenu()
Console.WriteLine("MAIN MENU")
Console.WriteLine()
Console.WriteLine("1. Start new game")
Console.WriteLine("2. Load training game")
Console.WriteLine("9. Quit")
Console.WriteLine()
End Sub
Function GetMainMenuChoice()
Dim Choice As Integer
Console.Write("Please enter your choice: ")
Choice = Console.ReadLine()
Console.WriteLine()
Return Choice
End Function
Sub PlayGame(ByVal Board(,) As Char, ByVal Ships() As TShip)
Dim GameWon As Boolean = False
Do
PrintBoard(Board)
MakePlayerMove(Board, Ships)
GameWon = CheckWin(Board)
If GameWon Then
Console.WriteLine("All ships sunk!")
Console.WriteLine()
End If
Loop Until GameWon
End Sub
Sub SetUpShips(ByRef Ships() As TShip)
Ships(0).Name = "Aircraft Carrier [Worth 5 points]"
Ships(0).Size = 5
Ships(1).Name = "Battleship [Worth 4 points]"
Ships(1).Size = 4
Ships(2).Name = "Submarine [Worth 3 points]"
Ships(2).Size = 3
Ships(3).Name = "Destroyer [Worth 2 points]"
Ships(3).Size = 3
Ships(4).Name = "Patrol Boat [Worth 1 point]"
Ships(4).Size = 2
Ships(5).Name = "Cruiser [Worth 1 point]"
Ships(5).Size = 1
End Sub
Sub Main()
Dim Board(10, 10) As Char
Dim Ships(5) As TShip
Dim MenuOption As Integer
Do
SetUpBoard(Board)
SetUpShips(Ships)
DisplayMenu()
MenuOption = GetMainMenuChoice()
If MenuOption = 1 Then
PlaceRandomShips(Board, Ships)
PlayGame(Board, Ships)
ElseIf MenuOption = 2 Then
LoadGame(TrainingGame, Board)
PlayGame(Board, Ships)
End If
Loop Until MenuOption = 9
End Sub
End Module
-
"
how can I call the savegame when user enters 11 or 12 when choosing what co ordinates to enter?