カテゴリー
Visual Basic

「三山崩しゲーム」VB版

Module Program
    Sub Main(args As String())
        Dim a(4), i, j, k, imax, nn As Integer
        Dim my_flag As Boolean
        Dim dmyss As String

        For i = 1 To 3
            Console.Write(i & "番目の石の数? ")
            dmyss = Console.ReadLine()
            a(i) = Int(dmyss)
            If a(i) <= 0 Then End
        Next

        my_flag = True
        While True
            Console.WriteLine()
            Console.WriteLine(String.Format("現在の石 {0}, {1}, {2}", a(1), a(2), a(3)))

            imax = 1
            For i = 2 To 3
                If a(imax) < a(i) Then
                    imax = i
                End If
            Next
            If a(imax) = 0 Then Exit While

            If my_flag = True Then
                For i = 1 To 3
                    j = i + 1
                    If j > 3 Then j -= 3
                    k = i + 2
                    If k > 3 Then k -= 3
                    If a(i) > (a(j) Xor a(k)) Then
                        nn = a(j) Xor a(k)
                        Exit For
                    End If
                Next
                If i = 4 Then
                    i = imax
                    nn = a(imax) - 1
                End If
                Console.WriteLine("コンピュータ: {0}の山から{1}個取りました。", i, a(i) - nn)
                a(i) = nn

            Else
                Do
                    Console.Write("何番目の山から取りますか(1-3)? ")
                    dmyss = Console.ReadLine()
                    i = Int(dmyss)
                Loop While (i < 1 Or 3 < i Or a(i) = 0)
                Do
                    Console.Write("何個取りますか? ")
                    dmyss = Console.ReadLine()
                    nn = Int(dmyss)
                Loop While (nn <= 0 Or a(i) < nn)
                a(i) -= nn
            End If

            my_flag = Not my_flag

        End While

        If my_flag = True Then
            Console.WriteLine("--- あなたの勝ち ---")
        Else
            Console.WriteLine("--- コンピュータの勝ち ---")
        End If
        'Console.WriteLine("Hello World!")
    End Sub
End Module

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

inserted by FC2 system