Ristinolla

oyt

Tein ristinollan command-painikkeista joita kun klikkaa tulee X ja O. Miten saan että x ja o tulevat vuoronperään command-painikkeiden captioniin?

6

660

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Eno

      Vaihtoehtoja varmaan on satoja mutta tässä ekana mieleen tullut.

      Private Sub CommandButton1_Click()
      vaihda
      End Sub

      Function vaihda()
      If CommandButton1.Caption = "X" Then
      CommandButton1.Caption = "O"
      Else: CommandButton1.Caption = "X"
      End If
      End Function

    • -jk-

      Tee tyhjään formiin ensin command-button ja kopioi sitä sitten riittävä määrä control-arrayksi, niin tämä koodi tekee homman ja saat koulusta kympin.

      Dim Xy As Boolean
      Private Sub Form_Load()
      Xy = False
      End Sub

      Private Sub Command1_Click(Index As Integer)

      Dim Merkki As String
      If Trim(Command1(Index).Caption) "" Then
      MsgBox "Siinä on jo merkki", vbCritical, "Virhe"
      Exit Sub
      End If
      If Xy = False Then
      Merkki = "X"
      Else
      Merkki = "O"
      End If
      Command1(Index).Caption = Merkki
      Xy = Not Xy

      End Sub

    • Oyt

      Mitenkäs sen saa ilmoittamaan voitosta kun on 3 0 tai x peräkkäin?

      • periaatteessa...

        Siinä pitää vaan vertailla... Ja se tarkoittaa melkoista määrää ehtolauseita....

        Mielestäni yksi hyvä tapa voisi olla tehdä taulukko-muuttuja... Siihen tallennettaisiin kaikkien ruutujen tilanne.

        Ja sitten kun sen taulukon kohdat määrittelee tyyliin Taulu(X,Y), niin homma on periaatteessa yksinkertainen, jokainen koordinaatti käydään vain läpi kaksinkertaisella silmukalla... Vaikka näin:

        Do Until X = xx
        X = 1
        Do Until Y = yy
        Y = 1
        If Taulu(X,Y) = "X" Then
        If Taulu((X - 1), Y) = "X" And Taulu((X 1), Y)
        ....
        End If
        Loop
        Loop

        Tuohon tulee sitten melkoinen määrä eri variaatioita tuosta samasta ehtolauseesta... Tai suurinpiirtein noin minä ainakin lähtisin tuota ongelmaa purkamaan...

        JK. tuli tässä vaan mieleeni, että ehkäpä on helpointa etsiä rivejä keskikohdan mukaan, sillä jokainen ruutu käydään kuitenkin läpi, eikä siksi ole mitään mieltä tehdä suuria määriä ehtolauseita vain siksi että voisi tunnistaa rivin sen eri kohdista...


      • ehdotus

        Ai se olikin ihan alkutekijöissään tämä peli - tämä poikii aina kaikenlaista melenkiintoista.

        Mites jos napin merkinta X:llä tallentaa esimerkikis laskentataulukkoon tai muuttujaan arvon 1 ja O-merkintä tallentaa vastaavasti arvon 0.

        Sitten summataan pelialustan rivit kukin omaan muuttujaan, jonka jälkeen testataan noiden 8 muuttujan arvoa kutakin yksitellen, ja jos summa on...

        Eikös tämä ristinolla ole perinteinen kansanurheilulaji - että kuka lyhimmällä koodilla sen kasaa?


      • homma

        ...kuin heinänteko.

        Laitat vaan ne painallukset merkin mukaisesti taulukkoon kuten noissa aikaisemmissa viesteissä on mainittu.

        Sitten teet pikku proceduurin jossa on laskuri ja joka lukee viimeksi painetusta napista "pääilmansuuntiin" arvoja niin pitkälle kuin ne on samoja kuin viimeinen painallus. Jos laskuri kasvaa kahteen niin hommahan on siinä. Jos ei löydy kuin yksi samanlainen merkki vierestä niin sitten lasketaan vastakkaisten suuntien summa ja päätellään sen perusteella tuliko määrä täyteen.

        Kuten huomaat niin tämä toimii myös ristinollan johdannaisessa jossa pelialue on laajempi ja pitää saada viisi omaa merkkiä peräkkäin.

        Tein tuollaisen joskus vuonna "miekka ja kypärä" omatoimisena ohjelmoinnin harjoituksena ja voin vakuuttaa että hyvin pelitti.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tällä kertaa Marinia kadehtii Minäminä Päivärinta

      Kokoomuksen tyhjäntoimittelija itkeä tuhertaa, kun kansainvälinen superstaramme ei leiki hänen kanssaan. Oikean puoluee
      Maailman menoa
      410
      1646
    2. Minua itkettää tämä tilanne

      Meidän pitäisi jutella. Eikö niin? Miehelle.
      Ikävä
      105
      1318
    3. Miksi koulut pakottavat

      Lapset uimaan sekaryhmänä? Murrosikäiset tunnetusti häpeilevät vartalossa tapahtuvia muutoksia. Tulee turhia poissaoloja
      Maailman menoa
      117
      1255
    4. Miksi jollain jää "talvi päälle"

      Huvittaa kastoa ullkona jotain vahempaa äijää joka pukeutuu edelleen kun olisi +5 astetta lämmittä vaikka on helle keli
      Maailman menoa
      173
      1250
    5. Mitkä oli suurimmat

      Syyt mihin hänessä ihastuit alussa ja pikkuhiljaa tunteiden edetessä
      Ikävä
      44
      1007
    6. Minulla oli tunteita

      Tein itsestäni pellen. Sait hyvät naurut ja minä 💔
      Ikävä
      63
      916
    7. Susanne Päivärinta kirjassaan: Sannalla nousi valta päähän, Big Time!

      Päivärinta toteaa ettei ole nähnyt kenenkään muuttuvan niin totaalisesti kuin Marinin, eikä siis todellakaan parempaan s
      Maailman menoa
      92
      851
    8. Suomen Pallolitto: Tasoryhmät lasten jalkapallossa - Erätauko-tilaisuus ma 20.5.2024

      Tasoryhmät lasten ja nuorten jalkapallossa herättävät paljon keskustelua. Mitä tasoryhmät ovat ja mikä on niiden tarkoit
      Suomi24 Blogi ★
      0
      850
    9. Se katse silloin

      Oli hetki, jolloin katseemme kohtasivat. Oli talvi vielä. Kerta toisensa jälkeen palaan tuohon jaettuun katseeseen. Tunt
      Ikävä
      32
      846
    10. Tuhdit oluet kauppoihin. Miksi vastustaa?

      8% oluet kauppoihin mutta mikä siinä on että osa politikoista vstustaa ? Kauppa kuitenkin hinnoittelee vahvan oluen ni
      Maailman menoa
      194
      777
    Aihe