Programmet vælger selv et random array af disse 10 forskellige muligheder, mit spørgsmål er; Hvordan får jeg den til at tjekke om den har brugt et af array'ne? Forstået på den måde at når den f.eks. har taget OrdArrray(6).Ord = "Abe", så må den ikke længere bruge dette ord, før man genstarter programmet. Sådan man kan "gennemføre" programmet efter at have været igennem de 10 ord.
Lav et array af boolean med samme antal elementer. Når programmet starter - så sættes alle værdier til True. Når et ord er valgt - sættes værdien på samme plads i array2 til False. Når random vælger værdi - så vælges der igen, hvis tilsvarende plads i array2 er false.
excelent, jeg har valgt at sætte det op på den her måde: OrdVærdi = Round(Rnd() * 9, 0) 'If OrdVærdi ikke er i brugteordarray Then Form1.lblOrd.Caption = OrdArray(OrdVærdi).Ord txtIndtast.Text = "" If OrdArray(OrdVærdi).Billede <> "" Then pctBillede = LoadPicture(OrdArray(OrdVærdi).Billede) Else pctBillede.Picture = Nothing End If 'Else 'NytOrd 'End If
Det jeg ikke helt kan finde ud hvordan jeg skal omsætte til VB sprog er; "'If OrdVærdi ikke er i brugteordarray Then"
Min kode genererer de 10 tal i tilfældig orden tal(1) til tal(10) det er den variabel du skal bruge når du skal have vist dine billeder så lav fx. en for next løkke, hvor de vises efter tur
jeg har mere end svært ved at gennemskue dine array variabler virker de hos dig?
Ja altså programmet virker fint med at den tager et tilfældig tal.. Jeg kan ikke i din kode finde det sted hvor den sortere dem fra, sådan at når den har brugt tal(2), så må den ikke bruge den mere før man genstarter programmet.
Skal jeg prøve at poste hele min kode, så kan du se hvad jeg har skrevet indtil videre?
Public BrugteOrdArray As String Public I As Integer Private OrdVærdi As Integer Private Type TypeOrd Ord As String Billede As String Lyd As String Svar As Boolean Brugt As Boolean End Type
Private OrdArray(9) As TypeOrd
Private Sub cmdAfslut_Click() End End Sub
Private Sub cmdKontaktOs_Click() KontaktOs.Show End Sub
Private Sub cmdOk_Click() If LCase(txtIndtast) = LCase(lblOrd) Then MsgBox ("Flot :)") OrdArray(OrdVærdi).Brugt = True OrdArray(OrdVærdi).Svar = True NytOrd 'I = 0 'BrugteOrdArray(I) = LCase(txtIndtast) 'I = I + 1 Else MsgBox ("Synd :(") End If
End Sub
Private Sub cmdOmP_Click() OmProgrammet.Show End Sub
Private Sub NytOrd() OrdVærdi = Round(Rnd() * 9, 0) 'If OrdVærdi ikke er i brugteordarray Then <---- Det jeg skal have oversat til VB Dysleksi.lblOrd.Caption = OrdArray(OrdVærdi).Ord txtIndtast.Text = "" If OrdArray(OrdVærdi).Billede <> "" Then pctBillede = LoadPicture(OrdArray(OrdVærdi).Billede) Else pctBillede.Picture = Nothing End If 'Else 'NytOrd 'End If
End Sub
Private Sub txtIndtast_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then cmdOk_Click End If End Sub
Sub Bland() 'Genererer 1-10 i tilfældig orden subben kaldes i opstartsface Dim t, j, x, tt(10), tal(10)
For t = 1 To 10 tt(t) = t Next
For t = 1 To 10 om: x = Int(Rnd * 10) + 1 If tt(x) = "0" Then GoTo om For j = 1 To 10 If tt(j) = x Then tal(t) = tt(j) tt(j) = "0" End If Next Next
End Sub
og din vælger: Private Sub NytOrd() Dim ordtal OrdVærdi = tal(ordtal + 1): ordtal = ordtal + 1 Dysleksi.lblOrd.Caption = OrdArray(OrdVærdi).Ord txtIndtast.Text = "" If OrdArray(OrdVærdi).Billede <> "" Then pctBillede = LoadPicture(OrdArray(OrdVærdi).Billede) Else pctBillede.Picture = Nothing End If
Din blander, den tager bare et tilfældig tal mellem 1-10. Men gør den også sådan at når jeg har brugt f.eks. nummer 2, så kommer den ikke igen, før programmet genstartes?
Sådan når man har svaret på de 10 ord, så skal man genstarte programmet.
Dim Taeller as Single Public BrugteOrdArray As String Public I As Integer Private OrdVærdi As Integer Private Type TypeOrd Ord As String Billede As String Lyd As String Svar As Boolean Brugt As Boolean Vaerdi as Boolean End Type
Private OrdArray(9) As TypeOrd
Private Sub cmdAfslut_Click() End End Sub
Private Sub cmdKontaktOs_Click() KontaktOs.Show End Sub
Private Sub cmdOk_Click() If LCase(txtIndtast) = LCase(lblOrd) Then MsgBox ("Flot :)") OrdArray(OrdVærdi).Brugt = True OrdArray(OrdVærdi).Svar = True NytOrd 'I = 0 'BrugteOrdArray(I) = LCase(txtIndtast) 'I = I + 1 Else MsgBox ("Synd :(") End If
End Sub
Private Sub cmdOmP_Click() OmProgrammet.Show End Sub
Private Sub NytOrd() OrdVærdi = Round(Rnd() * 9, 0) If Ordarray(OrdVærdi).Vaerdi = false then Dysleksi.lblOrd.Caption = OrdArray(OrdVærdi).Ord txtIndtast.Text = "" If OrdArray(OrdVærdi).Billede <> "" Then pctBillede = LoadPicture(OrdArray(OrdVærdi).Billede) Else pctBillede.Picture = Nothing End If Ordarray(ordværdi).Vaerdi = true Else if Taeller > 9 then NytOrd Taeller = Taeller + 1 else Msgbox("Woov... Du har gennemført") End If
End Sub
Private Sub txtIndtast_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then cmdOk_Click End If End Sub
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.