XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
[Task] Сортировка таблицы

Постановка задачи


Давно не делали, таких конкурсов...

Задача


Написать наиболее точный алгоритм сортировки таблицы, по убыванию и по возрастанию.
Таблица следующего образца:
1) Таблица содержит 2 столбца, 1 столбец-Имя игрока, а 2 столбец - Например Киллы.
2) Таблица включает в себя только играющих игроков.

Правила


Вибирается тот у кого:
1) Код наиболее точен, то есть насколько точна будет сортировка.
2) Код наиболее оптимален в производительности.
Также и приветствуется оптимальность в количестве букв.

Отредактировано Xipxop, 11.08.2012 в 18:47.
Старый 11.08.2012, 16:59
Hate
конь вакуумный
offline
Опыт: 43,030
Активность:
это легко и кому надо сам может это сделать
Старый 11.08.2012, 17:03
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Я не имею ввиду Лидерборда! А сортировка таблицы или меню паузы как назвали переводчики её.
Это легко, хех, что-то никто раньше этого еще не делал!
Да и Задачи или Tasks, нужны для того, чтобы определить уровень знаний людей форума, да и еще чем то их занять, ведь соревнуясь, человек получает удовольствие.
Старый 11.08.2012, 17:08
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Xipxop:
Сразу скажу: Сложность данного задания выше сложного.
лол. Оказывается погуглить реализацию методов сортировки и переписать на жасс это задача выше сложного.
Старый 11.08.2012, 17:16
Hate
конь вакуумный
offline
Опыт: 43,030
Активность:
А сортировка таблицы или меню паузы как назвали переводчики её.
а я тут о мебели?
Это легко, хех, что-то никто раньше этого еще не делал!
потому что это легко (с) кэп разве кто то станет выкладывать то что каждый может сделать за минут 10?
тут даже соревноваться невчем.
Старый 11.08.2012, 17:16
Doc

offline
Опыт: 63,163
Активность:
Ээээ у меня в слаш арене все давно сортируется пузырьком по разным значениям.
Я думаю, автору просто нужна таблица в карту, а попросить/заплатить за нее он не может.
Старый 11.08.2012, 17:26
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Таблица в карту мне не нужна!Я делаю карту другого жанра...
Мне всетаки интересно, одно, ладно возможно такой метод знают, но видно применить мало кто смог!
Да и вообще, зачем тогда придумали Task???
Ведь раньше 2 года назад, решать эти задачи даже любили!
Эх, я думал, что соревновательный дух остался...
Старый 11.08.2012, 17:31
Hate
конь вакуумный
offline
Опыт: 43,030
Активность:
Xipxop:
Ведь раньше 2 года назад, решать эти задачи даже любили!
Эх, я думал, что соревновательный дух остался...
это детский лепет по сравнению с прошлыми тасками
Старый 11.08.2012, 17:37
Doc

