Сделать колоду карт - C#

Узнай цену своей работы

Формулировка задачи:

Ребят, я сразу дико извиняюсь и подобных тем тут предостаточно, но тут вопрос личного характера. Пожалуйста, не обращайте внимание на мой нубский код, я занимаюсь мозговым штурмом. Пока неудачно. Вот я сделал алгоритм в своей голове и вроде бы в теории всё работает, но на практике нет. Помогите пожалуйста именно с таким подходом.
            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();
Белиберда в общем. По сути в одномерном массиве тоже можно сделать колоду карт.

Решение задачи: «Сделать колоду карт»

textual
Листинг программы
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;
}

ИИ поможет Вам:


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

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы