Skip to content

Instantly share code, notes, and snippets.

@sash-kan
Created August 17, 2012 09:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sash-kan/3377201 to your computer and use it in GitHub Desktop.
Save sash-kan/3377201 to your computer and use it in GitHub Desktop.
помощь:
@echo "проверка карты:"
@echo "make в_своем_ли_уме карта=валет"
@echo "или"
@echo "make в_своем_ли_уме карта=пятерка"
# Тройка думает, что Туз не в своём уме.
троика = $(call не_в_своем_уме,$(туз))
# Четвёрка думает, что Тройка и Двойка обе не могут быть не в своём уме.
четверка = $(call обе_не_могут_быть_не_в_своем,$(троика),$(двоика))
# Пятёрка думает, что Туз и Четвёрка либо оба не в своём уме, либо оба в своём уме.
пятерка = $(call обе_либо_в_своем_либо_не_в_своем,$(туз),$(четверка))
# Шестёрка думает, что Туз и Двойка оба в своём уме.
шестерка = $(call обе_в_своем,$(туз),$(двоика))
# Семёрка думает, что Пятёрка не в своём уме.
семерка = $(call не_в_своем_уме,$(пятерка))
# Валет думает, что Шестёрка и Семёрка обе не могут быть не в своём уме.
валет = $(call обе_не_могут_быть_не_в_своем,$(шестерка),$(семерка))
# В своём ли уме такая-то карта?
в_своем_ли_уме:
@echo $(if $($(карта)),да,нет)
# функции
не_в_своем_уме = $(if $(1),,ум)
обе_в_своем = $(and $(1),$(2))
обе_не_в_своем = $(and $(call не_в_своем_уме,$(1)),$(call не_в_своем_уме,$(2)))
обе_не_могут_быть_не_в_своем = $(or $(1),$(2))
обе_либо_в_своем_либо_не_в_своем = $(or $(call обе_в_своем,$(1),$(2)),$(call обе_не_в_своем,$(1),$(2)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment