Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
40
Task/Playing-cards/M4/playing-cards.m4
Normal file
40
Task/Playing-cards/M4/playing-cards.m4
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
define(`randSeed',141592653)dnl
|
||||
define(`setRand',
|
||||
`define(`randSeed',ifelse(eval($1<10000),1,`eval(20000-$1)',`$1'))')dnl
|
||||
define(`rand_t',`eval(randSeed^(randSeed>>13))')dnl
|
||||
define(`random',
|
||||
`define(`randSeed',eval((rand_t^(rand_t<<18))&0x7fffffff))randSeed')dnl
|
||||
define(`for',
|
||||
`ifelse($#,0,``$0'',
|
||||
`ifelse(eval($2<=$3),1,
|
||||
`pushdef(`$1',$2)$4`'popdef(`$1')$0(`$1',incr($2),$3,`$4')')')')dnl
|
||||
define(`foreach', `pushdef(`$1')_foreach($@)popdef(`$1')')dnl
|
||||
define(`_arg1', `$1')dnl
|
||||
define(`_foreach', `ifelse(`$2', `()', `',
|
||||
`define(`$1', _arg1$2)$3`'$0(`$1', (shift$2), `$3')')')dnl
|
||||
define(`new',`define(`$1[size]',0)')dnl
|
||||
define(`append',
|
||||
`define(`$1[size]',incr(defn(`$1[size]')))`'define($1[defn($1[size])],$2)')
|
||||
define(`deck',
|
||||
`new($1)foreach(`x',(Ace,2,3,4,5,6,7,8,9,10,Jack,Queen,King),
|
||||
`foreach(`y',(Clubs,Diamonds,Hearts,Spades),
|
||||
`append(`$1',`x of y')')')')dnl
|
||||
define(`show',
|
||||
`for(`x',1,defn($1[size]),`defn($1[x])ifelse(x,defn($1[size]),`',`, ')')')dnl
|
||||
define(`swap',`define($1[$2],defn($1[$4]))define($1[$4],$3)')dnl
|
||||
define(`shuffle',
|
||||
`for(`x',1,defn($1[size]),
|
||||
`swap($1,x,defn($1[x]),eval(1+random%defn($1[size])))')')dnl
|
||||
define(`deal',
|
||||
`ifelse($#,0,``$0'',
|
||||
`ifelse(defn($1[size]),0,
|
||||
`NULL',
|
||||
defn($1[defn($1[size])])define($1[size],decr(defn($1[size]))))')')dnl
|
||||
dnl
|
||||
deck(`b')
|
||||
show(`b')
|
||||
shuffling shuffle(`b')
|
||||
show(`b')
|
||||
deal deal(`b')
|
||||
deal deal(`b')
|
||||
show(`b')
|
||||
Loading…
Add table
Add a link
Reference in a new issue