Nomyx-Language-0.2.2: Language to express rules for Nomic

Safe HaskellNone



This file gives a list of example rules that the players can submit. You can copy-paste them in the field Code of the web GUI. Don't hesitate to get inspiration from there and create your own rules!



nothing :: RuleFuncSource

A rule that does nothing

helloWorld :: RuleFuncSource

A rule that says hello to all players

accounts :: V [(PlayerNumber, Int)]Source

account variable name and type

createBankAccount :: RuleFuncSource

Create a bank account for each players

winXEcuPerDay :: Int -> RuleFuncSource

each player wins X Ecu each day you can also try with minutly or monthly instead of daily and everything in the time-recurrence package

winXEcuOnRuleAccepted :: Int -> RuleFuncSource

a player wins X Ecu if a rule proposed is accepted

moneyTransfer :: RuleFuncSource

a player can transfer money to another player it does not accept new players or check if balance is positive, to keep the example simple

delRule :: RuleNumber -> RuleFuncSource

delete a rule

voteWithMajority :: RuleFuncSource

a majority vote, with the folowing parameters: a quorum of 2 voters is necessary for the validity of the vote the vote is assessed after every vote in case the winner is already known the vote will finish anyway after one day

makeKing :: PlayerNumber -> RuleFuncSource

player pn is the king: we create a variable King to identify him, and we prefix his name with King

monarchy :: RuleFuncSource

Monarchy: only the king decides which rules to accept or reject

revolution :: PlayerNumber -> RuleFuncSource

Revolution! Hail to the king! This rule suppresses the democracy (usually rules 1 and 2), installs the king and activates monarchy.

victoryXRules :: Int -> RuleFuncSource

set the victory for players having more than X accepted rules

displayTime :: RuleFuncSource

will display the time to all players in 5 seconds

noGroupVictory :: RuleFuncSource

Only one player can achieve victory: No group victory. Forbidding group victory usually becomes necessary when lowering the voting quorum: a coalition of players could simply force a victory rule and win the game.

iWin :: RuleFuncSource

Rule that state that you win. Good luck on having this accepted by other players ;)

returnToDemocracy :: [RuleNumber] -> RuleFuncSource

Change current system (the rules passed in parameter) to absolute majority (half participants plus one)

banPlayer :: PlayerNumber -> RuleFuncSource

kick a player and prevent him from returning

referendumOnKickPlayer :: RuleFuncSource

triggers a referendum, if the outcome is yes player 2 will be kicked

gameMasterElections :: RuleFuncSource

triggers elections (all players are candidates), the winner becomes game master

module Data.List