Sovereignty
Donald, I need your help with this programming class. It uses a new programming language, D++, which is exactly the grade I’m going to get if I don’t figure this out.
// assign values to piles
{
Set.PileName(00) = A
Set.PileName(01) = B
Set.PileName(02) = C
Set.PileName(03) = D
Set.PileName(04) = E
Set.PileName(05) = F
Set.PileName(06) = G
Set.PileName(07) = H
Set.PileName(08) = I
Set.PileName(09) = J
Set.PileName(10) = K
Set.PileName(11) = L
Set.PileName(12) = M
Set.PileName(20) = N
Set.PileName(21) = O
Set.PileName(22) = P
Set.PileName(30) = Q
}
// start player 1
{
|PPPMM|,(%P,%P,%P),[@O],,[&]
|PPPPM|,(%P,%P,%P,%P),[@I],[Sh],[&]
|PPOMI|,(%I,[tM])(%P,%P,%O),[@I],,[&]
|PPPPM|,(%P,%P,%P,%P),[@O],[Sh],[&]
|PPPMM|,(%P,%P,%P),[@O],,[&]
|PPPOI|,(%I,[tP])(%P,%P,%O),[@O],[Sh],[&]
|PPPOI|,(%P,%P,%P,%O),[@C],,[&]
|OOMMI|,(%I,[tM])(%O,%O),[@O],,[&]
|PPOOO|,(%O,%O,%O),[@G],[Sh],[&]
|POOCG|,(%G)(%C)(%O,%O,%O),[@G][@D],,[&]
|POOOI|,(%I,[tP])(%O,%O,%O),[@G],,[&]
|PPOOM|,(%P,%P,%O,%O),[@N],,[&]
|PPOOI|,(%I,[tP])(%P,%O,%O),[@C],[Sh],[&]
|POOGI|,(%G)(%I,[tQ])(%O,%O,%P),[@C][@D],,[&]
|POOMC|,(%C)(%P,%P,%O,%O),[@C],,[&]
|POOOI|,(%I,[tP])(%O,%O,%O),[@L],,[&]
|OOQGG|,(%G)(%G)(%D)(%C)(%O,%O,%O,%O,%P),[@K][@L],[Sh],[&]
|OOONL|,(%O,%O,%O,%N),[@K],,[&]
|OMKGI|,(%G)(%C)(%O,%O,%O),[@K],,[&]
|POCDG|,(%D,[^])(%C)(%G)(%O,%O,%O,%O,%O,%P),[@K][@L],,[&]
}
// start player 2
{
|PPPMM|,(%P,%P,%P),[@O],,[&]
|PPPPM|,(%P,%P,%P,%P),[@I],[Sh],[&]
|PPPOM|,(%P,%P,%P,%O),[@H],,[&]
|PPPMI|,(%I,[tM])(%P,%P,%P),[@D],[Sh],[&]
|PPPOM|,(%P,%P,%P,%O),[@C],,[&]
|PPOMH|,(%H,[p1?I])(%P,%P,%P,%P,%O,%O),[@N],[Sh],[&]
|PPPCD|,(%C)(%D,[^])(%P,%P,%P,%P,%O),[@N],,[&]
|POONM|,(%N,%O,%O),[@G],,[&]
|PPMHI|,(%H,[p3?I])(%P,%P,%N),[@C],,[&]
|PPONG|,(%G)(%N,%O,%O),[@G][@O],,[&]
|PPPMD|,(%D,[Sh],[^])(%P,%P,%P,%P),[@M],,[&]
|PPONI|,(%I,[tP])(%P,%O,%N),[@L],,[&]
|OOCGH|,(%C)(%G)(%G)(%H,[p1?I])(%O,%O,%O,%N),[@G][@C][@D],[Sh],[&]
|PPOLC|,(%C)(%P,%P,%O),[@O],,[&]
|PMQDH|,(%D,[^])(%H,[p3?I],[p1?I])(%P,%P,%N),[@L],,[&]
|PONCG|,(%C)(%G)(%G)(%C)(%N,%O,%O,%O,%P,%P),[@K][@L][@D],[Sh],[&]
|KQDGI|,(%D)(%G)(%H)(%O,%O),[@L],,[&]
|POOMQ|,(%P,%O,%O),[@L],,[&]
|PMLCG|,(%C)(%C)(%G)(%D)(%N,%N,%P,%P,%P),[@K][@L],,[&]
}
// start player 3
{
|PPPPM|,(%P,%P,%P,%P),[@E],,[&]
|PPPMM|,(%P,%P,%P),[@O],[Sh],[&]
|PPOMM|,(%P,%P,%O),[@E],,[&]
|PPPPE|,(%E,[tP])(%P,%P,%P),[@N],[Sh],[&]
|PPOMM|,(%P,%P,%O),[@I],,[&]
|PPNME|,(%E,[tP])(%N),[@G],[Sh],[&]
|PPNMM|,(%P,%P,%N),[@C],,[&]
|POMEE|,(%E,[tP])(%O),[@A],,[&]
|PPPGI|,(%G)(%E,[tP])(%P,%P),[@N],,[&]
|PNMAC|,(%C)(%A,[p3*P],[p3*M],[p3*Q],[p3*O])(%N),[@G],[Sh],[&]
|PONAE|,(%A,[p3*O],[p3*N],[p3*I],[p3*M])(%N,%O),[@G],,[&]
|PQQCE|,(%C)(%E,[tP]),[@O],,[&]
|POMGG|,(%G)(%G,[Sh])(%O,%P),[@C][@D],,[&]
|POMQC|,(%C)(%P,%O),[@M],,[&]
|OQAEI|,(%A,[p3*P],[p3*O],[p3*N],[p3*E])(%O),[@N],[Sh],[&]
|NMEGG|,(%G)(%G)(%E,[tP])(%N),[@K][@M],,[&]
|OMQQC|,(%C)(%O,%P),[@M][@M],,[&]
|POONN|,(%N,%N,%O,%O),[@K],,[&]
|OOQDI|,(%D,[^])(%C)(%G,[Sh])(%A,[p3*N],[p3*Q],[p3*O],[p3*E])(%I,[tE])(%O,%O),[@K][@M],,[&]
}
// start player 4
{
|PPMMM|,(%P,%P),[@D],,[&]
|PPPPP|,(%P,%P,%P,%P,%P),[@J],[Sh],[&]
|PPPMD|,(%D,[^])(%P,%P,%P,%P),[@E],,[&]
|PPPMJ|,(%J,[p1*O],[p2*D],[p3*E])(%P,%P,%P),[@B],[Sh],[&]
|PPOMJ|,(%J,[p1*O],[p2*I],[p3*P])(%P,%P,%O),[@N],,[&]
|PMDDE|,(%D,[^])(%D,[^])(%B,[p1?I])(%P,%P),[@D],[Sh],[&]
|PPPOM|,(%P,%P,%P,%O),[@F],,[&]
|PDDEI|,(%D)(%D)(%J,[p1*P],[p2Sh],[p2*O],[p3Sh],[p3*E],[p3?I])(%P),[@M],,[&]
|PPONB|,(%B)(%P,%O,%N),[@N],[Sh],[&]
|OMMEE|,(%O),[@D],,[&]
|PPNNM|,(%N,%N,%P,%P),[@K],,[&]
|PPDDI|,(%D)(%D)(%F)(%I,[tP])(%P,%O),[@L],,[&]
|OMBDJ|,(%D)(%B,[p1?I])(%P,%P,%P,%O),[@C],[Sh],[&]
|PPKLI|,(%I,[tP]),,,[&]
|ONMDF|,(%D)(%F)(%O,%O,%N),[@K][@P],,[&]
|NMQCD|,(%C)(%D,[^])(%J,[p1*N],[p2*P],[p2?I],[p3*M])(%N,%P,%P),[@K],,[&]
|PPMDE|,(%D,[^])(%E,[tP])(%O),[@L],[Sh],[&]
|MBDEI|,(%D,[^])(%D)(%I,[tB])(%O),[@M],,[&]
|PMMMK|,,,,[&]
}
// remember nlen() ignores whitespace!
{
Output=[
A.nlen()+F.nlen()-K.nlen()-O.nlen(),
E.nlen()+H.nlen()+I.nlen()-Q.nlen(),
D.nlen()+E.nlen()+G.nlen()-M.nlen(),
A.nlen()+J.nlen()-K.nlen(),
A.nlen()+B.nlen()+G.nlen()-L.nlen(),
C.nlen()+F.nlen()+H.nlen()-Q.nlen(),
D.nlen()+I.nlen()-M.nlen()-P.nlen(),
A.nlen()+D.nlen()+F.nlen()-L.nlen(),
C.nlen()+G.nlen()+I.nlen()-P.nlen(),
A.nlen()+E.nlen()+J.nlen()-O.nlen(),
D.nlen()+F.nlen()+H.nlen()-N.nlen(),
D.nlen()+E.nlen()-O.nlen(),
B.nlen()+I.nlen()+J.nlen()-L.nlen(),
H.nlen()+I.nlen()+J.nlen()-L.nlen(),
A.nlen()+C.nlen()+J.nlen()-O.nlen(),
B.nlen()+F.nlen()-Q.nlen(),
B.nlen()+E.nlen()-L.nlen()-M.nlen(),
G.nlen()+H.nlen()-M.nlen()-P.nlen()
]
}