names
배열에서 임의의 문자열을 얻고 그것을 정수 배열로 선언 된 numbers
에 할당하려고합니다. 물론 이것은 효과가 없을 것입니다.
외에도 에릭 (Eric)이 지적한 바와 같이 범위를 벗어나는 색인에도 문제가 있습니다.
의견에 대 한 응답에서 편집 :
그냥 문자열, 같은 방법으로 결과를 저장하는 배열을 선언 할 필요가 발생하는 무작위로 생성 슬롯 머신의 텍스트 값을 얻으려면 names
선언으로 .
별도의 절차에서 결과를 얻으려면이 값을 문자열을 반환 할 수있는 절차 인 Sub
에서 Function
으로 변경해야합니다. 그런 다음 Main
또는 다른 프로 시저에서이 함수를 호출하고 반환 된 값을 변수에 저장할 수 있습니다.
또한 랜덤 결과 생성 부분을 수정했습니다.
Module SlotMachine
Sub Main()
Dim slotResults As String()
'Get the results
slotResults = GenerateResults()
'Some further processing of results here, e.g. print results to console
For Each item In slotResults
Console.WriteLine(item)
Next
'Wait for keypress before closing the console window
Console.ReadLine()
End Sub
'Generates random results
Function GenerateResults() As String()
Dim results(2) As String
Dim names(5) As String
Dim x As Integer
names(0) = "Cherries"
names(1) = "Oranges"
names(2) = "Plums"
names(3) = "Bells"
names(4) = "Melons"
names(5) = "Bar"
Randomize()
For x = 0 To 2
results(x) = names(Int(6 * Rnd()))
Next x
Return results
End Function
End Module
인수없이 호출하면, 연속 임의 화()를 호출하지 마십시오으로 다시 초기화 (씨앗) 시스템 시간 난수 생성기 때문에 값이 RND에 의해 반환하는 동안 짧은에서 반복적으로 호출하는 경우() 대부분 무작위가 아닙니다. 처음에는 Rnd()를 사용하기 전에 Randomize()를 한 번 인수없이 호출하거나, 모든 실행에서 동일한 의사 임의 시퀀스를 상수 인수로 가져 오려면 처음에는 Rnd()를 사용하십시오. – user688996
예, 조금 전에 알아 냈습니다. 내 문제는 지금 할당 된 텍스트 값으로 변환 할 Number1, 2 또는 3을 가져올 수 없다는 것입니다. 나는 numberx = cstr ("text")를 시도했다. 그건 물론 OP입니다. –