Перейти к содержимому


Фотография

Игровой автомат «Однорукий бандит»


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 25

#1 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 03 Май 2014 - 00:49

Доброго времени суток. Хочу рассказать вам, как можно в игре MineCraft построить игровой автомат на подобии всем известного «Однорукого бандита». Для тех кто подзабыл напомню принцип действия этого автомата http://ru.wikipedia....ki/Слот-машина. Игрок делает ставку после чего запускает машину. Машина имеет три вращающихся барабана с нанесенными на них различными символами. Барабаны останавливаются в случайном положении и в зависимости от выпавших символов игрок либо проигрывает, либо получает свою ставку умноженную в несколько (иногда в сотни) раз.

Для постройки у вас должны быть установлены следующие моды: ComputerCraft(как же без него) с аддоном OpenCCSensors, BuildCraft и ProjectRed.

Построим вот такую конструкцию из золотого блока и шести золотых мониторов. На золотой блок установим кнопку.
Прикрепленный файл  1.png   49,87К   75 Количество загрузок:
С обратной стороны монитора установим компьютер (подойдет как золотой так и обычный) и соединим его с золотым блоком при помощи красного провода как показано на рисунке.
Прикрепленный файл  2.png   73,11К   75 Количество загрузок:
Чуть в сторонке от компьютера, по диагонали установите сундук.
Прикрепленный файл  3.png   80,74К   74 Количество загрузок:
Этот сундук будет использоваться для хранения предметов, на которые идет игра. Если играть вы планируете по крупному, то объём сундука должен быть как можно большим. Для этой цели подойдет алмазный сундук, ну или на худой конец – серебряный.
  • Alex это нравится

#2 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 03 Май 2014 - 00:52

Под правым нижним углом монитора установим обсидиановую трубу. В нее игрок будет вносить свою ставку. Прикрепленный файл  4.png   81,91К   76 Количество загрузок: Соединим обсидиановую трубу с сундуком золотой трубой. В самом конце поставим алмазную трубу, чтобы в сундук попадали только те предметы, на которые должна идти игра. Теперь самое время определить, на что именно мы будем играть. Предположим, это будут железные слитки. Внимательно смотрим, какой конец алмазной трубы подсоединен к сундуку. Ага – серый. Заходим в настройки алмазной трубы и устанавливаем в серую ячейку железный слиток. Прикрепленный файл  5.png   87,92К   74 Количество загрузок: В сундук тоже нужно положить 20-30 стаков железных слитков.

#3 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 03 Май 2014 - 00:55

Теперь сделаем трубу, по которой слитки будут извлекаться из сундука, для выдачи игроку его выигрыша. Это должен быть, разумеется, отрезок деревянной трубы. Установим и настроим при помощи ключа отрезок железной трубы. Оставшуюся часть трубы сделаем из золота. Другой конец трубы выведем под левым нижним углом монитора как показано на рисунке. Прикрепленный файл  6.png   88,43К   74 Количество загрузок: Для извлечения предметов из сундука установим на деревянную трубу пульсирующий гейт. Прикрепленный файл  7.png   83,31К   74 Количество загрузок: Настроим пульсирующий гейт на управление редстоун-сигналом и выберем ему функцию – «EnergyPulser». Прикрепленный файл  8.png   81,76К   75 Количество загрузок: Нам осталось установить над компьютером сенсор. Сенсор нужен для того, чтобы компьютер мог контролировать количество предметов в сундуке. В сенсор нужно зарядить Inventory Sensor Card. Прикрепленный файл  9.png   79,54К   75 Количество загрузок: На этом аппаратная часть закончена. Приступаем к программированию.

#4 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 03 Май 2014 - 00:59

Заходим в терминал компьютера и выполняем команду pastebin get ihL5CTxd casino

Возможно, полученную программу придется чуть подкорректировать. Сначала определим координаты сундука относительно сенсора. Для этого выполним ocs/programs/sensorview

Выбираем элемент с именем DiamondChest. Если вы используете сундук другого типа, то и имя его должно быть соответствующим.
Прикрепленный файл  10.png   71,5К   75 Количество загрузок:
Запоминаем координаты сундука относительно сенсора. В случае на картинке это -1,-1,1.

Выходим из sensorview и открываем на редактирование файл casino. Находим в пятой строчке переменную ChestPos и присваиваем ей значение ‘-1,-1,1’
Прикрепленный файл  11.png   76,49К   75 Количество загрузок:
Сохраняем файл casino и запускаем его вот таким образом monitor right casino.

Если всё сделано правильно, на мониторе мы должны увидеть вот такую картину.
Прикрепленный файл  12.png   51,81К   76 Количество загрузок:

#5 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 03 Май 2014 - 01:01

Как же работает эта машина?

Счастливой цифрой является, разумеется, семерка. В трубу справа от кнопки вносим ставку. Это должны быть железные слитки в количестве от 1 до 5. Таблица чисел вверху экрана белым цветом показывает сделанную ставку и возможный выигрыш в случае выпадения одной, двух или трех семерок.

Когда ставка принята, нажимаем кнопку. И вот теперь всё зависит от фортуны. Что же выпадет на баранах? Если нам повезло и среди выпавших цифр есть хотя бы одна семерка, получаем выигрыш из левой трубы.

Для завершения нам осталось создать файл startup с текстом shell.run(“monitor right casino”), перегрузить компьютер и сделать корпус из GoldBlockCover.
Прикрепленный файл  13.png   130,79К   75 Количество загрузок:
На этом можно было бы и закончить, но для тех, кто дружит с математикой, я хотел бы добавить еще вот что. В строке номер 100 файла casino можно найти табличку bonus={2,20,200}. Она содержит числа, которые определяют выигрыш игрока в случае выпадения одной, двух или трех семерок соответственно. Давайте подсчитаем матожидание выигрыша.

M=B1*P1+B2*P2+B3*P3

Где B1, B2, B3 – выигрыш в случае выпадения одной, двух или трех семерок;

P1, P2, P3 – вероятность соответствующего события.

Вероятность выпадения только одной семерки равна 0,243. Вероятность выпадения двух семерок – 0,027. Трех семерок – 0,001. Кто силен в комбинаторике, проверьте меня.

Таким образом, матожидание выигрыша равняется:

M=2*0,243+20*0,027+200*0,001=1,226

Что это значит? Это значит, что на тысячу принятых слитков автомат выдаст в качестве призов 1226. Согласитесь, для казино разорительно. И если вы, построив такой автомат, хотите сколотить на нем состояние то вам стоит подкорректировать табличку bonus.

Считайте ваши денежки и удачной вам игры!

#6 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 742
  • Уровень сигнала: 52,19%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 03 Май 2014 - 11:37

bonus={2,20,200}
M=B1*P1+B2*P2+B3*P3
Где B1, B2, B3 – выигрыш в случае выпадения одной, двух или трех семерок;
P1, P2, P3 – вероятность соответствующего события.
Вероятность выпадения только одной семерки равна 0,243. Вероятность выпадения двух семерок – 0,027. Трех семерок – 0,001. Кто силен в комбинаторике, проверьте меня.

Таким образом, матожидание выигрыша равняется: M=2*0,243+20*0,027+200*0,001=1,226
Что это значит? Это значит, что на тысячу принятых слитков автомат выдаст в качестве призов 1226.

Ой, Дмитрий! Чувствую, где-то подвох, не пойму пока где:). Играл, и разорился до нитки:D
У меня такое чувство,что М на 3 разделить что ли. А то получается, прибыльность 123%. Отбросим ничтожный вариант выпадения один из тысячи - где платят 200 кусочков(то есть на тысячу ставок по 1 кусочку железа в среднем выигрываем 200) Та же история и с двумя семерками.

На сотне семерка встречается 20 раз (19 раз по одной и раз в числе 77 две). Верю, что от 000 до 999 - 243 числа с одной семеркой, не помню уже формул комбинаторики, киньте формулу, пожалуйста. Ну так вот - за вероятность 0,243 выигрыш всего один к одному, как на красное-черное, где вероятность 0,5!:p Что-то не сходиться. Как по мне, строку бонуса увеличить надо ~ до 4, 37, 1000!