offline
Опыт: 63,163
Активность:
Xipxop, задачка то простейшая.
На, я победил?
library MB {

    multiboard MB
    private multiboarditem mItem
    
    constant string gray = "|c00B4B5B6"
    constant string endtag = "|r"
    
    void SetStyle(int col, int row, bool text, bool icon) {
        mItem = MultiboardGetItem(MB, row, col)
        MultiboardSetItemStyle(mItem, text, icon)
        MultiboardReleaseItem(mItem)
    }

    void SetWidth(int col, int row, float w){
        mItem = MultiboardGetItem(MB, row, col)
        MultiboardSetItemWidth(mItem, w)
        MultiboardReleaseItem(mItem)
    }

    void SetValue(int col, int row, string value){
        mItem = MultiboardGetItem(MB, row, col)
        MultiboardSetItemValue(mItem, value)
        MultiboardReleaseItem(mItem)
    }

    void SetIcon(int col, int row, string icon){
        mItem = MultiboardGetItem(MB, row, col)
        MultiboardSetItemIcon(mItem, icon)
        MultiboardReleaseItem(mItem)
    }
    
    private void ont2(){
        int wns[]
        int pid[]
        for(int i = 0; i < 3; i++){
            if (Mode == MODE_WINS){
                wns[i] = wins[i]
            } elseif (Mode == MODE_KILLS){
                wns[i] = kills[i]
            }
            pid[i] = i
        }
        bool b = true
        int a
        while(b){
            b = false
            for(int j = 0; j < 1; j++){
                if (wns[j] < wns[j + 1]){
                    a = pid[j + 1]
                    pid[j + 1] = pid[j]
                    pid[j] = a
                    a = wns[j + 1]
                    wns[j + 1] = wns[j]
                    wns[j] = a
                    b = true
                }
            }
        }
        int w = 2
        int k = 3
        
        if (Mode == MODE_KILLS){
            w = k
            k = 2
        }
        for(int i = 1; i < 3; i++){
            SetWidth(0, i, .013)
            SetValue(0, i, I2S(i))
            SetWidth(1, i, .075)
            SetValue(1, i, PlayerColorX[pid[i - 1]] + teamName[pid[i - 1]])
            SetWidth(w, i, .03)
            SetValue(w, i, I2S(wins[pid[i - 1]]))
            SetWidth(k, i, .03)
            SetValue(k, i, I2S(kills[pid[i - 1]]))
            SetWidth(4, i, .03)
            SetValue(4, i, I2S(deaths[pid[i - 1]]))
        }
    }
    
    private void ont(){
        int wns[]
        int pid[]
        for(int i = 0; i < PlayerCount; i++){
            if (Mode == MODE_WINS){
                wns[i] = wins[i]
            } elseif (Mode == MODE_KILLS){
                wns[i] = kills[i]
            }
            pid[i] = i
        }
        bool b = true
        int a
        while(b){
            b = false
            for(int j = 0; j < PlayerCount - 1; j++){
                if (wns[j] < wns[j + 1]){
                    a = pid[j + 1]
                    pid[j + 1] = pid[j]
                    pid[j] = a
                    a = wns[j + 1]
                    wns[j + 1] = wns[j]
                    wns[j] = a
                    b = true
                }
            }
        }
        int w = 2
        int k = 3
        
        if (Mode == MODE_KILLS){
            w = k
            k = 2
        }
        for(int i = 1; i < PlayerCount + 1; i++){
            SetWidth(0, i, .013)
            SetValue(0, i, I2S(i))
            SetWidth(1, i, .075)
            SetValue(1, i, PlayerColor[pid[i - 1]] + PlayerName[pid[i - 1]])
            SetWidth(w, i, .03)
            SetValue(w, i, I2S(wins[pid[i - 1]]))
            SetWidth(k, i, .03)
            SetValue(k, i, I2S(kills[pid[i - 1]]))
            SetWidth(4, i, .03)
            SetValue(4, i, I2S(deaths[pid[i - 1]]))
        }
    }

    void initMultiboard(){
        MB = CreateMultiboard()
        MultiboardSetColumnCount(MB, 5)
        if (!Mode.modeTeamPlay){
            MultiboardSetRowCount(MB, PlayerCount + 1)
        } else {
            MultiboardSetRowCount(MB, 3)
        }

        MultiboardSetItemsStyle(MB, true, false)
        
        SetWidth(0, 0, .013)
        SetWidth(1, 0, .075)
        SetWidth(2, 0, .03)
        SetWidth(3, 0, .03)
        SetWidth(4, 0, .03)
        
        int w = 2
        int k = 3
        
        if (Mode == MODE_KILLS){
            w = k
            k = 2
        }
        
        SetValue(0, 0, gray + "№" + endtag)
        SetValue(1, 0, gray + "Name" + endtag)
        SetValue(w, 0, gray + "Wins" + endtag)
        SetValue(k, 0, gray + "Kills" + endtag)
        SetValue(4, 0, gray + "Deaths" + endtag)
            
        MultiboardMinimize(MB, true)
        MultiboardMinimize(MB, false)
        MultiboardDisplay(MB, true)
        if (!Mode.modeTeamPlay){
            TimerStart(CreateTimer(), 0.1, true, function ont)
        } else {
            TimerStart(CreateTimer(), 0.1, true, function ont2)
        }
    }
}
Старый 11.08.2012, 17:41
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Doc, да. Тему клоз:)
Старый 11.08.2012, 17:43
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
Комментарии в коде, не? 0\
Старый 11.08.2012, 18:00
Doc

offline
Опыт: 63,163
Активность:
Master_chan, все вроде очевидно жи. Что-то объяснить?)
Старый 11.08.2012, 18:04
ScorpioT1000
Работаем
offline
Опыт: отключен
Ну и на кой чёрт ты тему закрыл? Автор умер? Наработка украдена? Или что? Вы слишком охренели тут, я смотрю
Старый 11.08.2012, 18:15
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Просто из-за закрытия, темы я несмог...
Всетаки, я несчитаю пока Doc победителем, так как других конкурсантов еще не было!
Пусть и другие блеснут своими знаниями!
Пусть покажут, что и они достойны конкурировать, с профи!
Пусть даже если и кто-то ошибется тут в своем решении, ему скажут об этои и возможно исправят его, и он научится, и станет умнее!
И еще никто не говорил, что решение на vjass является истинным!
И то, что оно будет единственным.

Конкурс НЕ закрыт и люди могут соревноваться! Надеюсь админы помогут, с наградой пользователем-победителем!
Старый 11.08.2012, 18:28
Hate
конь вакуумный
offline
Опыт: 43,030
Активность:
Xipxop:
Просто из-за закрытия, темы я несмог...
Всетаки, я несчитаю пока Doc победителем, так как других конкурсантов еще не было!
Пусть и другие блеснут своими знаниями!
Пусть покажут, что и они достойны конкурировать, с профи!
Пусть даже если и кто-то ошибется тут в своем решении, ему скажут об этои и возможно исправят его, и он научится, и станет умнее!
И еще никто не говорил, что решение на vjass является истинным!
И то, что оно будет единственным.
Конкурс НЕ закрыт и люди могут соревноваться! Надеюсь админы помогут, с наградой пользователем-победителем!
о боже, я понял, ТС совсем не шарит в жассе =(
Старый 11.08.2012, 18:34
Doc

offline
Опыт: 63,163
Активность:
Xipxop, facepalm
  1. Это не вжасс.
  2. Сам "конкурс" бред, такое может каждый школьник сделать.
  3. Где здесь можно ошибиться?
ScorpioT1000, эт не я закрыл.
Старый 11.08.2012, 18:35
ScorpioT1000
Работаем
offline
Опыт: отключен
Doc, я знаю, кто закрыл.
Ну, в целом, конкурс не особо крут, но зачем запрещать людям проявлять свои знания?
Старый 11.08.2012, 18:37
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
ScorpioT1000:
Ну, в целом, конкурс не особо крут, но зачем запрещать людям проявлять свои знания?
Ну ты ж сам понимаешь, что если кто и будет участвовать, то 2.5 калеки а скорее всего вообще никто.
Была бы норм тема, никто бы ничего не сказал даже.
Старый 11.08.2012, 18:44
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Doc, как и многие люди получившее "величие", вы забываете о главном! О том, что кроме вас знающих людей, есть и незнающие!
Ладно пусть и задание не слишком уж сложное для ВАС, но не вы едиственные на форуме.
Пусть люди соревнуются, пусть! Если для вас, эта задача слишком легкая то НЕ решайте её!
Пусть, другие, решат! Пусть, иначе смысла в форуме нету!
А если будет совсем туго, то вмешайтесь, подскажите.
НЕзабывайте, что жизнь и популярность форума зависит от вас!
Старый 11.08.2012, 18:46
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Xipxop, да ну серьёзно фигня ж задача <_< пойти написать вам задачку по сложнее что ли <_<
Старый 11.08.2012, 18:57
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 01:42.