This document contains the planning and implementation details for a cricket scorecard application. It includes sections on defining the problem, planning and designing the solution, implementing the solution, testing and maintaining the solution, and discussing social and ethical issues. The planning and design section includes Gantt charts, system documentation, design tools like IPO charts and data flow diagrams. The implementation section includes algorithms, pseudocode, and Visual Basic source code to create games, players, login functionality, and load/save to files. It also discusses testing plans and maintenance approaches.
2. 1
Contents
Part 1- Defining and Understanding the Problem 2
Problem Statement 2
Overview of Software and Hardware 2
Discussion of Development Approach 2
Part 2- Planning and Designing the Solution 3
Gnatt Charts 3
System Documentation Overview and Justification 6
Design Tools 6
IPO Chart 6
Context Diagram 8
User Interface Designs 9
Storyboard 16
Data Flow Diagrams 17
Data Dictionaries 18
Structure Chart 19
System Flowchart 19
Part 3- Implementing the Solution 20
Algorithms 20
Source Code 27
User Interface Development 79
User Manual 87
Part 4- Testing and Maintaining the solution 87
Test Plan and Report 87
Maintenance Overview 88
Part 5- Social and Ethical Issues 88
Social and Ethical Issues Overview 88
Justification of Social and Ethical Issues in relation to Major Project 89
Documentation and Project work 89
Learning Journal 89
Project Work, Collaboration, Communication, Organisation and Effort 89
3. 2
Part 1- Defining and Understandingthe Problem
Problem Statement
At first thinking, I wanted to create a media player. But when I was watching the previous cricket test
matches Australia vs. New Zealand, I decided that I wanted to make a program a digital scorecard,
from new users to experienced users of scoring. My hypothetical client has asked me to design and
produce a functional program to take score of the cricket used from scoring books and other cricket
scoring programs to be used to score any type of format of game, from 20/20 to 1 day to test
match. The program will require for me to create a part of it where players can be created. What I
might find challenging is that the score must be placed as a total score, bowling score and batting
score which I may find difficult. My program will require different symbols for certain areas of the
program.
Overview of Software and Hardware
Hardware used will be the computer to be used in Visual Basic, with a computers at school and
computer at home, I will be able to work and back the files up on each computer if there's a
corrupted program, I am able to go back and used the last saved file to continue on from there.
CASE tools towards my project will be a driving factor. The data dictionary will help what is the type
and what it does, the system modelling will assist in the organisation of the program and where will
each particular part will be placed and what will each function do. The source code must be correct
with no errors by the end of the project with each sub in the program to be explained in what the
particular area does. Documenting the project through screenshots is one method I will be using
and also documenting my progress through Google Blogger blogging every week about my
progress and achievements of the week and what I'm having difficulties I may have throughout the
project. When tracking the errors, I will debug, using break point to see what the particular code is
doing at the runtime. Testing data will assist in what is being tested in the scorecard which will help
me to what section is doing what.
Discussion of Development Approach
Structured programming is a programming paradigm aimed at improving the clarity, quality, and
development time of a computer program by making extensive use of subroutines, block structures
and for and while loops. A third area sometimes targeted for improvement is organizational efficacy,
which involves the process of setting organizational goals and objectives. Performance improvement
at the operational or individual employee level usually involves processes such as statistical quality
control. Also called a decision, one of the three basic logic structures in computer programming. The
other two logic structures are sequence and loop. In a selection structure, a question is asked, and
depending on the answer, the program takes one of two courses of action, after which the program
moves on to the next event. As the strucured appraoch has been used to my project., my project has
gone back and forth, starting obviously at planning to design then implementing, maintaining. I had
to go back alot to rechange my diagrams and tables as some stuff in the project. The project takes
back and forth forcing you to make those key changes. This is only a prototype as I would like to do
this with plenty more time but a deadline is required. Compared to other projects mine is a cheap
budget compared to projects in large companies developing games, software etc. The larger the
project the more people working in the project. The prototype approach would be best suited as
another approach as it quick and not alot of documenting is required for the developer.
4. 3
Part 2- Planning and Designing the Solution
Gnatt Charts
Gnatt Chart Stage 1
7. 6
System Documentation Overview and Justification
The importance of having system documentation is to have a relative idea of how the program will
be set out. The design tools I have used for the project are the following: IPO Chart, Context
Diagram, User Interface designs, Data flow Diagram, Storyboards, Data Dictionairies, structure chart
and systems flowchart. These tools are important as these are the tools that keep you on track of the
project and always can be reffered to by seeing what must be what. For example in the IPO chart im
able to see what should be doing what. A button is clicked that would maybe load a form and the
output that its loads the form. This is on of the reasons why design tools are vital.
Design Tools
IPO Chart
Input Process Output
frmSplashScreen Load to Login form Loads login Form
Logging in Username and login details
Create new login details
If details not entered
Loads Main Menu form
Login details saved to fail
"Please create user and
password"
Btnexit Exiting the program Program closed
btnHelp Loads Help form Help form loads
Btncreategame Load creategame form Create game form Loaded
btnplayers Loads players form Players Form loaded
btnviewstats Loads view stats form View Stats Loaded
txtsearch Search "" team name
Search text box "" not typed ion
Displays teams with that name
"Please type in a teams game"
btnsearch Click btn search searching
criteria
Results displayed
btnviwall All results being displayed All gameresults displayed in
lstgames
Cmdsortdate Sorts date in ascending or
descending order
Date sorted in ascending or
descneding order
Btnback Main menu form loading
closing view games form
Main menu form open, view
games form closed
Ascending Click ascending putting results Results displayed in ascending
8. 7
in ascending order order
Descending Click descneding putting results
in descneding order
Results displayed in ascending
order
lstgames Results displayed in listbox Results displayed in listbox
Btnsubmit Submits player or game info to
file
Game or player info saved to
file
cmbtype Displays different player
characteristic
Loads palyer characteristic
cmbadt Displays domestic t20 sides Domestic t20 sides displayed
cmbipl Displays IPL teams IPL teams displayed
cmbit20 Displays International T20 sides International T20 sides
displayed
cmbiodi Displays International ODI sides International ODI sides
displayed
cmbtest Displays International Test sides International TEST sides
displayed
cmbgametype Select game type Game type selected
dtpdate Select date Date Selected
Cmbteams Select teams Teams selected
Cmbbestbatters Choose best batters Best batters chosen
cmbbestbowlers Choose best bowlers Best bowlers chosen
19. 18
Data Dictionaries
Data Item Data Type Format Description Example
Username String XXXNNN Given for user
deatails
Yallah
Password String XXXNNN Password for
extra security
purposes
Hommus
Date Floating Point yyyy-mm-dd 2016/09/09
Game Type String XXXNNN Type of format
played
T20
Team String XXXNNN Teams Selected
for game
Sydney Thunder,
Sydney Sixers
Best Batter String XXXNNN Best batter of
game
Michael Hussey
Best Bowler String XXXNNN Best bowler of
game
Jacques Kallis
Runs Integer 11111 Runs from best
batter
123
Bowling Figures Integer 22222 Best figures from
best bowler
3/20
Australian
Domestic team
String XXXNNN Team selected for
the player
Perath Scorchers
IPL Team String XXXNNN Team selected for
the player
Mumbai Indians
International T20
team
String XXXNNN Team selected for
the player
Australia T20
International ODI
team
String XXXNNN Team selected for
the player
Australia ODI
International
T20Test
String XXXNNN Team selected for
the player
Australia Test
USer deatils deatails Data written to
Login file when
new users login
Game Results Record Data written to
27. 26
Pseudocode
Search
Begin Linear Search
Let i = 1
Let Found It = false
Get Team NAme
WHILE FoundIt is false AND i <= number of names
IF Team(i) < > RequiredTeam THEN
i = i + 1
ELSE
Let FoundIt = true
ENDIF
ENDWHILE
IF FoundIt Not THEN
Display “Required Team Not found
SortDate
Begin SelectionSortDate
Let EndUnsorted = number of Dates in the array
WHILE EndUnsorted > 1
Let i = 1
Let Max = Date (i)
Let PosMax = i
WHILE i <= EndUnsorted
Increment i
IF Date (i) > Max THEN
Let Max = Date (i)
Let PosMax = i
28. 27
ENDIF
ENDWHILE
Swap (Date (PosMax), Date (EndUnsorted))
Decrement EndUnsorted
ENDWHILE
END SelectionSortDate
Source Code
Module1
Imports System.IO
Module Module1
Public Structure Login
Dim ID As Integer
Dim username As String
Dim password As String
End Structure
Public filepath As String = Application.StartupPath
Public arrlogin(0) As Login
Public Sub LoadLoginFile()
29. 28
'Dim oFile as System.IO.File
Dim oRead As System.IO.StreamReader
Dim LineIn As String
Dim id As Integer = 0
Dim tmp
oRead = File.OpenText(filepath & "Login.txt")
While oRead.Peek <> -1
LineIn = oRead.ReadLine()
If Mid(LineIn, 1, 1) <> "" Then
tmp = Split(LineIn, "|")
ReDim Preserve arrlogin(UBound(arrlogin) + 1)
arrlogin(CInt(tmp(0))).ID = tmp(0)
arrlogin(tmp(0)).username = tmp(1)
arrlogin(tmp(0)).password = tmp(2)
End If
End While
oRead.Close()
'Msgbox("File Loaded") 'stub
End Sub
Public Sub SaveLoginfile()
Dim sep As Char = "|"
Dim writeline As String = ""
For i = 0 To UBound(arrlogin)
If arrlogin(i).username <> "" Then
writeline &= arrlogin(i).ID & sep & arrlogin(i).username & sep &
arrlogin(i).password & vbCrLf
End If
Next
File.WriteAllText(filepath & "Login.txt", writeline)
End Sub
Public Sub CreateLogin(ByVal username As String, ByVal password As String)
'add current login details to login array
Dim NextID As Integer = FindNextLoginID()
arrlogin(NextID).ID = NextID
arrlogin(NextID).username = username
arrlogin(NextID).password = password
End Sub
Private Function FindNextLoginID() ' sets id for next record + 1
' sets id for next record + 1
Dim x As Integer = 0
For i = 0 To UBound(arrlogin)
If arrlogin(i).ID > x Then
x = arrlogin(i).ID
End If
Next
FindNextLoginID = x + 1
End Function
'Mod data for booking
Public Structure Players
Dim ID As Integer
Dim Name As String
Dim Surname As String
Dim Type As String
Dim AustralianDomesticTeam As String
Dim IPLTeam As String
Dim InternationalT20Team As String
Dim InternationalODITeam As String
Dim InternationalTestTeam As String
Dim BattingAverage As String
Dim BowlingAverage As String
End Structure
Public arrPlayers(0) As Players
30. 29
Public Sub LoadPlayersFile()
'Dim oFile as System.IO.File
Dim oRead As System.IO.StreamReader
Dim LineIn As String
Dim id As Integer = 0
Dim tmp
oRead = File.OpenText(filepath & "Players.txt")
While oRead.Peek <> -1
LineIn = oRead.ReadLine()
If Mid(LineIn, 1, 1) <> "" Then
tmp = Split(LineIn, "|")
ReDim Preserve arrPlayers(UBound(arrPlayers) + 1)
arrPlayers(CInt(tmp(0))).ID = tmp(0)
arrPlayers(tmp(0)).Name = tmp(1)
arrPlayers(tmp(0)).Surname = tmp(2)
arrPlayers(tmp(0)).Type = tmp(3)
arrPlayers(tmp(0)).AustralianDomesticTeam = tmp(4)
arrPlayers(tmp(0)).IPLTeam = tmp(5)
arrPlayers(tmp(0)).InternationalT20Team = tmp(6)
arrPlayers(tmp(0)).InternationalODITeam = tmp(7)
arrPlayers(tmp(0)).InternationalTestTeam = tmp(8)
arrPlayers(tmp(0)).BattingAverage = tmp(9)
arrPlayers(tmp(0)).BowlingAverage = tmp(10)
End If
End While
oRead.Close()
'Msgbox("File Loaded") 'stub
End Sub
Public Sub SavePlayersfile()
Dim sep As Char = "|"
Dim writeline As String = ""
For i = 0 To UBound(arrPlayers)
If arrPlayers(i).Name <> "" Then
writeline &= arrPlayers(i).ID & sep & arrPlayers(i).Name & sep &
arrPlayers(i).Surname & sep & arrPlayers(i).Type & sep & arrPlayers(i).AustralianDomesticTeam &
sep & arrPlayers(i).IPLTeam & sep & arrPlayers(i).InternationalT20Team & sep &
arrPlayers(i).InternationalODITeam & sep & arrPlayers(i).InternationalTestTeam & sep &
arrPlayers(i).BattingAverage & sep & arrPlayers(i).BowlingAverage & vbCrLf
End If
Next
File.WriteAllText(filepath & "Players.txt", writeline)
End Sub
Private Function FindNextPlayerID() ' sets id for next record + 1
' sets id for next record + 1
Dim x As Integer = 0
For i = 0 To UBound(arrPlayers)
If arrPlayers(i).ID > x Then
x = arrPlayers(i).ID
End If
Next
FindNextPlayerID = x + 1
End Function
Public Sub CreatePlayer(ByVal Name As String, ByVal Surname As String, ByVal Type As String,
ByVal AustralianDomesticTeam As String, ByVal IPLTeam As String, ByVal InternationalT20Team As
String, ByVal InternationalODITeam As String, ByVal InternationalTestTeam As String, ByVal
BattingAverage As String, ByVal BowlingAverage As String)
'add current Player details to Players array
Dim NextID As Integer = FindNextPlayerID()
arrPlayers(NextID).ID = NextID
arrPlayers(NextID).Name = Name
arrPlayers(NextID).Surname = Surname
arrPlayers(NextID).Type = Type
31. 30
arrPlayers(NextID).AustralianDomesticTeam = AustralianDomesticTeam
arrPlayers(NextID).IPLTeam = IPLTeam
arrPlayers(NextID).InternationalT20Team = InternationalT20Team
arrPlayers(NextID).InternationalODITeam = InternationalODITeam
arrPlayers(NextID).InternationalTestTeam = InternationalTestTeam
arrPlayers(NextID).BattingAverage = BattingAverage
arrPlayers(NextID).BowlingAverage = BowlingAverage
MsgBox("Player created", MsgBoxStyle.Information)
End Sub
Private Function FindNextIDPlayers() 'sets id for next record + 1
Dim x As Integer = 0
For i = 0 To UBound(arrPlayers)
If arrPlayers(i).ID > x Then
x = arrPlayers(i).ID
End If
Next
FindNextIDPlayers = x + 1
End Function
Public Structure Game
Dim ID As Integer
Dim DateGame As String
Dim Type As String
Dim Team1 As String
Dim Team2 As String
Dim Team1innings As String
Dim Bestbatting1 As String
Dim BattingRuns1 As String
Dim Bestbowling2 As String
Dim BowlingFigures2 As String
Dim Team2innings As String
Dim Bestbatting2 As String
Dim BattingRuns2 As String
Dim Bestbowling1 As String
Dim Bowlingfigures As String
End Structure
Public arrGames(0) As Game
Public Sub LoadGamesFile()
'Dim oFile as System.IO.File
Dim oRead As System.IO.StreamReader
Dim LineIn As String
Dim id As Integer = 0
Dim tmp
'
oRead = File.OpenText(filepath & "GameResult.txt")
While oRead.Peek <> -1
LineIn = oRead.ReadLine()
If Mid(LineIn, 1, 1) <> "" Then
tmp = Split(LineIn, "|")
ReDim Preserve arrGames(UBound(arrGames) + 1)
arrGames(CInt(tmp(0))).ID = tmp(0)
arrGames(CInt(tmp(0))).DateGame = tmp(1)
arrGames(CInt(tmp(0))).Type = tmp(2)
arrGames(CInt(tmp(0))).Team1 = tmp(3)
arrGames(CInt(tmp(0))).Team2 = tmp(4)
arrGames(CInt(tmp(0))).Team1innings = tmp(5)
arrGames(CInt(tmp(0))).Bestbatting1 = tmp(6)
arrGames(CInt(tmp(0))).BattingRuns1 = tmp(7)
arrGames(CInt(tmp(0))).Bestbowling2 = tmp(8)
arrGames(CInt(tmp(0))).BowlingFigures2 = tmp(9)
arrGames(CInt(tmp(0))).Team2innings = tmp(10)
arrGames(CInt(tmp(0))).Bestbatting2 = tmp(11)
arrGames(CInt(tmp(0))).BattingRuns2 = tmp(12)
32. 31
arrGames(CInt(tmp(0))).Bestbowling1 = tmp(13)
arrGames(CInt(tmp(0))).Bowlingfigures = tmp(14)
End If
End While
oRead.Close()
'Msgbox("File Loaded") 'stub
End Sub
Public Sub SaveGamesfile()
Dim sep As Char = "|"
Dim writeline As String = ""
For i = 0 To UBound(arrGames)
If arrGames(i).DateGame <> "" Then
writeline &= arrGames(i).ID & sep & arrGames(i).DateGame & sep & arrGames(i).Type
& sep & arrGames(i).Team1 & sep & arrGames(i).Team2 & sep & arrGames(i).Team1innings & sep &
arrGames(i).Bestbatting1 & sep & arrGames(i).BattingRuns1 & sep & arrGames(i).Bestbowling2 & sep
& arrGames(i).BowlingFigures2 & sep & arrGames(i).Team2innings & sep & arrGames(i).Bestbatting2 &
sep & arrGames(i).BattingRuns2 & sep & arrGames(i).Bestbowling1 & sep &
arrGames(i).BowlingFigures2 & vbCrLf
End If
Next
File.WriteAllText(filepath & "GameResult.txt", writeline)
End Sub
Private Function FindNextGameID() ' sets id for next record + 1
' sets id for next record + 1
Dim x As Integer = 0
For i = 0 To UBound(arrGames)
If arrGames(i).ID > x Then
x = arrGames(i).ID
End If
Next
FindNextGameID = x + 1
End Function
Public Sub CreateGame(ByVal DateGame As Date, ByVal Type As String, ByVal Team1 As String,
ByVal Team2 As String, ByVal Team1innings As String, ByVal Bestbatting1 As String, ByVal
BattingRuns1 As String, ByVal Bestbowling2 As String, ByVal BowlingFigures2 As String, ByVal
Team2innings As String, ByVal Bestbatting2 As String, ByVal BattingRuns2 As String, ByVal
Bestbowling1 As String, Bowlingfigures As String)
'add current result details to gameresult array
LoadGamesFile()
Dim NextID As Integer = FindNextGameID()
arrGames(NextID).ID = NextID
arrGames(NextID).DateGame = Format("yyyy-MM-d")
arrGames(NextID).Team1 = Team1
arrGames(NextID).Team2 = Team2
arrGames(NextID).Team1innings = Team1innings
arrGames(NextID).Bestbatting1 = Bestbatting1
arrGames(NextID).BattingRuns1 = BattingRuns1
arrGames(NextID).Bestbowling2 = Bestbowling2
arrGames(NextID).BowlingFigures2 = BowlingFigures2
arrGames(NextID).Team2innings = Team2innings
arrGames(NextID).Bestbatting2 = Bestbatting2
arrGames(NextID).BattingRuns2 = BattingRuns2
arrGames(NextID).Bestbowling1 = Bestbowling1
arrGames(NextID).Bowlingfigures = Bowlingfigures
MsgBox("Game created", MsgBoxStyle.Information)
End Sub
End Module
frmSplashScreen
33. 32
Public Class Splash
Dim SecondCount As Integer = 0
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
SecondCount = 0
Me.Timer1.Interval = 1 * 700
Me.Timer1.Enabled = True
End Sub
Private Sub Time1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
SecondCount += 1
If SecondCount = 3 Then
Me.Timer1.Enabled = False
Login.Show()
Me.Hide()
End If
End Sub
End Class
frmLogin
Public Class Login
Dim Uname As String
Dim Pass As String
Private Sub Login_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'Open logindata text file and read records into array
LoadLoginFile()
End Sub
Private Sub btnlogin_Click(sender As System.Object, e As System.EventArgs) Handles
btnlogin.Click
'Msgbox("go to login section")
Dim searchUname As String
Dim searchpassword As String
Dim found As Boolean = False
searchUname = txtuser.Text
searchpassword = txtpass.Text
If txtuser.Text = "" Then
MsgBox("Please enter a username")
Exit Sub
Else
For i = 0 To UBound(arrlogin)
If arrlogin(i).username = searchUname And arrlogin(i).password = searchpassword
Then
found = True
MsgBox("login successful")
Main_Menu.Show()
Me.Hide()
End If
Next
End If
If found = False Then
34. 33
MsgBox("Login unsuccessful")
txtuser.Text = ""
txtpass.Text = ""
Exit Sub
End If
End Sub
Private Sub btnexit_Click(sender As System.Object, e As System.EventArgs) Handles
btnexit.Click
End
End Sub
Private Sub btnhelp_Click(sender As System.Object, e As System.EventArgs) Handles
btnhelp.Click
Help.Show()
End Sub
Private Sub btnok_Click(sender As System.Object, e As System.EventArgs) Handles btnok.Click
If txtnewuser.Text = "" Then
MsgBox("You must ensure a new username is entered")
ElseIf txtnewpass.Text = txtnewpassconfirm.Text Then
CreateLogin(txtnewuser.Text, txtnewpass.Text)
SaveLoginfile()
grpnewuser.Visible = False
txtnewuser.Text = ""
txtnewpass.Text = ""
txtnewpassconfirm.Text = ""
MsgBox("New User created", MsgBoxStyle.Information)
Else
MsgBox("Please ensure passwords match")
txtnewpass.Text = ""
txtnewpassconfirm.Text = ""
grpnewuser.Visible = False
End If
End Sub
End Class
frmMainMenu
Public Class Main_Menu
Private Sub Main_Menu_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
End Sub
Private Sub btnexit_Click(sender As System.Object, e As System.EventArgs) Handles
btnexit.Click
End
End Sub
Private Sub btnhelp_Click(sender As System.Object, e As System.EventArgs) Handles
btnhelp.Click
Help.Show()
End Sub
Private Sub btncreategame_Click(sender As System.Object, e As System.EventArgs) Handles
btncreategame.Click
Game.Show()
Me.Hide()
End Sub
Private Sub btnplayers_Click(sender As System.Object, e As System.EventArgs) Handles
btnplayers.Click
CreatePlayers.Show()
Me.Hide()
End Sub
Private Sub btnviewstats_Click(sender As System.Object, e As System.EventArgs) Handles
btnviewstats.Click
35. 34
ViewGames.Show()
Me.Hide()
End Sub
End Class
frmCreatePlayers
Public Class CreatePlayers
Dim GivenName As String
Dim Surname As String
Dim Type As String
Dim AustralianDomesticTeam As String
Dim IPLTeam As String
Dim InternationalT20Team As String
Dim InternationalODITeam As String
Dim InternationalTestTeam As String
Dim BattingAverage As String
Dim BowlingAverage As String
Private Sub CreatePlayers_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
LoadPlayersFile()
End Sub
Private Sub btnsubmit_Click(sender As System.Object, e As System.EventArgs) Handles
btnsubmit.Click
CreatePlayer(txtsurname.Text, txtname.Text, cmbtype.Text, cmbadt.Text, cmbipl.Text,
cmbit20.Text, cmbiodi.Text, cmbtest.Text, txtbattingaverage.Text, txtbowlingaverage.Text)
SavePlayersfile()
Main_Menu.Show()
Me.Hide()
End Sub
Private Sub btnhelp_Click(sender As System.Object, e As System.EventArgs) Handles
btnhelp.Click
Help.Show()
End Sub
End Class
frmCreateGame
Public Class Game
Private Sub Game_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
LoadGamesFile()
cmbgametype.Items.Add("T20")
cmbgametype.Items.Add("ODI")
cmbgametype.Items.Add("Test")
End Sub
Private Sub btnsubmit_Click(sender As System.Object, e As System.EventArgs) Handles
btnsubmit.Click
CreateGame(dtpdate.Text, cmbgametype.Text, cmbteam1.Text, cmbteam2.Text,
txtbattingtotal1.Text, cmbbestbatter1.Text, txtbestbatterruns1.Text, cmbbestbowler2.Text,
txtbestbowlerfigure2.Text, txtbattingtotal2.Text, cmbbestbatter2.Text, txtbestbatterruns2.Text,
cmbbestbowler.Text, txtbestbowlingfigure1.Text)
SaveGamesfile()
Main_Menu.Show()
Me.Hide()
End Sub
Private Sub cmbgametype_SelectedIndexChanged(sender As Object, e As EventArgs) Handles
cmbgametype.SelectedIndexChanged