ズンドコきよし for VisualBasic.NET

  • 2
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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

概要

なんか、最近ズンドコキヨシチェックが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