С каверами автоматик вообще конфетка, эстетично очень смотрится. Настроить бы у нас на сервере таких в казино, а рулетку по центру поставить!

P.S. Тема была перемещена в этот раздел, как готовый и оформленый проект. (Администрация форума)

#7 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 04 Май 2014 - 23:49

О вероятностях.
Вероятность выпадения семерки на отдельно взятом барабане - 0,1. Вероятность не выпадения - 0,9. Эти два факта, вроде, сомнений не вызывают.
Теперь какие возможны варианты выпадения семерок на трех барабанах?
1) Ни одной семерки не выпало. Это означает, что на первом барабане не выпало И на втором не выпало И на третьем не выпало. Поскольку независимые события собираются по "И" вероятности перемножаются. Т. е. имеем
P0=0,9*0,9*0,9=0,729
2) Только на одном барабане выпала семерка. Это означает, что на первом барабане выпала семерка И на втором не выпала И на третьем не выпала. А так же надо учесть варианты, когда семерка выпала на втором ИЛИ на третьем барабане. Там где независимые события собираются по "И" - вероятности умножаем, там где взаимоисключающие события собираются по "ИЛИ" - складываем:
P1=0,1*0,9*0,9+0,9*0,1*0,9+0,9*0,9*0,1=0,243
3) Семерки выпали на двух барабанах: рассуждения аналогичны п.2
P2=0,1*0,1*0,9+0,1*0,9*0,1+0,9*0,1*0,1=0,027
4) Выпали три семерки: P3=0,1*0,1*0,1=0,001
Эти четыре варианта исхода являются взаимоисключающими (т.е. возникновение двух из них одновременно невозможно) и взаимодополняющими (других вариантов нет), а значит сумма их вероятностей должна равняться единице. Проверяем
P=P0+P1+P2+P3=0,729+0,243+0,027+0,001=1
  • Alex и DUIIIES это нравится

#8 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 742
  • Уровень сигнала: 52,19%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 05 Май 2014 - 14:46

Спасибо за исчерпывающий ответ, по "теорверу" в универе 5-ка была, но почти 15 лет прошло, забывается все.:)

#9 Оффлайн   DUIIIES

DUIIIES
  • Пользователи
  • Сообщений: 280
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.
  • ГородКоролёв

Отправлено 11 Май 2014 - 04:51

Если бы комбинаторика преподавалась повсюду на примере казино, то народ бы охотнее учился :D

#10 Гость_romaha_7_*

Гость_romaha_7_*
  • Гости
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 02 Июнь 2014 - 20:53

Супер !:)

#11 Оффлайн   TheScientist

TheScientist
  • Пользователи
  • Сообщений: 154
  • Уровень сигнала: 0,08%
  • В игре: 0 час. 34 мин.
  • ГородГде-то на жёстком диске.

Отправлено 08 Январь 2015 - 16:04

Хе хе, чувствую запах прибыли >:D



#12 Оффлайн   PeacefulAtom

PeacefulAtom
  • Пользователи
  • Сообщений: 6
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 25 Февраль 2015 - 10:53

Добрый день, извиняюсь, но наткнулся на вашу тему недавно, решил попробовать, но вместо экрана успеха вижу экран, что файл не найден. В чем я мог ошибиться?



#13 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 25 Февраль 2015 - 11:11

Добрый день, извиняюсь, но наткнулся на вашу тему недавно, решил попробовать, но вместо экрана успеха вижу экран, что файл не найден. В чем я мог ошибиться?

Убедитесь, что у Вас установлен аддон OpenCCSensors. Если установлен, опишите подробнее при выполнении какого действия какое именно сообщение выдается.



#14 Оффлайн   PeacefulAtom

PeacefulAtom
  • Пользователи
  • Сообщений: 6
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 26 Февраль 2015 - 08:06

Ошибка выходит при выводе программы на монитор. Аддон есть. Все настроено по вашей схеме.

#15 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 26 Февраль 2015 - 08:44

Выполните, пожалуйста, команду monitor right casino и поместите в эту тему скрины терминала компьютера и внешнего монитора



#16 Оффлайн   PeacefulAtom

