Oheinen ohjelma demoaa, miten tehdään ruutu-paperilta näyttävä peliruudukko esim risti-nolla pelejä varten. Itse peli on liian iso tähän laitettavaksi.
Grafiikka piirretään ensin bitmappiin ja lopuksi sijoitetaan pictureboxiin.
' --------------------------
' RISTINOLLA-PELIN RUUDUKKO
' --------------------------
Private A(24, 24) As Boolean ' ihmisen pelimerkit
Private B(24, 24) As Boolean ' koneen pelimerkit
Private bmpKuva As New Bitmap(376, 376)
Private grKuva As Graphics = Graphics.FromImage(bmpKuva)
Private koneX As Integer ' koneen viimeisin sijoitus X
Private koneY As Integer ' koneen viimeisin sijoitus Y
Private KoneOnYmpyrä As Boolean = True
Private Sub PiirraTilanne()
Dim X As Integer
Dim Y As Integer
'Putsaa
grKuva.Clear(Color.White)
'Piirrä pelimerkit
Dim redPen As New Pen(Color.Red, 3)
Dim blackPen As New Pen(Color.Black, 3)
For Y = 0 To 24
For X = 0 To 24
If Y = koneY And X = koneX Then ' koneen viimeisin merkki punaisella
If B(X, Y) Then KoneenMerkki(redPen, X, Y)
Else
If B(X, Y) Then KoneenMerkki(blackPen, X, Y)
End If
If A(X, Y) Then IhmisenMerkki(blackPen, X, Y)
Next
Next
'Piirrä ruudukko
For X = 0 To 25
grKuva.DrawLine(New Pen(Color.LightBlue), X * 15, 0, X * 15, 375)
grKuva.DrawLine(New Pen(Color.LightBlue), 0, X * 15, 375, X * 15)
Next
'Laita Kuva näkyviin laatikkoon
PictureBox1.Image = CType(bmpKuva, Bitmap)
End Sub
Private Sub KoneenMerkki(ByVal kynä As Pen, ByVal X1 As Integer, ByVal Y1 As Integer)
If KoneOnYmpyrä Then
grKuva.DrawEllipse(kynä, X1 * 15 + 3, Y1 * 15 + 12, +9, -9)
Else
grKuva.DrawLine(kynä, X1 * 15 + 3, Y1 * 15 + 3, X1 * 15 + 13, Y1 * 15 + 13)
grKuva.DrawLine(kynä, X1 * 15 + 3, Y1 * 15 + 12, X1 * 15 + 13, Y1 * 15 + 2)
End If
End Sub
Private Sub IhmisenMerkki(ByVal kynä As Pen, ByVal X1 As Integer, ByVal Y1 As Integer)
If Not KoneOnYmpyrä Then
grKuva.DrawEllipse(kynä, X1 * 15 + 3, Y1 * 15 + 12, +9, -9)
Else
grKuva.DrawLine(kynä, X1 * 15 + 3, Y1 * 15 + 3, X1 * 15 + 13, Y1 * 15 + 13)
grKuva.DrawLine(kynä, X1 * 15 + 3, Y1 * 15 + 12, X1 * 15 + 13, Y1 * 15 + 2)
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox1.Height = 376
PictureBox1.Width = 376
'vähän pelitilannetta
A(12, 11) = True
A(12, 10) = True
B(11, 9) = True
B(10, 9) = True
koneX = 10
koneY = 9
PiirraTilanne()
End SubAihe on jo aika vanha, joten et voi enää vastata siihen.