/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Randomize
Fra : bsn


Dato : 03-12-03 15:07

Hej NG
Jeg sidder og nolrer lidt med et lille bankospil.
Jeg kan få udtrukket ca 2/3 af de 90 numre, men så kniber det med resten, og
jeg får ondt i enterfingeren.
Nogen som kan hjælpe...
Hilsen
Bjarne



 
 
Torben Frandsen (03-12-2003)
Kommentar
Fra : Torben Frandsen


Dato : 03-12-03 15:29

bsn wrote:

> Jeg sidder og nolrer lidt med et lille bankospil.
> Jeg kan få udtrukket ca 2/3 af de 90 numre, men så kniber det med
> resten, og jeg får ondt i enterfingeren.
> Nogen som kan hjælpe...

Jada! Lav en Timer som kalder din procedure ved hvert TickEvent!

Torben



bsn (03-12-2003)
Kommentar
Fra : bsn


Dato : 03-12-03 16:31


"Torben Frandsen" wrote:
>
> Jada! Lav en Timer som kalder din procedure ved hvert TickEvent!
Ja, nu får jeg da ikke ondt i fingeren mere, men den finder stadig kun 2/3,
har sat timeren til 1.
Som om den ikke kan finde flere, når den har fundet 2/3.
Bankovennerne kan jo ikke vente på at de sidste numre kommer.
Hvorfor er den så længe om at finde de sidste ???
Jeg skulle jo gerne have et nyt nummer, når jeg trykker på tasten.
Hilsen
Bjarne



silence (03-12-2003)
Kommentar
Fra : silence


Dato : 03-12-03 18:04

Det kan jo skyldes mange ting

Du må nok hoste op med lidt kode .....

Jensen


"bsn" <bsn_NoSpam_@oncable.dk> skrev i en meddelelse
news:3fce01a8$0$69905$edfadb0f@dread12.news.tele.dk...
>
> "Torben Frandsen" wrote:
> >
> > Jada! Lav en Timer som kalder din procedure ved hvert TickEvent!
> Ja, nu får jeg da ikke ondt i fingeren mere, men den finder stadig kun
2/3,
> har sat timeren til 1.
> Som om den ikke kan finde flere, når den har fundet 2/3.
> Bankovennerne kan jo ikke vente på at de sidste numre kommer.
> Hvorfor er den så længe om at finde de sidste ???
> Jeg skulle jo gerne have et nyt nummer, når jeg trykker på tasten.
> Hilsen
> Bjarne
>
>



bsn (03-12-2003)
Kommentar
Fra : bsn


Dato : 03-12-03 20:10


"silence" <taxakontoret@vip.cybercity.dk> skrev i en meddelelse
news:3fce1753$0$9780$edfadb0f@dread14.news.tele.dk...
> Det kan jo skyldes mange ting
>
> Du må nok hoste op med lidt kode .....
her er koden så:

ligger i en funktion
Randomize
Myvalue = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
--------------------------------------------------------
If InStr(1, (Opsaml), Tmp, vbTextCompare) Then

Bjarne



Harald Staff (03-12-2003)
Kommentar
Fra : Harald Staff


Dato : 03-12-03 21:26

"bsn" <bsn_NoSpam_@oncable.dk> wrote in message
news:3fce34f6$0$70004$edfadb0f@dread12.news.tele.dk...

> > Du må nok hoste op med lidt kode .....
> her er koden så:
>
> ligger i en funktion
> Randomize
> Myvalue = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
> --------------------------------------------------------
> If InStr(1, (Opsaml), Tmp, vbTextCompare) Then

Host lidt mer.

Beste hilsen Harald
Followup to newsgroup only please.




silence (03-12-2003)
Kommentar
Fra : silence


Dato : 03-12-03 21:40

har ikke lige VB i nærheden men ud af dem blå luft, så prøv noget i den her
retning:

Dim bankotal(1 To 90) As Boolean
-------------------------------------
Private Sub Command1_Click()
Randomize(timer)

Do
myvalue = Int((90 * Rnd) + 1)
Loop Until bankotal(myvalue) = False

bankotal(myvalue) = True
End Sub
--------------------------------------

Burde generere et "fri" nummer hver gang du trykker på command1 ?
det kan sikkert gøres smartere, men ovenstående burde virke...

Jensen

"bsn" <bsn_NoSpam_@oncable.dk> skrev i en meddelelse
news:3fcdee0a$0$69981$edfadb0f@dread12.news.tele.dk...
> Hej NG
> Jeg sidder og nolrer lidt med et lille bankospil.
> Jeg kan få udtrukket ca 2/3 af de 90 numre, men så kniber det med resten,
og
> jeg får ondt i enterfingeren.
> Nogen som kan hjælpe...
> Hilsen
> Bjarne
>
>



Jens Vestergaard (03-12-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 03-12-03 21:54

> "bsn" <bsn_NoSpam_@oncable.dk> skrev i en meddelelse
> news:3fcdee0a$0$69981$edfadb0f@dread12.news.tele.dk...
> > Hej NG
> > Jeg sidder og nolrer lidt med et lille bankospil.
> > Jeg kan få udtrukket ca 2/3 af de 90 numre, men så kniber det med
resten,
> og

Lavet sår'n lige uden noget videre omtanke:
Laver 90 forskellige numre og lister dem i Text1

Public Function TilfTal(fra As Integer, til As Integer) As Integer
Randomize
TilfTal = Int((til * Rnd) + fra)
End Function

Sub Command1_Click()
Dim used(90) As Boolean
Dim iCount As Integer
Dim iNr As Integer

Text1 = ""

For iCount = 1 To 90
Do
iNr = TilfTal(1, 90)
Loop Until used(iNr) = False
used(iNr) = True
Text1 = Text1 & vbCrLf & iCount & ": " & iNr
Next
End Sub

I teorien (?) risikerer man vel, at loopet aldrig returnerer - eller taget
meget lang tid - men det er også bare ment som inspiration...

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



Tomas Christiansen (03-12-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 03-12-03 22:57

bsn skrev:
> Jeg kan få udtrukket ca 2/3 af de 90 numre, men så kniber det med resten,
og
> jeg får ondt i enterfingeren.
> Nogen som kan hjælpe...

Først lige et par kommentarer.

Når man vil udtrække bankotal, og man gerne vil være sikker på ikke at
risikere at skulle sidde og vente (næsten) for evigt på at næste tal bliver
udtrukket, er det ikke smart at bruge en fremgangsmåde, som går på at man
finder et tilfældigt tal, og derefter checker om det skulle være blevet
udtrukket. Hvis tallene er _rigtigt_ tilfældige, kan der i princippet på
næsten uendelig lang tid før alle tal er udtrukket!

Det er meget smartere at starte med at lave en liste af de tal, som man skal
kunne udtrække, og så derefter pille tallene ud ét for ét. Nøjagtig som man
gør med de små banko-tal-brikker i posen. Man har altså også i
virkelighedens bankospil en "samling" (engelsk: collection) af brikker i
posen.

Hvorfor så ikke prøve at efterligne virkeligheden i VB, frem for at bruge en
metode som _ingen_ ville finde på at bruge i virkeligheden???

Men først lige en kommentar til brugen af Randomize!
Det er meningen at man bruger Randomize én gang i sit program, og så aldrig
mere. Der er ingen grund til at bruge den flere gange. Tallene bliver ikke
mere "tilfældige" af den grund!

Her er så mit bud (teksterne som udskrives undervejs kan ændres efter behov
og temperament).
Bemærk at der forventes at der er en Command1 og en Text1 på formen.

Option Explicit

Private Posen As Collection

Private Sub Command1_Click()
Dim Udtrukket As Long
If Posen.Count = 0 Then
Text1.Text = "Slut-prut-finale!"
MsgBox "Der er ikke flere tal!", vbCritical Or vbOKOnly, "Kvajpande"
Else
Udtrukket = Int(Posen.Count * Rnd + 1)
Text1.Text = Posen.Item(Udtrukket)
Posen.Remove Udtrukket
End If
End Sub

Private Sub Form_Load()
Dim Laveste As Long
Dim Højeste As Long
Dim Tæller As Long
Randomize
Set Posen = New Collection
Laveste = InputBox("Laveste tal", "Banko tal", "1")
Højeste = InputBox("Højeste tal", "Banko tal", "100")
For Tæller = Laveste To Højeste
Posen.Add Tæller
Next
End Sub

....og det var så hvad jeg havde valgt at ville vælge...

-------
Tomas


bsn (04-12-2003)
Kommentar
Fra : bsn


Dato : 04-12-03 10:10


"Tomas Christiansen" skrev
> Option Explicit
>
> Private Posen As Collection
>
> Private Sub Command1_Click()
> Dim Udtrukket As Long
> If Posen.Count = 0 Then
> Text1.Text = "Slut-prut-finale!"
> MsgBox "Der er ikke flere tal!", vbCritical Or vbOKOnly, "Kvajpande"
> Else
> Udtrukket = Int(Posen.Count * Rnd + 1)
> Text1.Text = Posen.Item(Udtrukket)
> Posen.Remove Udtrukket
> End If
> End Sub
>
> Private Sub Form_Load()
> Dim Laveste As Long
> Dim Højeste As Long
> Dim Tæller As Long
> Randomize
> Set Posen = New Collection
> Laveste = InputBox("Laveste tal", "Banko tal", "1")
> Højeste = InputBox("Højeste tal", "Banko tal", "100")
> For Tæller = Laveste To Højeste
> Posen.Add Tæller
> Next
> End Sub
Tak skal du have - teksterne har jeg ændret lidt )
Hilsen
Bjarne
"Man skal lære, så længe man lever..."



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408877
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste