Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка 52 карты 
:(
    Опции темы
blackwitcher
Дата 6.10.2015, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



Всем привет, нужна помощь - нужно отсортировать 52 карты
Код

namespace BlackJack
{
    class Cards:Game
    {
        /* card_suit масть карты
         * 1 - черви
         * 2 - буби
         * 3 - крести
         * 4 - пики
         * num-номер карты
         * 2-двойк
         * ....
         * 10-десятка
         * 11-валет
         * 12-дама
         * 13-король
         * 14-туз
         */
        public int card_suit;
        public int num;
        public Cards(int i, int j)
        {
            this.card_suit = i;
            this.num = j;
        }

        public Cards[] koloda = new Cards[52];
        public Cards()
        {
            for (int i = 1; i <= 4; i++)
                for (int j = 2; j <= 21; j++)
                    koloda[(i - 1) * 9 + (j - 2)] = new Cards(i, j);
        }
        public string OutCards(int Id)
        {
            string answer;
            switch (koloda[Id].num)
            {
                case 11:
                    answer = "Валет";
                    break;
                case 12:
                    answer = "Дама";
                    break;
                case 13:
                    answer = "Король";
                    break;
                case 14:
                    answer = "Туз";
                    break;
                default:
                    answer = koloda[Id].num.ToString();
                    break;
            }
            switch (koloda[Id].card_suit)
            {
                case 1:
                    answer += " червей";
                    break;
                case 2:
                    answer += " бубей";
                    break;
                case 3:
                    answer += " крестей";
                    break;
                case 4:
                    answer += " пик";
                    break;
            }
            return answer;
        }
        public void Sort()
        {

        }
    }
}

PM MAIL   Вверх
chupachups
Дата 8.10.2015, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 15.10.2008

Репутация: нет
Всего: 1



Автор, Вы наверное студент 1-го курса или нет компьютера для проверки кода?
Элементарно в циклах по формуле (i - 1) * 9 + (j - 2) = (4 - 1) * 9 + (21 - 2) = 27 + 19 = 46 карт максимум !?
Не буду критиковать ужасно спроектированный класс, вот пример сортировки:
Код

namespace BlackJack
{
    class Cards //: Game
    {
        public int card_suit;
        public int num;
        public Cards(int i, int j)
        {
            this.card_suit = i;
            this.num = j;
        }

        public Cards[] koloda = new Cards[52];
        public Cards()
        {
            List<Cards> list = new List<Cards>();
            for (int i = 1; i <= 4; i++)
                //for (int j = 2; j <= 21; j++)
                for (int j = 2; j <= 14; j++)
                    //koloda[(i - 1) * 9 + (j - 2)] = new Cards(i, j);
                    list.Add(new Cards(i, j));

            koloda = list.ToArray();
        }
        public string OutCards(int Id)
        {
            // .......
            return "answer";
        }
        public void Sort()
        {
            Cards[] bySuitThenNum = this.koloda.OrderBy(card => card.card_suit * 1000 + card.num).ToArray();
            Cards[] byNumThenSuit = this.koloda.OrderBy(card => card.num * 1000 + card.card_suit).ToArray();
        }
    }
}


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1055 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.