Делаем «однорукого бандита».

Всем привет,
сегодня мы будем делать игровой автомат.

Суть, у нас будет форма с 3 барабанами, каждый барабан будет содержать только цифры от 0 до 9. Игроку при старте игры будет даваться стартовые $100, он может делать ставки 5-10-15 и т.д до $50, после нажатия рычага, у игрока 5 попыток, выигрыш зависит от количества совпадений и ранга чисел, максимальный выигрыш привязан к 7-7-7

Кому лень читать —  вот исходник Avtomat-Bandit.

Примечание: знак двоеточие читать как — «выставляем значение»

Итак, погнали:
1) Создаем проект Windows Forms называем его «avtomat-bandit».
2) Задаем для формы размеры 620×500, атрибут формы FormBorderStyle: FixedSingle — чтобы отключить возможность масштабировать форму.
3) Изменяем атрибут name для Form на name:»Однорукий бандит»
4) Сделаем «барабан» для этого кидаем на форму 3 Label и выставляем им size: 96
5) Добавляем ниже 2 кнопки, для верхней выставляем name:»Погнали!», для нижней name: «Сделать ставку».
6) Теперь реализуем баланс и кол-во неиспользуемых попыток, для этого на уровне верхней кнопки кидаем label, его св-ву text:»Баланс: $100″
7) Ниже добавляем еще одну метку для ее атрибута text:»Выбрать ставку: »
8) справа от этой метки добавляем numericUpDown, для его атрибута value:5 — это значение по умолчанию. Далее, атрибутам increment:5,minimum:5,maximum:50 — Думаю, с min и max все понятно, increment — это значение на которое будет уменьшаться\увеличиваться ставка, в зависимости от нажимаемой кнопки.
9) Ниже добавляем еще один label, для его атрибута text:»Осталось попыток: 0″
10) Последний штрих — кидам на форму 6 таймеров. Первые 3 таймера будут запускать барабаны, они будут иметь следующие имена name:dvg1, name:dvg2, name: dvg3 — всем выставляем interval:25, вторые три таймера будут по очереди останавливать первые три таймера, они будут иметь следующие имена
и интервалы:
name:stop1, inverval:1500
name:stop2, Interval:2500
name:stop3, Interval:3500

С формой мы закончили:

Теперь код:
1) В первую очередь, добавляем переменные, перед public Form()

2) Теперь создаем обработчики для события Tick, для первых 3-х таймеров

3) Создаем обработчики для события Tick, для последних 3-х таймеров

4) Собственно пишем метод, который будет определять есть ли пары у выпавших чисел

5) Пишем метод который будет рассчитывать выигрыш

6) Ну теперь можно заняться инициализацией переменных, для этого создаем еще один метод

7) Теперь кнопка «Сделать ставку»
private void button2_Click(object sender, EventArgs e)
{
Init_Counter(numericUpDown1.Value); //Вызываем инициализирующий метод
button1.Enabled = true; // Открываем доступ к кнопке «Погнали!»
button2.Enabled = false; //ЗАкрываем доступ к кнопке «Сделать ставку».
}
8) И последний кусок кода для кнопки «Погнали!»

В общем-то всё, запускаем и получаем удовольствие от игры.
Если есть предложения как улучшить игру кидайте в комменты, если найдете ошибки тоже пиши в комментах)

12+

11 thoughts on “Делаем «однорукого бандита».

  1. Я ещё добавила Form1_Activated {button1.Enabled = false}.
    Если кнопка 2 была не нажата, барабан крутился и попытки уходили в минус.
    Сделала интервал у stop1 больше, чем у stop2, чтобы цифры на барабане появлялись по порядку

    0
    1. У вас есть идея как можно улучшить автомат? сделать его интересней

      0
  2. Спасибо за пищу для рассуждения!
    Сайт в избранное добавил, жду ещё 10101 пример что можно поделать!

    0
      1. На какой программе вы работаете? И сделайте больше проектов пожааалуйста)

        0
  3. Извините можете помочь? У меня программа не работает((

    0
  4. 7) Ниже добавляем еще одну метку для ее атрибута text:»Выбрать ставку: »

    0
  5. Все работает. Однако сразу же нашёл баг, баланс может списываться до бесконечности. Объявил новую переменную BalCheck и добавил в самое начало Init_Counter строку «balance = BalCheck;». Затем в поле кнопки 2 добавил проверку баланса(balance < 0) и вывел сообщение об окончании средств на балансе, заблокировал кнопку "Погнали!" и присвоил переменной balance значение BalCheck(balance = BalCheck). И всё заработало.

    0
    1. «И всё заработало» — это хорошо, мне приятно, что люди не только просто копируют примеры, но и работают с кодом внутри.

      0

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.