Главная  
  • Программы  
  • Методички  
  • Рефераты  
  • Дипломы  
  • Разное  
  • Фото  
  • Контакты  
  • Карта сайта  
  • Я:
    Найти:
    Возраст:
    -

    Реализация игры "Быки и коровы".

    HashFlare

    Текст программы



    Текст программы на языке Visual Basic выглядит следующим образом:

    Option Explicit
    'определение необходимости объявления переменных

    Private Sub cmdExit_Click()
    'Кнопка выхода из программы

    Unload Me
    'выгрузка формы из памяти

    End Sub

    Private Sub cmdNewGame_Click()
    'Кнопка запуска новой игры

    txtSecNum1.PasswordChar = "*": txtSecNum2.PasswordChar = "*"
    'устанавливаем для текстовых полей маскировочный символ *

    txtSecNum1 = "": txtGetNum1 = ""
    'очистка текстовых полей игрока 1

    txth = ""
    'очистка текстового поля подсчета количества ходов

    txtB1 = "": txtK1 = "": txtB2 = "": txtK2 = ""
    'очистка полей информирующих о количестве быков и коров

    If optComputer Then txtSecNum2 = getnum: txtGetNum2 = getnum
    'если играет компьютер, заполняем поля случайными числами

    If optPlayer Then: txtGetNum2 = "": txtSecNum2 = ""
    'если играет человек, очищаем поля

    End Sub

    Private Sub cmdStep_Click()
    'Кнопка шага

    Dim i, a As Integer, j As Integer
    'переменные -счетчики

    a = Val(txth.Text)
    txth = a + 1
    'подсчет количества ходов

    txtB1 = "0": txtK1 = "0": txtB2 = "0": txtK2 = "0"
    'обнуление полей, информирующих о количестве быков и коров

    For i = 1 To 4
    'цикл проверки количества быков у игрока 1

    If Mid(txtGetNum1, i, 1) = Mid(txtSecNum2, i, 1) Then txtB1 = Val(txtB1) + 1
    'если есть совпадение цифры и позиции то увеличиваем количество быков на 1

    Next i

    For i = 1 To 4
    For j = 1 To 4
    'цикл проверки количества коров у игрока 1

    If Mid(txtGetNum1, i, 1) = Mid(txtSecNum2, j, 1) And i <> j Then txtK1 = Val(txtK1) + 1
    'если есть совпадение цифры то увеличиваем количество коров на 1

    Next j
    Next i

    For i = 1 To 4
    'цикл проверки количества быков у игрока 2

    If Mid(txtGetNum2, i, 1) = Mid(txtSecNum1, i, 1) Then txtB2 = Val(txtB2) + 1
    'если есть совпадение цифры и позиции то увеличиваем количество быков на 1

    Next i

    For i = 1 To 4
    For j = 1 To 4
    'цикл проверки количества коров у игрока 2

    If Mid(txtGetNum2, i, 1) = Mid(txtSecNum1, j, 1) And i <> j Then txtK2 = Val(txtK2) + 1
    'если есть совпадение цифры то увеличиваем количество коров на 1

    Next j
    Next i

    If txtB1 = "4" And txtB2 = "4" Then txtSecNum1.PasswordChar = "": txtSecNum2.PasswordChar = ""
    'если числа отгаданы убираем маскировочный символ

    If txtB1 = "4" And txtB2 = "4" Then MsgBox "Ничья!": cmdNewGame_Click: Exit Sub
    'если оба игрока набрали по 4 быка, объявляем ничью

    If txtB1 = "4" Then txtSecNum1.PasswordChar = "": txtSecNum2.PasswordChar = ""
    'если числа отгаданы убираем маскировочный символ

    If txtB1 = "4" Then MsgBox "Игрок 1 победил!": cmdNewGame_Click: Exit Sub
    'если игрок 1 набрал 4 быка, объявляем его победу

    If txtB2 = "4" Then txtSecNum1.PasswordChar = "": txtSecNum2.PasswordChar = ""
    'если числа отгаданы убираем маскировочный символ

    If txtB2 = "4" Then MsgBox fPlayer2.Caption + " победил!": cmdNewGame_Click: Exit Sub
    'если игрок 2 набрал 4 быка, объявляем его победу

    If optComputer Then txtGetNum2 = getnum
    'генерация случайного числа для следующего хода компьютера

    End Sub

    Function getnum() As String
    'генерация случайного четырехзначного числа

    Dim i As Integer
    'переменная-счетчик

    Dim s As String
    'временная строковая переменная

    Randomize (Timer)
    'инициализация генератора случайных чисел

    m1:

    s = Int(Rnd * 10)
    'генерация случайного числа

    If Len(getnum) = 0 And s = 0 Then GoTo m1
    'если первая цифра 0, повторяем генерацию

    For i = 1 To Len(getnum)
    If s = Mid(getnum, i, 1) Then GoTo m1
    'если цифры совпадают, повторяем генерацию
    Next i

    getnum = getnum + s
    'прибавляем сгенерированную числу к создаваемому числу

    If Len(getnum) < 4 Then GoTo m1
    'если не достигли желаемой длины числа, продолжаем генерацию

    End Function

    Private Sub Form_Load()
    'загрузка формы

    optPlayer = False
    optComputer = False
    'убираем флажки выбора режима игры (игрок, компьютер)

    End Sub

    Private Sub optComputer_Click()
    'выбор режима игры "против компьютера"

    fPlayer2.Caption = "Компьютер"
    cmdNewGame_Click
    'начало новой игры

    End Sub

    Private Sub optPlayer_Click()
    'выбор режима игры "против игрока"

    fPlayer2.Caption = "Игрок 2"
    cmdNewGame_Click
    'начало новой игры

    End Sub


    Содержание



    © Copyright 2006-2017. Все права защищены. Сайт бесплатно.