Попробовал, наконец, классную математическую настольную игру "Машина Тьюринга".
На самом деле не столько игра, сколько головоломка, которую вы можете решать в одиночку, совместно или соревнуясь. Она совершенно гениально сделана, и я не до конца понимаю, как именно, но она работает и приносит много удовольствия.
Каждая задача в игре — трехзначное число с цифрами 1..5, зашифрованное в наборе карточек. Карточки двух видов: выражение и его валидатор. Выражение, например, может быть таким: "Вторая цифра меньше трех". Вы выдвигаете гипотезу, каким именно будет число-ответ. А дальше происходит магия — каждое такое число собирается из трёх перфокарт с отверстиями, вы прикладываете к сборке валидатор, и в единственном оставшемся отверстии видете бинарный результат: истина или ложь. Таким образом, получаете информацию о том, справедливо ли выражение для загаданного числа.
Ход за ходом вы должны выбирать самые эффективные гипотезы и выражения, которые отсекут больше всего неверных вариантов. В какой-то момент информации для однозначного ответа становится достаточно. Чем меньше ходов вы потратили, тем лучше.
Если вы нерд и любите фокусы с цифрами, то это прям мастхэв. Играется очень приятно, и вызывает неподдельный кайф каждый раз, когда вы собираете из кусочков ответ, хотя за мгновение до этого может казаться, что до решения ещё очень далеко.
Если же вы не фанат подобного, то подарите коробку знакомому математику, он будет рад!
#games
Also there will be a scheduled downtime for two remaining bots tomorrow, in about 16h 20h from now :
- @BanWarnBot
- @RulesRulesBot
Those have a database, and therefore they need to be take down to not loose any changes happining while the data is moved over.
#scheduled#downtime
https://docs.python.org/3/library/asyncio-dev.html#asyncio-coroutine-not-scheduled
18.5.9.6. Detect #coroutine objects never #scheduled
When a coroutine function is called and its result is not passed to ensure_future() or to the BaseEventLoop.create_task() method, the execution of the coroutine object will never be scheduled which is probably a bug. Enable the debug mode of asyncio to log a warning to detect it.
Example with the bug:
import asyncio
@asyncio.coroutine
def test():
print("never scheduled")
test()
Output in debug mode:
Coroutine test() at test.py:3 was never yielded from
Coroutine object created at (most recent call last):
File "test.py", line 7, in <module>
test()
The fix is to call the ensure_future() function or the BaseEventLoop.create_task() method with the coroutine object.