Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2014, 13:08   #1
Legrandes
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 16
По умолчанию Помогите прописать простой Код!

Доброго времени суток. пишу программу но не могу понять какие методы и способы выбрать . ( я новичок )

Вроде звучит легко.
Берем ту же рулетку. в Которой есть красное/черное чет/нечет 1-18/19-36

Имеется последовательность : Нечет , 1-18 , 19-36, чет , 1-18
Идея такова. Сначала делаем ставку 1 на Нечет, если не выпало , значит ставим 2 на 1-18, если не выпало , делаем ставку 4 на 19-36, а если выпало то что нужно, начинаем по новой.
Как занести в программу.

Изначально вывожу на консоль
"ставим 1 на НЕЧЕТ"
потом идет ввод с клавы , что выпало после ставки.
Если проигрывает, то переходит к следующему шагу
"ставим 2 на 1-18" и так далее.

Проблема в том , что я не знаю как заставить программу начать все заново после выигрыша. Вот код который пока имеется

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Gambling
{
    class Program
    {
        static void Main(string[] args)
        {
           
                int[] odd = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35 };
                int[] even = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36 };
                int[] red = { 1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 39 };
                int[] black = { 2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35 };
                int[] fhalf = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };
                int[] shalf = { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36 };
                string reap = "";
                string win = "Вы выиграли";
                int n = int.Parse(Console.ReadLine());
                    Console.WriteLine("Ставьте 1 на Нечет");
                    n = int.Parse(Console.ReadLine());
                    if (odd.Contains(n)) Console.WriteLine(win);
                    else Console.WriteLine("Ставьте 2 на 1-18");

                    n = int.Parse(Console.ReadLine());
                    if (fhalf.Contains(n)) Console.WriteLine(win);
                    else Console.WriteLine("Ставьте 4 на 19-36");

                    n = int.Parse(Console.ReadLine());
                    if (shalf.Contains(n)) Console.WriteLine(win);
                    else Console.WriteLine("Ставьте 8 на ЧЕТ");

                    n = int.Parse(Console.ReadLine());
                    if (even.Contains(n)) Console.WriteLine(win);
                    else Console.WriteLine("Ставьте 16 на 1-18");
                   

                
           Console.Read();
        }
    }
}

Последний раз редактировалось Stilet; 18.10.2014 в 16:09.
Legrandes вне форума Ответить с цитированием
Старый 18.10.2014, 13:48   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Метод Мартингейла фейловый.
Чтобы проверить это, симуляцию можно написать в обычном экселе, и не париться с шарпом.
Чтобы начинать в коде что-то заново, прочитайте главу циклы в любом пособии по сишарпу.
phomm вне форума Ответить с цитированием
Старый 18.10.2014, 14:30   #3
Legrandes
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 16
По умолчанию

знаю что фейловый, но я хочу именно программу сделать.
Смотрел циклы, но не могу понять какой именно подойдет в моем случае, поэтому и отписал сюда
Legrandes вне форума Ответить с цитированием
Старый 18.10.2014, 14:54   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Скорее всего, надо писать, отталкиваясь от предпосылки "пока не выиграли, производим новый бросок".
Также можно сделать многоразовый забег - "пока не надоело, производим установку ставки в минимум и вызываем цикл с бросками"
В итоге 2 цикла while (это "пока" по-английски). Для удобства они бывают с предусловием и с постусловием. Для Вашей задачи скорее всего подойдёт с постусловием, т.к. по одному разу тело цикла надо выполнить.

Примерный вид
Код:
do{
    InitStake();
    do{
        ApplyStake();
        RunBall();
    }
    while (!CheckWin());
}
while (Ask("Again?"));
УТОЧНЯЮ, это не код для Вас, а лишь направление возможного решения, которое надо обдумать и для себя вынести принцип, а не копипастить.

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

Также не забывайте оформлять код для поста, кнопочка # при на боре сообщения.
phomm вне форума Ответить с цитированием
Старый 18.10.2014, 16:03   #5
Legrandes
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 16
По умолчанию

Могли бы вы примерно подсказать в моем случае как это будет выглядеть? не совсем понял насчет двойного while.

И насчет аккуратности. Вы предлагаете все массивы вынести в отдельный класс ?
Legrandes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой код Kiss31 Общие вопросы по Java, Java SE, Kotlin 2 29.04.2013 13:19
Простой код PHP skanku PHP 1 18.12.2012 21:29
Массивы как правильно прописать код. bossserg PHP 3 16.12.2012 10:20
Какой код надо прописать в Delphi (задать таймер на 30 дней (системное время,год,м) программа закрывается mnbvcxz11 Общие вопросы Delphi 3 22.08.2009 11:29
подкорректирйте простой код N!ckeL PHP 2 04.08.2008 17:09