Решение на Изберете си проект от Иван Георгиев

Обратно към всички решения

Към профила на Иван Георгиев

Код

# Бих искал да имплементирам играта с карти Охайо.
# Правила:
# - могат да участват от 2 до 4 играчи, като всеки играе за себе си
# - играта се състои от последователни кръгове, в които на играчите се
# раздават съответно 1, 2, 3 и т.н. карти, докато дойде кръгът, в който всички
# карти бъдат раздадени между играчите (на всеки кръг различен играч е дилър,
# като въртенето става по часовниковата стрелка, картите се раздават една по
# една, подобно при игра на Покер)
# - след като всеки един от играчите е получил съответния брой карти се обръща
# следващата карта от тестето с останалите карти - боята от тази карта е коз
# за кръга
# - на базата на своите карти и на обърнатият коз, всеки играч декларира колко
# ръце ТОЧНО ще вземе по време на текущия кръг, като печели съответен брой
# точки, ако познае своето предположение:
# 0 ръце - 1 точка
# 1 ръка - 2 точки
# 2 ръце - 4 точки
# ...
# n ръце - n^2 точки
# При неточно спазена прогноза се получават 0 точки, независимо дали играчът е
# направил повече или по-малко от прогнозираните ръце.
# - след 4-то раздаване общият брой на прогнозираните ръце от играчите не може
# да съвпада с броят на картите за кръга (демек някой трябва да е прецакан с
# други думи)
# Пример: (5 кръг) Киро е казал 2 ръце, Вики е казала 1 ръка, Евгени е казал 0
# ръце, 4-ят играч, Христо, не може да каже 2 ръце, защото 2 + 1 + 0 + 2 = 5 и
# има шанс всички да изпълнят спокойно своята прогноза. Затова последният
# играч (Христо) е длъжен да каже число различно от удобното (2 в случая).
# - във всеки кръг силата на картите е като на Без коз (А, К, Q, J, 10, 9, 8,
# 7, 6, 5, 4, 3, 2). Отговарянето на боя е ЗАДЪЛЖИТЕЛНО, ако играч има от
# съответната боя, в противен случай може да избере: да даде коз или да
# хвърли произволна друга карта. Ако играчът хвърли коз, то той взима, освен
# ако някой след него не даде по-силен от неговият такъв.
# - след изиграването на съответния кръг, спечелените точки на всеки играч се
# прибавят към общият му брой точки (отначало той е 0)
# - след като и последният кръг вече е в историята, идва време за 4
# последователни игри на Без коз, в които се раздават абсолютно всички карти
# между играчите и коз не се обръща. Точкуването е същото с разликата, че ако
# играч прогнозира, че ще направи 0 ръце и съответно успее след това, то той
# печели 50 точки (постига се доста трудно и обикновено противниците не
# допускат това да се случи).
# - след последната игра на Без коз (4-та тоест) се сумират всички точки,
# спечелени от играчите в кръговете и се определя победител - това е играчът
# с най-много спечелени точки.
# Моята идея е да имплементирам основната част от играта и да създам робот,
# който да може да играе адекватно по правилата с цел победа. Изкуственият
# интелект ще може да се "прикачи" на произволен брой играчи (между 0 и 4),
# в зависимост от това колко реални играчи участват в играта.
# Целта ми е да изградя core частта на приложението. GUI-то е опционално и ще
# бъде изработено при достатъчно време и изградена core част.

История (1 версия и 1 коментар)

Иван обнови решението на 26.04.2015 16:51 (преди почти 9 години)

+# Бих искал да имплементирам играта с карти Охайо.
+
+# Правила:
+# - могат да участват от 2 до 4 играчи, като всеки играе за себе си
+# - играта се състои от последователни кръгове, в които на играчите се
+# раздават съответно 1, 2, 3 и т.н. карти, докато дойде кръгът, в който всички
+# карти бъдат раздадени между играчите (на всеки кръг различен играч е дилър,
+# като въртенето става по часовниковата стрелка, картите се раздават една по
+# една, подобно при игра на Покер)
+# - след като всеки един от играчите е получил съответния брой карти се обръща
+# следващата карта от тестето с останалите карти - боята от тази карта е коз
+# за кръга
+# - на базата на своите карти и на обърнатият коз, всеки играч декларира колко
+# ръце ТОЧНО ще вземе по време на текущия кръг, като печели съответен брой
+# точки, ако познае своето предположение:
+# 0 ръце - 1 точка
+# 1 ръка - 2 точки
+# 2 ръце - 4 точки
+# ...
+# n ръце - n^2 точки
+# При неточно спазена прогноза се получават 0 точки, независимо дали играчът е
+# направил повече или по-малко от прогнозираните ръце.
+# - след 4-то раздаване общият брой на прогнозираните ръце от играчите не може
+# да съвпада с броят на картите за кръга (демек някой трябва да е прецакан с
+# други думи)
+
+# Пример: (5 кръг) Киро е казал 2 ръце, Вики е казала 1 ръка, Евгени е казал 0
+# ръце, 4-ят играч, Христо, не може да каже 2 ръце, защото 2 + 1 + 0 + 2 = 5 и
+# има шанс всички да изпълнят спокойно своята прогноза. Затова последният
+# играч (Христо) е длъжен да каже число различно от удобното (2 в случая).
+# - във всеки кръг силата на картите е като на Без коз (А, К, Q, J, 10, 9, 8,
+# 7, 6, 5, 4, 3, 2). Отговарянето на боя е ЗАДЪЛЖИТЕЛНО, ако играч има от
+# съответната боя, в противен случай може да избере: да даде коз или да
+# хвърли произволна друга карта. Ако играчът хвърли коз, то той взима, освен
+# ако някой след него не даде по-силен от неговият такъв.
+# - след изиграването на съответния кръг, спечелените точки на всеки играч се
+# прибавят към общият му брой точки (отначало той е 0)
+# - след като и последният кръг вече е в историята, идва време за 4
+# последователни игри на Без коз, в които се раздават абсолютно всички карти
+# между играчите и коз не се обръща. Точкуването е същото с разликата, че ако
+# играч прогнозира, че ще направи 0 ръце и съответно успее след това, то той
+# печели 50 точки (постига се доста трудно и обикновено противниците не
+# допускат това да се случи).
+# - след последната игра на Без коз (4-та тоест) се сумират всички точки,
+# спечелени от играчите в кръговете и се определя победител - това е играчът
+# с най-много спечелени точки.
+
+# Моята идея е да имплементирам основната част от играта и да създам робот,
+# който да може да играе адекватно по правилата с цел победа. Изкуственият
+# интелект ще може да се "прикачи" на произволен брой играчи (между 0 и 4),
+# в зависимост от това колко реални играчи участват в играта.
+
+# Целта ми е да изградя core частта на приложението. GUI-то е опционално и ще
+# бъде изработено при достатъчно време и изградена core част.