|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.04.2012, 18:55 | #1 |
Пользователь
Регистрация: 03.06.2011
Сообщений: 54
|
Нужен алгоритм
Добрый вечер. Не могу составить нормально алгоритм. Вообщем есть неопределенное кол-во игроков. Есть уровни игроков (максимальный 120). Вообщем, можно расценивать это как турнир. Т.е скрипт должен распределить игроков по местам(1,2,3 и т.д).
Проблема в том, что игроки меньшие уровнем также должны иметь шансы на победу(просто у больших уровней, должно быть больше шансов). Так вот, не могу придумать хороший алгоритм. Реализовать я сам смогу. |
16.04.2012, 19:03 | #2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Какой показатель определяет положение игрока на определенном месте (1,2,3 и т.д)?
В какой зависимости этот показатель находится от уровня игрока? Какой показатель определяет шансы игрока на победу? В чем суть самой игры? |
16.04.2012, 19:14 | #3 | |
Пользователь
Регистрация: 03.06.2011
Сообщений: 54
|
Возможно, я не правильно объяснил.
Цитата:
Т.е игрок с 30 ур. может занять первое место, а игрок с 80 , может занять 2. Просто шансов должно быть меньше. Т.е чистого рандома не должно быть. |
|
16.04.2012, 19:27 | #4 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Ну, значит, должна быть какая-то зависимость, от какого-то показателя - раз рандом не устраивает.
Невозможно определить победителя - основываясь "ни на чем". Даже рандом, по сути, тоже подчиняется определенным зависимостям - он не является 100% "чистым". Эти ваши "выше уровень - больше шансов" - это тоже зависимость (на сколько именно больше). Цитата:
|
|
16.04.2012, 19:48 | #5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
1. ткрнир трех игороков
player / level 1 / 3 2 / 1 3 / 7 r:=random( 3+ 1+7); // сумма весовых фунций (весов/уровней) m[k]:= {r=1,2,3} =1 если 1<=r<4 то номер игрока =1 {r=4} =2 {r=5,6,7,8,9.10,11} =3 2. "провести" турнир и по результатам турнирных встреч определить места. результат встречи r:=random(lev1+lev2 + lev00); if l<lev1 then // победил первый ielse if r<lev1+lev2 победил второй else //ничья
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 16.04.2012 в 19:56. |
16.04.2012, 23:55 | #6 |
Пользователь
Регистрация: 03.06.2011
Сообщений: 54
|
Спасибо, но я уже сам придумал
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нужен алгоритм | aenk | Помощь студентам | 1 | 16.10.2011 21:28 |
нужен алгоритм!!! | Юра123 | Общие вопросы Delphi | 0 | 29.07.2009 14:22 |