Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB.NET: Peliruudukko

Sivun loppuun

tnb [02.02.2004 23:30:18]

#

Oheinen ohjelma demoaa ruutu-paperilta näyttävän peliruudukon tekoa. Itse peliohjelma ei ole mukana.

Grafiikka piirretään ensin bitmappiin ja sijoitetan lopuksi 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 Sub

TuGi [04.02.2004 14:46:36]

#

Nätti on.

TuGi [04.02.2004 14:48:20]

#

Oisko pelin koodia?

T.M. [04.02.2004 16:16:50]

#

Tee itse? ei ole vaikeaa koodata ristinollaa :P
Tekoäly on taas toinen asia...

remontti-reiska [05.02.2004 17:22:04]

#

No arpoo vain minne se pistää sen :).

Jan [06.02.2004 06:56:44]

#

tälläsiä lisää :)

nlampola [06.02.2004 17:27:08]

#

Ei se (hyvänkään) tekoälyn tekeminen oikeasti kovin vaikeaa ole, käy vain läpi koko taulukon, joka sisältää tiedot siitä mihin pelaaja tai tietokone on laittanut. Sitten vain samaan tyyliin kuin shakki-pelissä, eli eri paikkoihin pistämällä annetaan eri määrä pisteitä sille tietylle laitolle.

nlampola [06.02.2004 17:27:45]

#

Eli "simuloidaan" peliä eteenpäin :)

T.M. [09.02.2004 01:57:33]

#

Niin, eihän se vaikeaa ole, mutta kun niitä iffejä tulee satoja, niin sitten menee jo itsekin sekaisin mitä taktiikoita on tehty ja mitä ei, ja täten myös bugeja alkaa löytyä vino pino :)

http://mbnet.fi/winuus/ristinolla.php
Tossakin on muutama kymmentä if-lausetta... :D

Jos tehtäisiin ristinolla jossa voittaa viidellä suoralla, niin eri taktiikoiden laskemiseen menee jo vähän enemmän iffejä sun muita lauseita

tnb [10.02.2004 19:45:48]

#

Valmiin vb.net "Reversi" pelin voi ladata tästä sourcena, myös exe löytyy paketista. Travitsee tietysti .net Frameworking.

http://koti.mbnet.fi/nordta/Reversi/Peliruudukko.zip

mamaze [12.02.2004 17:08:06]

#

öö...oonkos mää nyt ihan tavi kun en tuotakaan saanut toimimaan?

tnb [15.02.2004 16:08:13]

#

Tässä jätkänshakki, sisältää vb.net sorsat. Tarvitset tietysti .net Framework'n.

http://koti.mbnet.fi/nordta/Five_a_Row/Five_a_Row.htm


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta