Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128

Сделать колоду карт

12.12.2016, 22:37. Показов 3342. Ответов 6
Метки нет (Все метки)

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

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
            int[] deck = new int[1000]; // Колода на нное количество мест.
 
            int rank = 0; // Исходный ранк карты.
            int suit = 0; // Исходная масть карты.
 
            int counterRank = 0; // Переменная показывает и определяет ранк карты в массиве deck.
            int counterSuit = 1; // Переменная показывает и определяет масть карты в массиве deck.
 
            do
            {
                deck[counterRank] = rank; // Записываю значение rank, который равен 0 в индекс counterRank, который тоже вначале равен 0.
                deck[counterSuit] = suit; // Записываю значение suit, который равен 0 в индекс counterSuit, который тоже вначале равен 0.
 
                counterRank = counterRank + 2; // После записи я меняю индекс карт в массиве по ранку и масти на один шаг вперёд для каждой карты.
                counterSuit = counterSuit + 2;
 
                suit = suit + 1; // Прибавляю масть (всего мастей 4).
 
                if (suit == 4)
                {
                    suit = 0;
                    rank = rank + 1; // Когда все масти для текущего ранка закончились, то перевожу ранк на +1. И так далее до 12 ранка.
                }
 
                Console.WriteLine("{0} {1}", deck[counterRank], deck[counterSuit]);
            }
            while (rank < 13);
 
            Console.ReadKey();


Добавлено через 19 минут
Белиберда в общем. По сути в одномерном массиве тоже можно сделать колоду карт.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2016, 22:37
Ответы с готовыми решениями:

Как организовать колоду карт?
Вопрос по карточной игре. Как организовать колоду карт? Загнать их все в один массив? А если козырная масть? То ее получается тоже нужно в...

Создайте класс описывающий колоду карт
Создайте класс описывающий колоду карт. Карты можно выбирать из колоды, перемешивать, выводить на экран достоинство карты. Разработайте...

Как сделать колоду карт?
Всем привет. Мне надо BlackJack игру сотворить, но что то я запутался, как вот сделать колоду карт? Во вложенном файле вы видите...

6
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18277 / 14200 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
12.12.2016, 22:38
yellyex, если ты хочешь получить ответ на вопрос "где ошибка?", то неплохо дополнить код программы следующей информацией:

а) Какую задачу решает код;
б) Какой результат получается при запуске;
в) Какой результат ожидается от него на самом деле.

Это повысит вероятность получить ответ.
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
12.12.2016, 22:49  [ТС]
OwenGlendower, сделать колоду карт в размере 52 штуки в одномерном массиве

Добавлено через 40 секунд
Я же вроде в коде все комментарии написал...

Добавлено через 5 минут
Как я это понимаю: все ранки карты хранятся на чётных индексах, а их масти на нечётных. Вроде всё работает. У меня только с реализацией запара.

Добавлено через 38 секунд
не, вручную тоже можно, но я хотел бы воспользоваться циклом.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
12.12.2016, 22:52
Цитата Сообщение от yellyex Посмотреть сообщение
Я же вроде в коде все комментарии написал...
Это надо писать не в комментариях, а (кратко) в названии темы и (более развернуто) в самой теме.
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
12.12.2016, 23:02  [ТС]
Ладно. Не парьтесь. Где наша не пропадала! )))

Добавлено через 4 минуты
Спасибо кто переименовал тему. Но всё-таки нужно было уточнить что в одномерном массиве. В других вариантах полно кодов уже я нашёл давно.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18277 / 14200 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
12.12.2016, 23:18
Лучший ответ Сообщение было отмечено yellyex как решение

Решение

yellyex, например так можно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const int allCount = 52; // Всего карт  колоде (должно быть кратно 4)
const int oneCount = allCount/4; // Кол-во карт одной масти
int[] cards = new int[allCount*2];
for (int i=0, rank=0; i<oneCount; rank++, i++)
{
    int idx = i*2;
 
    cards[idx] = rank;
    cards[idx+1] = 0;
 
    idx += oneCount*2;
    cards[idx] = rank;
    cards[idx+1] = 1;
 
    idx += oneCount*2;
    cards[idx] = rank;
    cards[idx+1] = 2;
    
    idx += oneCount*2;
    cards[idx] = rank;
    cards[idx+1] = 3;
}
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
12.12.2016, 23:25  [ТС]
OwenGlendower, спасибо, добрый человек!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2016, 23:25
Помогаю со студенческими работами здесь

Задача про колоду карт
Из 32 колоды карт достаются 8 карт. Какая вероятность победить, если нам подходит любая из 5ти карт. Вот, что мне в голову пришло......

Непростая задача про колоду карт
Здравствуйте. Помогите, пожалуйста, решить задачу. Есть колода, 52 карты. Из нее вытягиваются, без возвращения, 12 карт. Определить,...

Есть колода из 52 карт. Сколькими способами можно выложить всю колоду на стол?
Есть колода из 52 карт. Сколькими способами можно выложить всю колоду на стол?

Сколько различных раскладов можно получить, раздавая колоду из 52-х карт четырём игрокам?
Уважаемые форумчане. Помогите, пожалуйста разобраться с задачей. Сколько различных раскладов можно получить, раздавая колоду из 52-х...

Массив, имитирующий колоду карт. Тасовка. Возвращение, если идут подряд 3 карты одинаковой масти
Определить массив, имитирующий колоду карт. Написать процедуру и функцию, которая тасует карты и возвращает false, если есть 3 подряд...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru