Форум программистов, компьютерный форум CyberForum.ru

Алгоритм: Как определить размера банка? - C++

Восстановить пароль Регистрация
 
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
12.08.2013, 23:32     Алгоритм: Как определить размера банка? #1
Вот в чём суть: пишу покер дошёл до того, что игроки ставят ставки, игроки которым не хватает денег на ставку ставят столько, сколько есть но потом в конце при открытии они участвуют в розыгрыше банка соответствующему поставленных ими денег. Как определить этот банк? Вот пример

4 игрока положили в банк по 10 фишек в банке стало 40, дальше:

1 игрок ставит ставку 20 фишек
2 игрок у него только 10 и он ставит 10(все что у него есть)
3 игрок у него только 15 и он ставит 15(все фишки)
4 игрок ставит 20(у него больше 20 фишек)

в банке получается 40+65=105 фишек игрок 1 и 4 участвуют в розыгрыше всего банка(105 фишек), игрок 2 участвует в розыгрыше банка 40+ 10*4 и того 80 фишек, игрок 3 уч. в роз. 40+10+ 15*3=95 (3 - потому что игрок 2 здесь не уч)

идея была такая: разбить весь банк на части: 1ПодБанк - 40+10*4(участвуют все игроки) 2Подбанк - 5*3(уч. 1,3,4 игрооки) и 3ПодБанк - 2*5(уч. 1 и 4 игроки) но нужно как то сохранять и как его разить, на ночь глядя начали посещать мысли о куче векторов

Помогите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2013, 23:32     Алгоритм: Как определить размера банка?
Посмотрите здесь:

Для действительной матрицы размера m x n определить числа b0, b1,…, bm C++
В матрице А размера n*n определить минимальный элемент на главной диагонали C++
C++ Разработать алгоритм и написать по нему программу транспонирования матрицы А размера m × n. Значение величин m и n выбрать из табл. 4.1 в соответствии
Разработать алгоритм и написать по нему программу сложения матриц А и В размера m × n C++
Разработать алгоритм и написать по нему программу транспонирования матрицы А размера m × n. Значение величин m и n выбрать из табл. 4.1 в соответствии C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxtron
 Аватар для Maxtron
47 / 47 / 2
Регистрация: 17.11.2012
Сообщений: 224
Записей в блоге: 1
12.08.2013, 23:53     Алгоритм: Как определить размера банка? #2
так вам нужно сохранить значения нескольких банков,я правильно понял? почему бы не использовать файл для записи и считывания содержимого банка?
JlightenDev_C++
 Аватар для JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
13.08.2013, 00:06     Алгоритм: Как определить размера банка? #3
C++
1
std::vector<your_struct_4_players> bank;
m?
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
13.08.2013, 00:21     Алгоритм: Как определить размера банка? #4
Цитата Сообщение от JlightenDev_C++ Посмотреть сообщение
C++
1
std::vector<your_struct_4_players> bank;
m?
Поддерживаю данное решение

Хотя во многом нужно понимать как что написано чтобы дать болие точный совет
Однако в связи с отсутствием данной возможности вариант JlightenDevа выглядит самым логическим ++
только не совсем пойму зачем тут вектор!
можно ведь программа хранит данные только этой игры и значит мы можим иметь в структуре 4-ри поля в которых будут данные о том сколько внес каждый игрок а там уже как хотим так и вертим при начале каждой последующей партии данные обнуляются и все
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
13.08.2013, 00:31  [ТС]     Алгоритм: Как определить размера банка? #5
Цитата Сообщение от alex1392 Посмотреть сообщение
Хотя во многом нужно понимать как что написано чтобы дать болие точный совет
ну типо в цикле предлагаем каждому игроку поставить ставку определенного размера и соотв. увеличиваем банк+ сохр сколько он вложил фишек в банк кода ещё нету - на листике только рисунки(

но я думал что в мультимап сохранять пару < кол_фишек_игрока_в_банке, номер игрока > затем выбираем первый элемент(он же минимальное вложенное кол фишек в банк) умножаем его ключ на размер мапа - это первый банк, сохр этот банк и номера всех игроков которые находятся в данном контейнере, удаляем полученный банк из основного, удаляем элементы из мультимапа с минимальным ключем, заново берем первый элемент и т.д пока не останутся элементы вложившие максимальное кол фишек

но нужно как то сохранять банк и номера игроков которые будут его разыгрывать
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
13.08.2013, 00:33     Алгоритм: Как определить размера банка? #6
И не совсем понятно зачем несколько банков ведь в конце партии мы обладаем информацией о том кто выйграл тоесть у каво выше приоритет и кому первому выплачивать банк! выплатив ему идем далие по списку если сумма в банке !=0 если есть 2-вое 3-е игроков с одинаковым приоритетом берем всех трех сравниваем суммы внесенные за игру достаем самую меньшую min*colichestvo_igrokov=brbank; тоесть опщяя сума выплаты после выплаты убираем игрока которому была выплачина вся сума а из внесенной сумы каждым игроком -min и тд пока bank!=0;
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
13.08.2013, 00:53  [ТС]     Алгоритм: Как определить размера банка? #7
Цитата Сообщение от alex1392 Посмотреть сообщение
у каво выше приоритет и кому первому выплачивать банк
банк выплачивается тому у кого выпала старшая комбинация карт, она может выпасть у игрока который вложл меньше денег
например 1игр вложил 20, второй 30 и третий 30, у первого старшая комбинация ин забирает 20 из своей и по 20 с чужих ставок, а второй и третий разыгрывают (30-20)+(30-20)=20

Добавлено через 11 минут
+ это тут не учитывается, но все же:
допустим 6 игроков внесли по 20 фишек стало 120, затем первый игрок ставит 100 4 игрока сбрасывают карты и ихние фишки остаются в банке, а у 6 игрока всего 10 и он ставит на все и это получ 120+100+10=230, 90 возвращается первому игроку в банке остается 140 и первый и шестой игрок уаствуют в розыгрыше 140 хотя шестой внес всего 30 фишек

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

а то по моему методу получится поставили 6 игроков по 20 стало 120 4 прекратили игру осталось двое 2 умножить на кол минимального взноса = 40 а надо что бы и на эти фишки он претендовал

Добавлено через 1 минуту
казалось что нереально трудным является определить старшую комбинацию из девяти возможных, а теперь запара в элементарных ставках)

