VisualBasic
ズンドコキヨシ

ズンドコきよし for VisualBasic.NET

More than 3 years have passed since last update.

(アイン君がグレイズになってしまった)


概要

なんか、最近ズンドコキヨシチェックがFizzBuzzに代わるプログラマーの腕試しだと聞いて、自分も書いてみました。(PHPで書くと何番煎じだよって話なので、大学のころお世話になったVisualBasic先輩に出てきてもらいました。今でもたまに書くんですけどね。)

こういうことで投稿数を稼ぐ

結果だけを知りたいせっかちなホモのために結果を先にしますよ。


実行結果

スクリーンショット 2016-03-14 21.41.42.png

適当に数回実行して、キヨシるまでの時間を計ってみたら、(スマートフォンのストップウォッチだけど)

遅くて、7.25秒 早くて1.21秒 平均3.18秒

これがズンズンズンドコだったら、早くキヨシれていたなぁ。ズンが4つあるのがミソ?

回数
時間(分)

1回目
0.0725

2回目
0.0211

3回目
0.0139

4回目
0.0121

5回目
0.0611

6回目
0.0155

7回目
0.0269

平均
0.0319


ソースコード


zundoko.vb

Module Module1

Dim zundokoParts As String() = {"ズン", "ドコ"}
Dim Zundoko As String() = {zundokoParts(0), zundokoParts(0), zundokoParts(0), zundokoParts(0), zundokoParts(1)}
Dim generateList(4) As String
Dim sleep As Integer = 25
Sub Main()
Do

For i = 0 To Zundoko.Length - 1

Dim seed As Integer = System.Environment.TickCount '固定じゃない数値をシード値に使う
Dim rnd As Random = New Random(seed + 1)
Dim rndNum As Integer = rnd.Next(zundokoParts.Length)
generateList(i) = zundokoParts(rndNum)
Console.WriteLine(zundokoParts(rndNum))
System.Threading.Thread.Sleep(sleep) '連続生成したRandomクラスのシード値の重複防止

Next
Console.WriteLine()

Loop While (compareList() = False)
Console.WriteLine("キ・ヨ・シ!")

End Sub

Function compareList()
Dim result As Boolean = False
For i = 0 To Zundoko.Length - 1

result = Zundoko(i).Equals(generateList(i))
If (result = False) Then
Exit For
End If

Next
Return result
End Function

End Module