]> Pileus Git - ~andy/rhawk/blob - test.awk
Fix color loading
[~andy/rhawk] / test.awk
1 # Functions
2 function say(who, msg)
3 {
4         print ":" who"!u@h PRIVMSG #rhtest :" msg
5 }
6
7 function auth(user, nick)
8 {
9         print ":" nick "!u@c ACCOUNT " user
10 }
11
12 function error(msg)
13 {
14         print "error: " msg > "/dev/stderr"
15 }
16
17 function debug(msg)
18 {
19         print msg > "/dev/stderr"
20 }
21
22 function command(who, cmd)
23 {
24         arg=cmd
25         gsub(/\<[nbpYNS]|[+-]/, "", arg)
26         if      (cmd ~ /^\./)     0 # nop
27         else if (cmd ~ /^n/)      say(who, ".newgame " arg)
28         else if (cmd ~ /^e/)      say(who, ".endgame ")
29         else if (cmd ~ /^j/)      say(who, ".join")
30         else if (cmd ~ /^Y/)      say(who, ".allow " arg)
31         else if (cmd ~ /^N/)      say(who, ".deny " arg)
32         else if (cmd ~ /^S/)      say(who, ".show ")
33         else if (cmd ~ /^d/)      say("andy753421", ".deal " who " " hand[who])
34         else if (cmd ~ /^l/)      say(who, ".look")
35         else if (cmd ~ /^b/)      say(who, ".bid "  arg)
36         else if (cmd ~ /^s/)      say(who, ".score")
37         else if (cmd ~ /^B/)      say(who, ".bids")
38         else if (cmd ~ /^t/)      say(who, ".tricks")
39         else if (cmd ~ /^T/)      say(who, ".turn")
40         else if (cmd ~ /^p/)      say(who, ".pass " arg)
41         else if (arg ~ /[shdc]$/) say(who, ".play " arg)
42         else                      error("unknown cmd '" cmd "'")
43 }
44
45 function reset()
46 {
47         nturns = 0
48         delete players # players[i]   -> "name"
49         delete turns   # turns[pi][i] -> "cmd"
50 }
51
52 # Rules
53 BEGIN { 
54         auth("andy753421", "andy753421")
55         reset()
56 }
57
58 //  { gsub(/#.*/, "") }
59
60 /^[^ ]+:/ {
61         gsub(/:/, " ")
62         split($1, parts, "/");
63         pi = length(players)
64         if (NF-2 > nturns)
65                 nturns = NF-1
66         for (i=2; i<=NF; i++)
67                 turns[pi][i-2] = $i
68         who         = parts[1]
69         players[pi] = parts[1]
70         auths[pi]   = parts[2]
71         hand[who]    = $0
72         gsub(/^\w*(\/\w*)?|[nbpYN-]\w+|\<[nejadwlbsBtpdS]\>|[.+]/, "", hand[who])
73         gsub(/^ */, "", hand[who])
74         print who ": " hand[who] > "/dev/stderr"
75         say(who, "unicode :(")
76         say(who, "colors :(")
77 }
78
79 /^\s*$/ {
80         for (pi=0; pi<length(players); pi++)
81                 if (auths[pi])
82                         auth(auths[pi], players[pi])
83         for (ti=0; ti<nturns; ti++)
84                 for (pi=0; pi<length(players); pi++)
85                         command(players[pi], turns[pi][ti])
86         reset()
87 }