Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Data Imports System.Drawing Imports System.Text Imports System.Windows.Forms Namespace Queens End Namespace 'Queens _ Class Queens Inherits Form ' 'ToDo: Error processing original source shown below ' ' '------------^--- 'class', 'struct', 'interface' or 'delegate' expected ' 'ToDo: Error processing original source shown below ' ' '--------------------^--- Syntax error: ';' expected Public buttons(8, 8) As Button 'this is the multidimensional 'array of buttons that the user can click on (either white/black) Public lastMove As Point 'this is the location of the last move the user makes. Public queenCount As Integer = 0 Public openSquares As Integer = 64 '//End Globals//// 'The two Bitmap variables below are the images of the knights. Knight.png is ' * the image that appears in a regular white button thats clicked. Knightblack ' * is the image that appears in a black square. This was necessery because ' * I had problems getting the software to accept the transparent backround. Private queenWhite As New Bitmap(GetType(Queens), "QueenWhite.png") Private queenBlack As New Bitmap(GetType(Queens), "QueenBlack.png") Private dotWhite As New Bitmap(GetType(Queens), "DotWhite.png") Private dotBlack As New Bitmap(GetType(Queens), "DotBlack.png") Private firstMove As Boolean = True 'this bool value stays true until the user clicks button Private counter As Double = 0.0 'value that stores the percentage the user has completed Public Sub New() InitializeComponent() 'loads the form Dim i As Integer For i = 0 To 7 'This for loop creates each of the buttons in the grid and then fills ' * in their properties. Including name, width, height, location and ' * their backround colour Dim j As Integer For j = 0 To 7 ' create each of the buttons buttons(i, j) = New Button() ' initialize each button here buttons(i, j).Name = "b" +(i * 100 + j).ToString() 'button name buttons(i, j).Width = 50 'sets button width buttons(i, j).Height = 50 'sets button height buttons(i, j).Location = New Point(i * 50, j * 50) 'sets location ' adds the click event handler AddHandler buttons(i, j).Click, AddressOf ButtonClick 'if button is 'clicked then go to the function ButtonClick(). 'the if/else statement below creates a chessboard pattern by 'painting alternate squares white and black. If(i + j) Mod 2 = 0 Then 'if i + j equals an even number buttons(i, j).BackColor = Color.Black 'sets backround colour 'if i + j equals an odd number Else buttons(i, j).BackColor = Color.White 'sets backround colour End If ' add the button controls to the form Me.Controls.Add(buttons(i, j)) 'adds the button to the form Next j Next i Invalidate() End Sub 'New Private Sub ButtonClick(sender As Object, e As EventArgs) Dim b As Button = CType(sender, Button) 'determines which button was clicked Dim x As Integer = Convert.ToInt32(b.Name.TrimStart("b"c)) / 100 'gets the position (horizontal) Dim y As Integer = Convert.ToInt32(b.Name.TrimStart("b"c)) Mod 100 ' gets the position (verticle) If Not (buttons(x, y).Image Is Nothing) Then MessageBox.Show("This Spot Is Already Taken...", "Error:") Return End If Dim i As Integer For i = 0 To 7 '////PRINTS//VERTICAL//LINES////// If(x + i) Mod 2 = 0 Then buttons(x, i).Image = dotBlack Else buttons(x, i).Image = dotWhite End If '////PRINTS//HORIZONTAL//LINES///// If(i + y) Mod 2 = 0 Then buttons(i, y).Image = dotBlack Else buttons(i, y).Image = dotWhite End If '////PRINTS//DIAGONAL//LINES////// 'The following if statements basically just draw all your ' * diagonal lines. The reason I used several if statements is ' * because the diagonal line has to be drawn in 4 different ' * directions. If x + i < 8 And y + i < 8 Then 'this if statement draws diagonal lines up and to the right If buttons(x + i, y + i).BackColor = Color.Black Then buttons(x + i, y + i).Image = dotBlack Else buttons(x + i, y + i).Image = dotWhite End If End If If x - i >= 0 And y - i >= 0 Then 'this if statement draws diagonal lines down and left If buttons(x - i, y - i).BackColor = Color.Black Then buttons(x - i, y - i).Image = dotBlack Else buttons(x - i, y - i).Image = dotWhite End If End If If x + i >= 0 And y - i >= 0 And x + i < 8 And y - i < 8 Then 'this one draws them up and to the left. If buttons(x + i, y - i).BackColor = Color.Black Then buttons(x + i, y - i).Image = dotBlack Else buttons(x + i, y - i).Image = dotWhite End If End If If x - i >= 0 And y + i >= 0 And x - i < 8 And y + i < 8 Then 'this one draws them down and to the right If buttons(x - i, y + i).BackColor = Color.Black Then buttons(x - i, y + i).Image = dotBlack Else buttons(x - i, y + i).Image = dotWhite End If End If Next i '///////SETS QUEEN IMAGE////////// If(x + y) Mod 2 = 0 Then 'if x + y equals an even number b.Image = queenBlack 'black image of queen is used (blacksquare) 'if x + y equals an odd number Else b.Image = queenWhite 'white image of queen is used (whitesquare) End If queenCount += 1 'increases number of queens that have been played openSquares = 0 'resets the number of open squares to 0. Dim h As Integer For h = 0 To 7 'this simple for loop counts up how many availible squares the 'usr has. If there are no images it counts it as an open square 'and then increments the interger value. Dim j As Integer For j = 0 To 7 If buttons(h, j).Image Is Nothing Then 'if no image openSquares += 1 'increments count End If 'end for Next j labelCount.Text = "Queens: " + queenCount + " || Open Squares: " + openSquares 'updates display Invalidate() 'updates form Next h 'end for If openSquares = 0 Then 'if there are no free squares then display a message telling user 'they won. MessageBox.Show("Good Job You Completed The Game Using Only: " + queenCount.ToString() + " Queens!", "Game Over...") NewGame() 'send to form => newgame End If 'end if End Sub 'ButtonClick 'end buttonClick() Private Sub exitToolStripMenuItem_Click(sender As Object, e As EventArgs) 'When user wants to click File>Exit Me.Dispose() 'shuts down form and ends all processes End Sub 'exitToolStripMenuItem_Click 'end exitToolStrip Private Sub aboutToolStripMenuItem_Click(sender As Object, e As EventArgs) 'displays a form telling the user about the program Dim about As New aboutForm() 'aboutForm is aboutForm.cs about.ShowDialog() 'displays the form End Sub 'aboutToolStripMenuItem_Click 'end Private Sub instructionsToolStripMenuItem_Click(sender As Object, e As EventArgs) 'displays a form telling the user how to use the program Dim instructions As New instructForm() 'instructForm.cs instructions.ShowDialog() 'displays instructions End Sub 'instructionsToolStripMenuItem_Click 'end Private Sub newGameToolStripMenuItem_Click(sender As Object, e As EventArgs) NewGame() 'calls newGame function MessageBox.Show("New Game Started", "Notice...") 'notifies usr :( End Sub 'newGameToolStripMenuItem_Click 'end newGameToolStrip() Private Sub NewGame() 'this function resets the form to it's original state. Dim form As New Form() 'creates a new form Me.Hide() 'hides the current form form = New Queens() 'sets new form equal to current form.Show() 'shows the new form End Sub 'NewGame 'end NewGame() End Class 'Queens 'end public Queens ' 'ToDo: Error processing original source shown below ' ' '-^--- expression expected 'end namespace