2 Rid
Программа жеребьевки:
Civ5TossUpMaster.zip
Версия 1.01
Версия 1.02
Предложение по "оптимизации" программы (от стороннего наблюдателя) - воткнуть в интерфейс чекбокс "Одинаковые нации".
Пояснение: По умолчанию программа генерирует для каждого игрока игровую нацию, при этом (если я правильно понял) одна и та же нация не достанется разным игрокам. Игра позволяет проводить партию, в которой несколько игроков могут играть одинаковыми нациями. Предлагаю обеспечить опциональную возможность реализации этого программой жеребьевки.
Сделано.
Civ5TossUpMaster101.zip
насколько "честен" алгоритм генерации случайных чисел
Носителем суверенитета и единственным источником власти в Российской Федерации является её многонациональный народ. Гл.1, ст.3. Конституции РФ
- Папа, а у царей бывает мания величия? - Иногда бывает. - А кем они тогда себя мнят? - Народом.
Я взрослая женщина - и я семь лет читала форумы. Настя
Если царь говорит, что чем ниже цена рубля, тем больше доход, то удивляться последствиям его правления не приходится. lada
На данном этапе развития страны считаю наиболее важным отстранить от управления бездарей-троечников в пользу тех людей, которые могут мыслить системно хотя бы на год вперёд. Винни
Многие склонны путать два понятия: «Отечество» и «Ваше превосходительство». Салтыков-Щедрин
С плохими законами и хорошими чиновниками вполне можно править страной. Но если чиновники плохи, не помогут и самые лучшие законы. Бисмарк
Как только дети, жены и любовницы начинают заниматься бизнесом - жди беды. Лукашенко
Т.к. ремоторизацию Ан-2 наладить не удалось, принято решение построить десяток Звезд Смерти для секторального захвата галактики. Рогозин
Это было не падение, Маск показал всем красненькую пипирку. Павел Чичиков 5-jan-2021 inv-ing
это типовой взмык на защите лабы по rnd автор поймет, полагаю
Носителем суверенитета и единственным источником власти в Российской Федерации является её многонациональный народ. Гл.1, ст.3. Конституции РФ
- Папа, а у царей бывает мания величия? - Иногда бывает. - А кем они тогда себя мнят? - Народом.
Я взрослая женщина - и я семь лет читала форумы. Настя
Если царь говорит, что чем ниже цена рубля, тем больше доход, то удивляться последствиям его правления не приходится. lada
На данном этапе развития страны считаю наиболее важным отстранить от управления бездарей-троечников в пользу тех людей, которые могут мыслить системно хотя бы на год вперёд. Винни
Многие склонны путать два понятия: «Отечество» и «Ваше превосходительство». Салтыков-Щедрин
С плохими законами и хорошими чиновниками вполне можно править страной. Но если чиновники плохи, не помогут и самые лучшие законы. Бисмарк
Как только дети, жены и любовницы начинают заниматься бизнесом - жди беды. Лукашенко
Т.к. ремоторизацию Ан-2 наладить не удалось, принято решение построить десяток Звезд Смерти для секторального захвата галактики. Рогозин
Это было не падение, Маск показал всем красненькую пипирку. Павел Чичиков 5-jan-2021 inv-ing
Чем слушать оценки автора, лучше самостоятельно оценить насколько честен алгоритм этой программы.
Алгоритм распределения наций:
Код класса генератора случайных чисел:СписокНаций = ПолучитьСписокПомеченныхНаций();
RND.Init();
Для НомерИгрока = 1 По КоличествоИгроков ЦиклЕсли СписокНаций.Количество > 0 ТогдаКонецЦикла;НомерНацииВСписке = RND.GetCode(СписокНаций.Количество);КонецЕсли;
СтрокаРезультатаЖеребьевки = ИмяИгрокаПоНомеру(НомерИгрока) + " - " + ИмяНацииПоНомеру(НомерНацииВСписке);
Если НЕ РазрешеныОдинаковыеНации ТогдаСписокНаций.УдалитьЗначениеПоНомеру(НомерНацииВСписке);КонецЕсли;
p.s.:class TRandom {float StartCode;public:
void Init(void);};
int GetCode(int Zone);
float GetStartCode(void);
void TRandom::Init(void) {SYSTEMTIME t;}
GetLocalTime(&t);
StartCode=t.wMilliseconds*0.001;
int TRandom::GetCode(int Zone) {StartCode=StartCode*37+1;}
StartCode=StartCode-(int)StartCode;
return (int)(1+StartCode*Zone);
float TRandom::GetStartCode(void) {return StartCode;}
Честно говоря не знаком с таким взмыком.
Лабы по rnd никогда не защищал.
Отлично, спасибо, понравилось!
И очень понравилось, что у программки есть память (запоминает, что было выключено из жеребьевки ранее - посл. сеанс).
Решил еще пару возможных улучшений для программки сказать:
Предложил бы все-таки использовать 2 списка/раздела, которые импортируются из тхт файла.
Где 1-ый раздел автоматом включен длягенерации, а второй (например, идущий в тхт файле к программке через пустую строку) сразу отключен из генерации.
чтобы во второй список игрок самостоятельно мог выносить нации (а список отключенных сразу бросался в глаза).
Я бы сразу во второй список (который без галочки) внес: Испанию, Гуннов, Шошонов, Византию, Полинезию (также, возможно, добавить туда: Карфаген, Швецию, Францию, Бразилию).
Думаю, в случае разделения на 2 раздела/подсписка (участв. и не участв. в жеребьевке) было бы удобнее, да и тогда список наций, наверное, на экране еще стоит и пронумеровать. При этом можно всегда добавить или убрать из 1ого или 2ого списка можно вручную нацию - поставив галочку.
2.Также, еще мне кажется, было бы интересно, если бы была возможность сделать возможность каждому из 2х игроков иметь свой список наций (т.е 2 списка для 2-х игроков). Т.е. один игрок, себе выбрал один список напр. из 8 наций из генерации, а другой игрок себе из 3 наций список составил, которые он будет играть. Функция будет реже использоваться, но я к примеру, со своим пост. партнерам всеми нациями переиграл, при этом учет (кем уже было сыграно) вел в excel'e.
p.s. Но опять же, если есть время на эту правку/и (и она стоит этого времени). Но мне кажется было бы еще удобнее...
В любом случае, огромное спасибо! Жаль, что раньше такой программки не было...
Т.е. список наций нужно разбить на две части, каждую из которых на форме отображать в отдельном окошке и добавить кнопки для переноса наций между разделами (окошками)?
С дополнительными файлами не очень понятно.
Один раз настроенный список "Вкл/Выкл" сохраняется в файле и сейчас, а потом читается.
А для чего нужно нумеровать нации в списках?
Мне кажется, что так имело бы смысл делать, если число игроков, участвующих в жеребьевке, всегда ограничивалось двумя.
Поскольку число игроков между которыми распределяются нации неограничено, то расположить для каждого по два раздела с нациями на форме не получится,
а делать динамическое обновление списков в зависимости от выбранного игрока - это уже скрывать часть информации и тогда демонстрацию экрана будет сделать затруднительно.
Может для этого случая просто сделать две копии программы, каждую в своей папке и запускать для каждого игрока свою копию? Тем более, что настройки хранятся в папке, где лежит файл программы.
>Т.е. список наций нужно разбить на две части, каждую из которых на форме отображать в отдельном окошке и добавить кнопки для переноса наций между разделами (окошками)?
Не обязательно 2 окна, можно через пустую строку в одном окне.
Просто когда все вперемешку не очень удобно. А так все отключенные сразу выделены отдельно и бросаются в глаза.
>С дополнительными файлами не очень понятно.
Нет, я думаю файл правильнее один, как и сейчас.
Просто хотелось бы чтобы правки в нем вручную запоминались, там можно задавать список включенных и не включенных наций
(те, что будут или в разных окнах или просто разделены пустой строкой в одной форме).
>Один раз настроенный список "Вкл/Выкл" сохраняется в файле и сейчас, а потом читается.
Не заметил, что уже есть возможность держать настроенный шаблон.
Я думаю, если делать усовершенствования, то что-то экспресс-справки надо сделать.
>А для чего нужно нумеровать нации в списках?
Когда список из 20-30 позиций и плюс не отсортирован, то с ними удобнее (типо: «и 21 номер» и т д)
>Поскольку число игроков между которыми распределяются нации неограничено, то расположить для каждого по два раздела с нациями на форме не получится, а делать динамическое обновление списков в зависимости от выбранного игрока - это уже скрывать часть информации и тогда демонстрацию экрана будет сделать затруднительно.
Может для этого случая просто сделать две копии программы, каждую в своей папке и запускать для каждого игрока свою копию?
Тем более, что настройки хранятся в папке, где лежит файл программы.
Не смысла делать 2 списка, если это сложно. Согласен, что проще сделать 2 или 3 жеребьевки последовательно (всяко это быстрее, чем делать рестарт).
Версия 1.02
Доработки:
- Добавлен список "Карты";
- Добавлена возможность произвольного редактирования любого из списков на форме;
- Добавлена автоматическая группировка элементов списков "Карты" и "Нации" по наличию отметки и автоматическая сортировка элементов по алфавиту в пределах группы. Группировка/сортировка обновляется при любом изменении списков;
- Добавлена жеребьевка параметров: "Тип карты", "Варвары", "Количество ГГ";
- Добавлена возможность сохранения содержимого списков "Карты", "Нации" в качестве шаблона, который можно использовать в любой момент для приведения списков в предопределенное состояние.
ввиду отсутствия группы для создателей утилит... +
можешь заливать файлы программы и скриншоты в хранилище файлов..
скриншот в первом посте тоже бы обновить...
да, теперь это Программа !
единственное с ГГ можно чуть получше было сделать (например задать галочками возможные четные варианты), так как
иногда генерируются 12, а карту договорились играть крошечную,
а иногда 0, а хотелось бы выбрать вариант от 6 до 12....
ну это мелочи (так как в этом случае просто можно сделать еще генерацию и взять новое кол-во ГГ из нее)... а так СУПЕР!