Blackjack: Difference between revisions
Jump to navigation
Jump to search
*>Tepples lj advance probably won't have blackjack |
*>Lardarse Added a new command for pre-defined sequences |
||
Line 11: | Line 11: | ||
;<code>''number'' bag of ''list''</code> | ;<code>''number'' bag of ''list''</code> | ||
:Make a bag of ''list'' and deal the first ''number'' in random sequence, then reshuffle. | :Make a bag of ''list'' and deal the first ''number'' in random sequence, then reshuffle. | ||
;<code>sequence of ''list''</code> | |||
:Starting with the first piece of ''list'', deal each piece in turn. When the end of the ''list'' is reached, start again from the beginning. Equivalent to <code>''list'' with ''len(list)-1'' history</code> | |||
;<code>''list'' with ''len'' history</code> | ;<code>''list'' with ''len'' history</code> | ||
:Keep a list called ''history'' of the last ''len'' pieces dealt. (Repeated pieces in ''list'' are separate pieces for purpose of the history.) Choose a piece at random from ''list'' which is not in ''history'' and deal it. Then put the piece in ''history'' and remove the oldest piece from ''history''. | :Keep a list called ''history'' of the last ''len'' pieces dealt. (Repeated pieces in ''list'' are separate pieces for purpose of the history.) Choose a piece at random from ''list'' which is not in ''history'' and deal it. Then put the piece in ''history'' and remove the oldest piece from ''history''. |
Revision as of 20:36, 1 January 2007
Blackjack is a language to specify randomizers, first proposed by Lardarse and expanded to cover history-style randomizers by Tepples. The name is derived from the similarity of the original proposal to the randomizer in the card game Blackjack. It is intended to be useful both for human beings to read and for computers to parse. Tepples expects to add a Blackjack interpreter as a randomizer option in future versions of Lockjaw for PC.
Syntax
list
- Choose a piece at random from the comma-separated list and deal it. Duplicates are permitted, making the duplicated pieces more likely. Equivalent to
1 bag of list
,list with 0 history
, orlist with len history 1 rolls
. bag of list
- Make a bag of list and deal them all in random sequence, then reshuffle. Equivalent to
len(list) bag of list
. number bag of list
- Make a bag of list and deal the first number in random sequence, then reshuffle.
sequence of list
- Starting with the first piece of list, deal each piece in turn. When the end of the list is reached, start again from the beginning. Equivalent to
list with len(list)-1 history
list with len history
- Keep a list called history of the last len pieces dealt. (Repeated pieces in list are separate pieces for purpose of the history.) Choose a piece at random from list which is not in history and deal it. Then put the piece in history and remove the oldest piece from history.
list with len history number rolls
- Keep a list called history of the last len pieces dealt. (Repeated pieces in list are separate pieces for purpose of the history.) Up to number times, choose a piece at random from list, and if it is not in history, deal it. Otherwise, deal the last piece chosen. Then put the piece in history and remove the oldest piece from history.
spec first list
- Follow spec, except choose the first piece from list.
Examples
- Random Generator
bag of I,J,L,O,S,T,Z
- 14-piece bag
bag of I,I,J,J,L,L,O,O,S,S,T,T,Z,Z
- 14-piece bag, dealt halfway
7 bag of I,I,J,J,L,L,O,O,S,S,T,T,Z,Z
- Memoryless
I,J,L,O,S,T,Z
- Memoryless including small pieces
I,J,L,O,S,T,Z,I2,I3,L3
- Memoryless more difficult (10% I)
I,I,J,J,J,L,L,L,O,O,O,S,S,S,T,T,T,Z,Z,Z
- SZSZ
S,Z
- Move to Back
I,J,L,O,S,T,Z with 4 history
- SZSZ alternating
S,Z with 1 history
- TGM1 randomizer
I,J,L,O,S,T,Z with 4 history 4 rolls first I,J,L,T
- TGM2/3 randomizer
I,J,L,O,S,T,Z with 4 history 6 rolls first I,J,L,T
- Lardarse's more difficult
5 bag of I,T,J,J,L,L,O,O,S,S,S,Z,Z,Z
Reference implementation
As of December 2006, Tepples is coding a reference implementation of Blackjack in the C language.
- Randomizer engine: done
- Spec parser
- Integration with Lockjaw