Добавлено через 1 минуту
кароче на сегодня наверно все)
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
13.08.2013, 01:06     Алгоритм: Как определить размера банка? #8
Цитата Сообщение от Хулиган Посмотреть сообщение
банк выплачивается тому у кого выпала старшая комбинация карт, она может выпасть у игрока который вложл меньше денег
например 1игр вложил 20, второй 30 и третий 30, у первого старшая комбинация ин забирает 20 из своей и по 20 с чужих ставок, а второй и третий разыгрывают (30-20)+(30-20)=20
смотри
допустим 1-й игрок вложил 20 (приоритет=4)
допустим 2-й игрок вложил 30(приоритет=3)
допустим 3-й игрок вложил 35(приоритет=3)
допустим 4-й игрок вложил 80(приоритет=2)
bank=165
выйграл игрок №1 приоритет 4 берем его ставку Rate_player_number_1*max_player=80 выплачиваем 80
Rate_player_number_1 -20
Rate_player_number_2 -20
Rate_player_number_3 -20
Rate_player_number_4 -20
получаем
1-й игрок вложил 0(приоритет=4) естевственно его рейтинг не учитывается так как ставка уже =0
2-й игрок вложил 10(приоритет=3)
3-й игрок вложил 15(приоритет=3)
4-й игрок вложил 60(приоритет=2)
bank=85
выйграл игрок №2и№3 приоритет 3 берем их ставки Rate_player_number_2 и Rate_player_number_3 берем найменьший
Rate_player_number_2*max_player=30 делим на количевство играков с приоритетом 3 и выплачиваем им
получаем
1-й игрок вложил 0(приоритет=4)
2-й игрок вложил 0(приоритет=3)
3-й игрок вложил 5(приоритет=3)
4-й игрок вложил 50(приоритет=2)
bank=55
выйграл игрок №3 приоритет 3 берем ставку Rate_player_number_3*max_player=10 выплачиваем
получаем
1-й игрок вложил 0(приоритет=4)
2-й игрок вложил 0(приоритет=3)
3-й игрок вложил 0(приоритет=3)
4-й игрок вложил 45(приоритет=2)
bank=45
выйграл игрок №4 приоритет 2 берем ставку Rate_player_number_4*max_player=45 выплачиваем
bank==0 continue внутри основного цикла партия закончена старт новой партии
вопрос сброса карт тут не рассмотрен )) извените но мне действительно очень лень писать весь алгоритм расчета))
но выйдет чтото типа таво что его приоритет приравнивается к 0 а ставка остается вот только приоритет 0 мы не рассматриваем впринципе

