07. maj 2003 - 17:51Der er
15 kommentarer og 2 løsninger
Tilfældig tal fra .txt fil
Jeg har lidt problemer med at få VB til at åbne en fil og vise en tilfældig linie fra filen i en tekst box.
Jeg er ved at lave en Poker spille maskine som projekt på HTX, men jeg fatter ikke en pind af hvad min lære forklare mig, så jeg håber i kan hjælpe mig.
Bonusspørgsmål: hvordan får man programmet til at se vpk fra et af tallene. Jeg skal have den til at tjekke de forskellige kombinationer, der er: f.eks. Hjerter Knægt = a11 Klør konge = b13 osv. men når programmet skal finde ud af hvad for nogle kombinationer der skal give point skal den kun tænke på tallene ikke på bogstaverne, de er kun med så man kan se forskel på de forskellige kort.
I skal vist lige have læreren til at forklare jer hvordan man bruger reference-"manualer". ;-)
Først bonus'en: Du kan kigge på en den af en streng, med fx KortTal=mid(Strengen,2,2) - Hent fra position 2 og 2 frem.
Eller KortTal=right(Strengen,2) - De to sidste tegn i strengen.
For at hente en tilfældig linie, er du nødt til at vide hvor mange linier der er. Så reelt skal du læse hele filen ind. (hvis alle linier er samme længde, kan man dog regne sig frem til det) Så læs hele filen ind i fx et array, kig på hvor mange linier du har hentet, og vælg en tilfældig. Hvis det er en meget stor fil, kan det blive nødvendigt at benytte en anden metode.
Dim data() AntalLinier = 0 Open "c:\dokuments....\filnavn.txt" for input as #1 While Not EOF(1) ReDim Preserve data(AntalLinier + 1) Line Input #1, data(AntalLinier) AntalLinier = AntalLinier + 1 Wend Close #1 Randomize RandomLinie = data(Int(AntalLinier * Rnd))
Der er jo 52 kort, så jeg mener det vil kræve rimeligt meget arbejde at skrive det hele ind i kode linien, men du kender nok nogle tricks jeg ikke gør :D
men hvordan gemmer den så de forskellige linier fra filen, og hvordan vælger man en tilfældig derfra og viser den i en tekstboks???
Jeg har ikke ret meget styr på det kan du nok høre :-)
Du behøver jo ikke gemme de 52 kort. (jeg troede det var til en slags velkomst-hilsen, der skulle være forskellig fra gang til gang).
Når du skal udtrække et kort, skal du tænke på det som én stor bunke, hvor 0-12 er hjerter, 13-25 er spar, 26-38 er ruder og 39-51 klør. (Jeg trækker en fra, da det så er nemmere at regne med)
Et lille program med én formular og en textbox: Dim KortFarver(4) As String Dim KortVaerdier(13) As String
Private Sub Form_Click()
' Et tilfældigt kort: Kortet = Int(Rnd * 52) KortVaerdi = (Kortet Mod 13) KortFarve = Kortet \ 13
KortVaerdier(0) = "ES" For i = 1 To 8 KortVaerdier(i) = CStr(i + 1) Next i KortVaerdier(10) = "Knægt" KortVaerdier(11) = "Dame" KortVaerdier(12) = "Konge"
Jeg mangler bare lige at finde ud af hvordan man skriver "ikke lig med" der må være et tegn for det. (Lyden af mig der kigger mine kopier igennem) jeg kan bare ikke lige finde den der er sikkert en der ved det :D
Det er det sidste jeg skal have at vide så kan jeg godt finde ud af resten :D
Doh havde ikke lige helt ret i jeg kunne finde ud af resten selv :[ hvordan får man deen til at tjekke kun værdien og ikke alt der står i boksen??? (der kommer jo aldrig 2 ens kort) :D
OK men skal lige have min computer op og stå først, den er lige gået i stykker :(
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.