![]()
Radiant
Silence
![]() offline
Опыт:
4,907Активность: |
[Task] Нахождение лидера
Задача решена, Toadcop +180 ед. опыта.
» Его вариант решения задачи Код:
Постановка задачи Я тут видел, что раньше устраивали подобные "конкурсы" (Пример) и решил устроить свой. Задачанаписать максимально оптимальный алгоритм нахождения игрока с наибольшем значением убийств. ПодробнееК примеру у нас есть 12 игроков. Есть глобалка с массивом udg_kills, которая содержит значения их убийств. Нужно создать функцию, которая возвратит номер игрока, лидируещего по значению убийств(Если такого нет, то возвратит -1)» Пример Код:
ПравилаОптимальность не только в производительности, но и в количестве букв, такчто использовать циклы не запрещается. Также можно использовать дополнительные функции.Естественно я уже написал такой алгоритм. Просто интересно может ли ктонибудь сделать это лучше чем я и как он это сделает. Задание не сложное, интересное, надеюсь понравится...(может даже пригодится комунибудь) Отредактировано ShadoW DaemoN, 06.08.2008 в 00:08. |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ShadoW DaemoN
![]() ![]() offline
Опыт:
37,078Активность: |
Radiant, в примере у тебя отсутствует set в присвоениях, наверно, очень топорился... Свое решение можно скинуть в админ таг и не париться.
Также было бы неплохо написать, как дб оформлена функция, что-то вроде: Код:
убер простая задача... я затратил на решение менее 5 минут |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
54,313Активность: |
всё относительно. по настоящему задачя неправильно поставлена...
сейчас объясню почему =) 1) есть ограничение. 12 игроков (да хоть 8000 впринцыпе.) 2) ЕСЛИ фичя заключаетьса в быстром доступе к инфе то делаетьса по иному. вот так Код:
т.е. всё сразу происходит когда добавляеш киллы. а потом надо прочитать тока переменую если она -1 то вообще не укого нету киллов. а иначе всегда потом будет лидер. т.е. max_killz_lead - id ледирующего игрока. killz[max_killz_lead] - фраги лидирующего игрока. // если нету фрагов то будет идти значение с 0ля. но вообщем это ничего не меняет. если вы решали задачю НЕ таким способом вы тогда все уже проиграли :Р |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
4go10_frank
![]() offline
Опыт:
2,089Активность: |
Toadcop, браво :)
но можно вопрос, вместо "с" не проще поставить 1 и убрать takes integer c, ведь по идее каждое убийство дает +1 очко (во всех АоСах), и так у нас будет на один параметр меньше :) |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
54,313Активность: |
4go10_frank и что это изменит ? то что ничего а тока сделает возможность добавлять n килов.
твоё замечание неочём. это замечание "псевдо задротизма" который реально не знает в чём заключаетьса ключевой момент сбережения произодительности. вот я тока что пример привёл о чём я. О том что главное не как написан алгоритм а как он построен. "оптимизировать" потом елементарно можно если основа хорошая. |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
dk
![]() offline
Опыт:
60,293Активность: |
Задачка так себе, в стандарте просто массив отсортировать и фсе...
//Toadcop не придусмотренно только то, что если игроки сравняются по киллам, то max_killz_lead должно стать -1 (покрайней мере я так понимаю)... А вобще, конечно, изначально грамотная система лучше чем крутая и оптимальная функция) |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Лось
![]() offline
Опыт:
7,223Активность: |
Radiant тот код который я тебе послал в ПМ был с ошибкой, вот робочий:
Код:
|
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
54,313Активность: |
dk с ровно таким же успехом можно хранить "преведущего лидера" или делать сравнения по ровным условиям и,и,и,и... т.е. это всё не важно.
омг 2ойные цыклы О_о. я привёл классный пример ^_^ в чём заключаетьса смысл програмирования. |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Код:
^_^ |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
54,313Активность: |
ScorpioT1000 это герои. + ты пробывал или во время игры это "доступный" параметр ? // а не тока в конце игры (хотя это не совсем логично но кто знает...)
|
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Вот и я про то раз в гуи ее разрешают значит она работает(а почему она должна не работать?), ну ты замени второй аргумент на войска будут войска
ScorpioT1000 добавил: т.е. близзы уже за вас сделали(там даже лидер вроде есть) |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
S
![]() offline
Опыт:
43,833Активность: |
Код:
|
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
54,313Активность: |
!!! есть ньюанс =) о засчитывание киллов тока когда герой убил когото (напр). т.е. это просто но не решение всех задачь. |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Radiant
Silence
![]() offline
Опыт:
4,907Активность: |
Лось, тоже самое что и у меня(Я не говорю что ты списал код, который прислал я XD)
Код:
Так или иначе метод Toadcop-а рулит... А метод Skorp-а нужно еще проверить ^^ |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
S
![]() offline
Опыт:
43,833Активность: |
Цитата:
с тебя 180 опыта для Toadcop'a xD Цитата:
нафига это? оО Может, комп (АИ) тоже может стать лидером =\ |
||
![]() |
#15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Radiant
Silence
![]() offline
Опыт:
4,907Активность: |
Sasha, в карте где я использую(использовал) сие была проверка на компа, просто я показал, что здесь должна быть проверка на играбельность игрока...
Цитата:
Забирайте мне не жалко, хотя такого уговора небыло ^^ |
|
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J
expert
![]() offline
Опыт:
48,447Активность: |
задача очень легкая, ну на 20-ку опыта потянет...
о ужас, двойные циклы... O_O если уж и делать проверку через цикл (а не при изменении результата как предложил тоадкопик), то делать так Код:
и ненадо больше такие задачи постить, нужно чтото поинтереснее Отредактировано Jon, 09.07.2008 в 18:01. |
![]() |
#17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ShadoW DaemoN
![]() ![]() offline
Опыт:
37,078Активность: |
А, кстати, я же не запостил свой вариант ^^
Код:
Toadcop, возьми с полки печеньку) |
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
рофл! задача типа найти адрес элемента массива с максимальным значением?! О_о, тянет даже на 10 опыта=))) (т.е. все кто предложил какой то вариант в посте - выигравают!)
аххаха) |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
S
![]() offline
Опыт:
43,833Активность: |
Цитата:
был, можем попросить супмодеров поднять логи редактирования ^^ Цитата:
кстати... даешь еще конкурсЪ |
||
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|