Добавлено через 8 минут
max_player это количевство игроков чей взнос >0 тоесть дажи при сбросе карт Rate_player_number_3 остается больши 0 а прироритет ==0
и те деньги которые он внес продолжают разыгрываться между оставшимися притендентами
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
13.08.2013, 01:08  [ТС]     Алгоритм: Как определить размера банка? #9
Цитата Сообщение от alex1392 Посмотреть сообщение
вопрос сброса карт тут не рассмотрен ))
у меня уже есть определение комбинации, создание колоды раздача игрокам и на стол, вот только осталось это сделать...метод супер! только как бы ещё оставить те фишки на розыгрыш которые остались после покинувших игру игроков, а то они просто пойдут к игроку с высшим приоритетом?
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
13.08.2013, 01:09     Алгоритм: Как определить размера банка? #10
там при выйграше нужна проверка у каво меньши всего денег внесено ведь чел с найменьшим приоритетом мог внести меньши ) забыл добавить в алгоритм )) но еше не поздно там это долепить 3 секунды
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
13.08.2013, 01:09  [ТС]     Алгоритм: Как определить размера банка? #11
Цитата Сообщение от alex1392 Посмотреть сообщение
и те деньги которые он внес продолжают разыгрываться между оставшимися притендентами
так а если его комбинация окажется сильнейшей? а он не уч
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
13.08.2013, 01:10     Алгоритм: Как определить размера банка? #12
Цитата Сообщение от Хулиган Посмотреть сообщение
у меня уже есть определение комбинации, создание колоды раздача игрокам и на стол, вот только осталось это сделать...метод супер! только как бы ещё оставить те фишки на розыгрыш которые остались после покинувших игру игроков, а то они просто пойдут к игроку с высшим приоритетом?
игроку с высшим приоритетом пойдет его честная доля и если после этого баланс у выбывшего игрока будит >0 то он будит и дольши рассматриваться в игре
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
13.08.2013, 01:12  [ТС]     Алгоритм: Как определить размера банка? #13
Цитата Сообщение от alex1392 Посмотреть сообщение
допустим 1-й игрок вложил 20 (приоритет=4)
допустим 2-й игрок вложил 30(приоритет=3)
допустим 3-й игрок вложил 35(приоритет=3)
допустим 4-й игрок вложил 80(приоритет=2)
bank=165
выйграл игрок №1 приоритет 4 берем его ставку Rate_player_number_1*max_player=80 выплачиваем 80
Rate_player_number_1 -20
Rate_player_number_2 -20
Rate_player_number_3 -20
Rate_player_number_4 -20
получаем
а если игрок 1 выбыл из игры и тут он побеждает и ему ещё дают фишки( мб где то сохранять выбывших?
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
13.08.2013, 01:12     Алгоритм: Как определить размера банка? #14
Цитата Сообщение от Хулиган Посмотреть сообщение
так а если его комбинация окажется сильнейшей? а он не уч
не понял о чем ты но у него не можит быть сильнейшей комбинации так как он сбросил карты
О боже у тебя скайп есть ?
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
13.08.2013, 01:14  [ТС]     Алгоритм: Как определить размера банка? #15
Цитата Сообщение от alex1392 Посмотреть сообщение
не понял о чем ты но у него не можит быть сильнейшей комбинации так как он сбросил карты
ааа...я уже начал тупить, раз сбросил то не находим ему комбинацию)

а на определение комбинации код делал?
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
13.08.2013, 01:16     Алгоритм: Как определить размера банка? #16
Цитата Сообщение от Хулиган Посмотреть сообщение
ааа...я уже начал тупить, раз сбросил то не находим ему комбинацию)

а на определение комбинации код делал?
неа я никогда покер не делал )
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
13.08.2013, 01:20  [ТС]     Алгоритм: Как определить размера банка? #17
Цитата Сообщение от alex1392 Посмотреть сообщение
неа я никогда покер не делал )
чтот на подобии? спасибо, а то с мультимапом+кучей промежуточных векторов я бы сошёл с ума на ночь глядя)
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
13.08.2013, 01:23     Алгоритм: Как определить размера банка? #18
Цитата Сообщение от Хулиган Посмотреть сообщение
чтот на подобии?
неа из игрушек писал змейку
Цитата Сообщение от Хулиган Посмотреть сообщение
спасибо, а то с мультимапом+кучей промежуточных векторов я бы сошёл с ума на ночь глядя)
а да всегда пожалуста )) обращяйся )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2013, 01:26     Алгоритм: Как определить размера банка?
Еще ссылки по теме:

C++ Разработать алгоритм и написать по нему программу умножения матрицы А размера m × n на матрицу В размера n × p. Значение величин m, n, р выбрать из та
C++ Дан массив размера N. Определить количество его промежутков монотонности
C++ Задан массив размера N. Определить число положительных элементов в массиве

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
13.08.2013, 01:26  [ТС]     Алгоритм: Как определить размера банка? #19
Цитата Сообщение от alex1392 Посмотреть сообщение
неа из игрушек писал змейку
та змейку наверное тут каждый уж написал по 3 раза) змейка это как "Здравствуй мир!"

без неё сейчас на работу не берут!(
Yandex
Объявления
13.08.2013, 01:26     Алгоритм: Как определить размера банка?
Ответ Создать тему
Опции темы

Текущее время: 16:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru