Public
Class
Form1
Private
wordGrid(4, 4)
As
String
flipLetter(4, 4)
reveal
answers(4, 4)
r
New
Random
game
Game
Enum
unset
[true]
[false]
End
Sub
Form1_Load(
ByVal
sender
System.
Object
,
e
System.EventArgs)
Handles
MyBase
.Load
For
x
Integer
= 1
To
10
dgvGrid.Columns.Add(
DataGridViewTextBoxColumn())
Next
dgvGrid.Rows.Add(10)
dgvGrid.Columns(x - 1).Width = dgvGrid.Rows(0).Height
dgvGrid.Size =
Size(dgvGrid.Rows(0).Height * 10 + 1, dgvGrid.Rows(0).Height * 10 + 1)
dgvGrid.
ReadOnly
=
True
dgvGrid.DefaultCellStyle.SelectionBackColor = Color.Transparent
= 0
4
y
flipLetter(x, y) = reveal.unset
dgvGrid.ClearSelection()
btnNewGame.PerformClick()
dgvGrid_CellClick(
System.Windows.Forms.DataGridViewCellEventArgs)
dgvGrid.CellClick
Dim
c
CInt
(Math.Floor(e.ColumnIndex / 2))
(Math.Floor(e.RowIndex / 2))
If
e.RowIndex / 2 > r
Then
flipLetter(c, r) = reveal.true
Else
flipLetter(c, r) = reveal.false
dgvGrid.Refresh()
dgvGrid_Paint(
System.Windows.Forms.PaintEventArgs)
dgvGrid.Paint
8
Step
2
= 2
e.Graphics.DrawLine(Pens.Black, dgvGrid.Rows(0).Height * x, dgvGrid.Rows(0).Height * y, dgvGrid.Rows(0).Height * (x + 2), dgvGrid.Rows(0).Height * (y - 2))
n
= dgvGrid.Rows(0).Height * 2
(chkCheckWords.Checked, answers(x, y), flipLetter(x, y)) = reveal.true
e.Graphics.FillPolygon(Brushes.Black,
Point() _
{
Point(x * n, y * n), _
Point((x + 1) * n, y * n), _
Point(x * n, (y + 1) * n)})
ElseIf
(chkCheckWords.Checked, answers(x, y), flipLetter(x, y)) = reveal.false
Point((x + 1) * n, (y + 1) * n), _
e.Graphics.FillRectangle(
SolidBrush(
Me
.BackColor),
Rectangle(n, n, n, n))
Rectangle(n * 3, n, n, n))
Rectangle(n, n * 3, n, n))
Rectangle(n * 3, n * 3, n, n))
e.Graphics.DrawLine(Pens.Black, dgvGrid.Rows(0).Height * x, 0, dgvGrid.Rows(0).Height * x, dgvGrid.Height)
e.Graphics.DrawLine(Pens.Black, 0, dgvGrid.Rows(0).Height * y, dgvGrid.Width, dgvGrid.Rows(0).Height * y)
btnNewGame_Click(
btnNewGame.Click
chkCheckWords.Checked =
False
wordGrid = game.createArray
offset
= r.
(0, 2)
answers(x, y) =
(offset = 0, reveal.false, reveal.true)
offset = 0
dgvGrid.Rows(y * 2).Cells(x * 2).Value = wordGrid(x, y)
dgvGrid.Rows(y * 2 + 1).Cells(x * 2 + 1).Value = Chr(65 + r.
(0, 26))
dgvGrid.Rows(y * 2).Cells(x * 2).Value = Chr(65 + r.
dgvGrid.Rows(y * 2 + 1).Cells(x * 2 + 1).Value = wordGrid(x, y)
chkCheckWords_CheckedChanged(
chkCheckWords.CheckedChanged
words()
()
words = My.Resources.words05.Split(
() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
Function
createArray()
(,)
Do
word
= words(r.
(0, words.Count))
wordGrid(x, y) = word(x).ToString
matches()
= words.Where(
(w) wordGrid(x, 0) = w(0).ToString
And
wordGrid(x, 2) = w(2).ToString
wordGrid(x, 4) = w(4).ToString).ToArray
matches.Count = 0
Continue
= matches(r.
(0, matches.Count))
wordGrid(x, y) = word(y).ToString
Exit
Loop
Return
wordGrid