Potti.textistä pitäisi saada (rahat) omiin rahoihin tai vastustajan
Eli mä oon nyt kirjottanu semmosta jänää peliä missä nyt ollaa kasinossa. Potti.textistä pitäis saada luvut siirrettyy omatr.text tai vastr.text oon yrittäny
Potti.Text = Potti.Text - Potti vastr.Text = vastr.Text + Potti
Potti.Text = Potti.Text - Potti omatr.Text = omatr.Text + Potti
Mut ei onnistu kiitos etukäteen
Näin tekisin itse:
Dim SaatuSumma Dim OmaSumma SaatuSumma = Potti.text OmaSumma = omatr.text OmaSumma = Omasumma + SaatuSumma
Ja muistithan asettaa aluksi textboxin textiksi 0? ;)
ilman sitä ei homma pelaa.
>>Harrastelija>>
Hei "aloitteleva"...kokeile seuraavaa juttua...
'ekaks moduuliin vaikkapa näin.. Global Potti As Variant, pelaaja As Integer, panos As Variant, orahat As Variant, vrahat As Variant 'ja sit aliohjelmat... Private Sub Satsaus_aliohjelma 'Potti kasvaa... Select Case pelaaja Case 0: 'omat rahat vähenee orahat = orahat - panos: omatr.Text = Str$(orahat) Case 1: 'vastustajan rahat vähenee vrahat = vrahat - panos: vastr.Text = Str$(vrahat) End Select Potti = Potti + panos: Potti.Text = Str$(Potti) End Sub Private Sub Voitto_aliohjelma 'Potti tyhjenee... Select Case pelaaja Case 0 'jos voittaa itse orahat = orahat + Potti: Potti = 0: omatr.Text = Str$(orahat) Case 1 'jos vatustaja voitaa vrahat = vrahat + Potti: Potti = 0: vastr.Text = Str$(vrahat) End Select Potti.Text = "" End Sub
Potti.Text = Potti.Text - Potti omatr.Text = omatr.Text + Potti
tekee saman asian kuin
Dim SaatuSumma Dim OmaSumma SaatuSumma = Potti.text OmaSumma = omatr.text OmaSumma = Omasumma + SaatuSumma
ja nea toi sunkaan ei toiminu niinku piti
Mutta kumpikohan on selkeämpää; pitää noita summia omissa muuttujissaan vaiko tekstikenttien teksteissä ;)
Lisäksi olisi kiva tietää, että miten ei toimi?
aloitteleva kirjoitti:
Potti.textistä pitäis saada luvut siirrettyy omatr.text tai vastr.text oon yrittäny
Mikäli nyt oikein käsitin, niin
omatr.Text = Potti.Text vastr.Text = Potti.Text
Toimii... kunhan muistat kutsua aliohjelmia oikeaan aikaan, oikeassa paikassa ja annat jossain tapahtumassa arvot muuttujille: panos ja pelaaja sekä jonkin alkusumman molemmille (kaikille) pelaajille vaikkapa Form_Load tapahtuman yhteydessä... Eli siis testaa homma uudestaan vaikkapa seuraavasti: Avaat uuden Projektin ja lisäät siihen moduulin jonka Declarations osaan leikkaat ja liität tosta mun aikasemmasta laatikosta sen koko rivin, joka alkaa sanalla Global. Sen jälkeen tuplaklikkaat sitä Form1:stä ja sit leikkaat kaikki ne loput rivit siitä mun edellisestä laatikosta alkaen riviltä, jossa lukee ensimmäisen kerran Private... ja liität sen sinne Formiin johonkin kohtaan missä lukee End Sub alapuolelle. Sit seuraavaks lisäät Form_Load tapahtumaan seuraavan rivin:
Private Sub Form_Load() orahat = 100: vrahat = 100 'alkaa tästä End Sub
Sit sä ootkin jo laittanut sinne ne ne kolme TextBox'ia joiden name- arvoiksi sä oot laittanut Potti, omatr ja vastr. Sit sä voit vielä laittaa yhden TextBox'in lisää vaikkapa Text1. Sit laita sen TextBox'in Change tapahtumaan seuraava rivi:
Private Sub Text1_Change() panos = Val(Text1.Text) 'alkaa tästä End Sub
Sit sä ihan kylmästi laitat sinne formiin yhden napin, vaikkapa "Command1" ja pistät sen napin MouseUp tapahtumaan seuraavat rivit:
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) if pelaaja = 0 Then 'alkaa tästä pelaaja = 1:Satsaus_aliohjelma: Exit Sub Else: Peleaaja = 0: Satsaus_aliohjelma: Exit Sub End if 'loppuu tähän End Sub
Sit sä ihan kylmästi laitat sinne formiin toisen napin, vaikkapa "Command2" ja pistät sen napin MouseUp tapahtumaan seuraavat rivit
Private Sub Command2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) if pelaaja = 0 Then 'alkaa tästä pelaaja = 1:Voitto_aliohjelma: Exit Sub Else: Peleaaja = 0: Voitto_aliohjelma: Exit Sub End if 'loppuu tähän End Sub
Sit kun sä ajat sitä testausohjelmaa niin kirjota siihen Text1 box'iin joku luku esim. 10 ja painele niitä kahta nappia ja kato mitä tapahtuu
Näin itse tekisin, pari tarkistusta mukana eli periaate:
Kun haluamme pelata, tarkistetaan rahatilanne.
Jos meillä on varaa, pelaamme, jos ei ole, meidät viskotaan veke, pelierän jälkeen tarkistetaan taas rahat.
Dim potti_luku As Integer, omatrahat As Integer 'tarvitaan pari muuttujaa, potin oma luku sekä omatrahat Private Sub Command1_Click() onkorahaa 'mennään tarkistamaan onko meillä rahaa enään pelaamista varten pelaas 'hypätään aliohjelmaan End Sub Private Sub Form_Load() Randomize Timer 'alustetaan randomimimimimimi omatrahat = 0 'meidän rahat onkorahaa 'tarkistetaan voidaanko ylipäätänsä pelata enään End Sub Sub pelaas() 'randomilla joku potti vain potti_luku = Int(Rnd * 100) - 80 'eli -50 ... +50 -väliltä jotain randomilla potti.Text = potti_luku 'tulostetaan luku If potti_luku > 0 Then 'arvo on enemmän kuin nolla potti.Text = potti.Text & ". plussalle men" 'näytetään miten kävi (meni plussan puolelle) ElseIf potti_luku < 0 Then 'arvo on vähemmän kuin nolla potti.Text = potti.Text & ". miinuksel men" 'näytetään miten kävi (miinukselle meni) Else 'jos ei muutakaan niin... potti.Text = potti.Text & ". et hävinyt, etkä voittanut" 'näytetään miten kävi (tuli nolla) End If omatrahat = omatrahat + potti_luku 'lisätään muuttujaan voitettu/hävitty summa. ja jos meni miinukselle silloin negatiivinen luku plussataan päälle, eli meidän potista miinustetaan se tietty määrä omatr.Text = omatrahat 'näytetään nykyinen tilanne onkorahaa 'mennään tarkistamaan onko meillä rahaa enään, pelin jälkeen End Sub Function onkorahaa() If omatrahat <= 0 Then 'jos rahaa ei ole enään, ehto toteutuu MsgBox "sulta on rahat loppu, et voi pelata!" 'huudellaas vähän End 'lopetamme itsemme End If End Function
En nytten tiedä oliko tuo nytten se mitä hait, mutta ainaskin ajaa asiansa.
Jos tulee ongelmia, kerro missä ja miten, mitä herjaa jne...
Eli siis nomic toikaa ei ollu se mitä hain oon ite ton jo koodannu mutku mul on omissa rahoissa 50 ja vastustajalla on 50 sitteki painan nappulaa pottiin menee rahaa sitteki peli on pelattu niin se laittaa näil koodeil iha miljoonii rahoihin
Potti.Text = Potti.Text - Potti vastr.Text = vastr.Text + Potti Potti.Text = Potti.Text - Potti omatr.Text = omatr.Text + Potti
semmosta hain
Hei aloitteleva!
Eiks se oo ihan hyvä juttu ainakin jos tulee omiin rahoihin miljoonii koko ajan ja varsinkin sitten, kun peli on pelattu...
Dim koko_potti As Integer, mun_rahat As Integer, vastustajan_rahat As Integer Dim vastustajan_rahat_pottiin As Integer, mun_rahat_pottiin As Integer 'pottiin laitettavat rahat Private Sub Command1_Click() mun_rahat = mun_rahat - mun_rahat_pottiin 'nää nyt tulee pottiin, eli miinustetaan sen verran kuin pottiin pistetään vastustajan_rahat = vastustajan_rahat - vastustajan_rahat_pottiin koko_potti = vastustajan_rahat_pottiin + mun_rahat_pottiin 'laitetaan pottiin tietty määrä rahaa, joka tässä tapauksessa on kummaltakin 50, eli 100 yhteensä potti.Text = koko_potti 'näytetään koko roska randomi = Int(Rnd * 2) MsgBox koko_potti If randomi = 0 Then 'voitettiin MsgBox "voitettiin!" mun_rahat = mun_rahat + koko_potti 'saatiin kaikki rahat tottakai 'vastustajan_rahat = vastustajan_rahat - vastustajan_rahat_pottiin 'vastustaja joutuu luopumaan, rahasta jotka laittoi pottiin Else MsgBox "hävittiin :(((((((((((!" 'eli ei saada mitään takaisin, pelkästään vihu saa rahaa, meidän ei enään tarvii maksaa mitään kun se tehtiin jo aikaisemmin, kun tungettiin rahaa pottiin vastustajan_rahat = vastustajan_rahat + koko_potti End If kokopotti = 0 Form1.Caption = "tilanne: meillä on rahaa: " & mun_rahat & ". ja vihulla on rahaa: " & vastustajan_rahat End Sub Private Sub Form_Load() mun_rahat = 50 vastustajan_rahat = 50 mun_rahat_pottiin = 10 'annetaan jänskät arvot vastustajan_rahat_pottiin = 10 End Sub
olisikohan toi lähempänä sitä mitä haet? oon sen verran väsynyt että koodi on mitä on ja virheitä varmaankin on seassa.
Hei aloitteleva!
alla olevalla koodilla voitat varmasti joka kerta, mutta jos selvität miten antaa vastustajankin voitaa aina silloin tällöin, niin olet ainakin hieman alkua pidemmällä
'Moduuliin Global Potti As Variant, panos As Variant, orahat As Variant, vrahat As Variant, pelaaja As Integer 'Tapahtumiin Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If pelaaja = 0 Then pelaaja = 1: Satsaus_aliohjelma: Exit Sub ElseIf pelaaja = 1 Then pelaaja = 0: Satsaus_aliohjelma: Exit Sub End If End Sub Private Sub Command2_Click() Voitto_aliohjelma End Sub Private Sub Form_Load() orahat = 100: vrahat = 100: Potti = 0 End Sub Private Sub Text1_Change() panos = Val(Text1.Text) End Sub 'aliohjelmat Private Sub Satsaus_aliohjelma() 'Potti kasvaa... Select Case pelaaja Case 0: 'omat rahat vähenee orahat = orahat - panos: omatr.Text = Str$(orahat) Case 1: 'vastustajan rahat vähenee vrahat = vrahat - panos: vastr.Text = Str$(vrahat) End Select Potti = Potti + panos: panos = 0: Text1.Text = "0": Potti.Text = Str$(Potti) End Sub Private Sub Voitto_aliohjelma() 'Potti tyhjenee... Select Case pelaaja Case 0 'jos voittaa itse orahat = orahat + Potti: Potti = 0: omatr.Text = Str$(orahat) Case 1 'jos vatustaja voitaa vrahat = vrahat + Potti: Potti = 0: vastr.Text = Str$(vrahat) End Select Potti.Text = "0" End Sub
neau33 kirjoitti:
Hei aloitteleva!
Eiks se oo ihan hyvä juttu ainakin jos tulee omiin rahoihin miljoonii koko ajan ja varsinkin sitten, kun peli on pelattu...
mutta ehkä se ei ole Aloittelevan tarkoitus.. ;)
Joo, mulla oli sama ongelma kun yritin tehdä maalinmyyntipeliä. Eli siinä myytiin maalipurkkeja ja jos oli hyvä ilma niin meni enemmän jne.. ja voitot kasattiin sitten omaan taskuun.
Muistaakseni ratkaisin sen vaihtamalla textboxit labeleihin.
>>Harrastelija>>
Aihe on jo aika vanha, joten et voi enää vastata siihen.