PeacefulAtom
  • Пользователи
  • Сообщений: 6
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 26 Февраль 2015 - 17:53

Вот так оно выглядит,8fce3a57d777.pngи так монитор a7f7090bbb73.png



#17 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 26 Февраль 2015 - 18:11

Похоже, у нас разные версии OpenCCSensors. Выложи, пожалуйста, на под спойлер или на пастебин содержимое файла ocs/apis/sensor. Будем разбираться



#18 Оффлайн   PeacefulAtom

PeacefulAtom
  • Пользователи
  • Сообщений: 6
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 26 Февраль 2015 - 20:20

Вопрос, как открыть этот файл?



#19 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 26 Февраль 2015 - 20:24

Вопрос, как открыть этот файл?

edit ocs/apis/sensor

Или, если так не даст, то в два приема:

cd ocs/apis/
edit sensor

В сингле - просто открой папку с сейвом и найди каталог computer. Там все файлы внутри должны быть.


Сообщение отредактировал Totoro: 26 Февраль 2015 - 20:27


#20 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,84%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 26 Февраль 2015 - 20:37

edit ocs/apis/sensor
Или, если так не даст, то в два приема:
cd ocs/apis/
edit sensor
В сингле - просто открой папку с сейвом и найди каталог computer. Там все файлы внутри должны быть.


В CC системные файлы которые вшитые в мод, в сейве не отображаются.
Аддоны считаются тоже.

#21 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 26 Февраль 2015 - 20:51

Ну, тогда придется открывать файл мода WinRAR'ом и искать там что-то вроде assets/lua.



#22 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 27 Февраль 2015 - 10:08

Можно скопировать его командой copy ocs/apis/sensor /sensor а потом искать в папке computers



#23 Оффлайн   PeacefulAtom

PeacefulAtom
  • Пользователи
  • Сообщений: 6
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 27 Февраль 2015 - 17:25

Похоже, у нас разные версии OpenCCSensors. Выложи, пожалуйста, на под спойлер или на пастебин содержимое файла ocs/apis/sensor. Будем разбираться

local function waitForResponse( _id )
	while true do
		local event = {os.pullEvent()}
		if event[2] == _id then
			if event[1] == "ocs_success" then
				return event[3]
			elseif event[1] == "ocs_error" then
				return nil, event[3]
			end
		end
	end
end

function wrap(side)
	local wrappedTable = {}
	if peripheral.getType(side) == "sensor" then
		local periph = peripheral.wrap(side)
		for k,v in pairs(periph) do
			if type(k) == "string" and type(v) == "function" then
				wrappedTable[k] = function(...)
					local id = periph[k](...)
					if id == -1 then
						return false
					end
					return waitForResponse(id)
				end
			end
		end
		return wrappedTable
	else
		return nil, "not a sensor"
	end
end

function call(side, ...)
	if peripheral.getType(side) == "sensor" then
		local id = peripheral.call(side, ...)
		if id == -1 then
			return false
		end
		return waitForResponse(id)
	else
		return nil, "not a sensor"
	end
end

Это или нет ?



#24 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 27 Февраль 2015 - 18:52

 

Это или нет ?

 

Это. И файлы у нас одинаковые. Только почему-то он не подключается как API. Попробуй перенести его в корень диска и подключить оттуда. Во 2-й строке нужно будет написать 

os.loadAPI("sensor")
вместо
os.loadAPI("ocs/apis/sensor")


#25 Оффлайн   PeacefulAtom

PeacefulAtom
  • Пользователи
  • Сообщений: 6
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 27 Февраль 2015 - 19:02

Слушай, можешь дать свой скайп, я свяжусь с тобой, я мало что понимаю в моде, поэтому прошу помощи, однако этот файл я открыл в дирректории где майн лежит. В игре не получилось. Не допер как.



#26 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 01 Март 2015 - 12:54

Слушай, можешь дать свой скайп, я свяжусь с тобой, я мало что понимаю в моде, поэтому прошу помощи, однако этот файл я открыл в дирректории где майн лежит. В игре не получилось. Не допер как.


Заходи в РК по будням




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных