In other news: I just finished entering the first three Days of voting data into my vote-analysis program, and the results surprised me somewhat when I ran it. I think everyone here has seen me use this before, so I’ll just cut to the chase.
The program, as modified for this game:
[spoiler]
[noparse]
#include <stdio.h>
#define n_players 19 /* Number of players under analysis */
#define max_scum 4 /* Maximum expected number of Scum */
#define min_scum 4 /* Minimum expected number of Scum */
#define n_loop 262144 /* 2^n_players */
#define margin 0 /* How much Scummier than marginal the Scum are */
main()
{
int players[n_players]; /* Stores the alignment of each player. 0 = Town, 1 = Scum */
unsigned int players_binary;
unsigned int players_binary_shifting;
char names[n_players][26] = {"", "Wolverine","ushimitsudoki","These are my pants","special ed/Scuba","chipacabra","Suburban Plankton", "Mentalguy","Meeko","Astral Rejection", "One and Only Wanderers","ComeToDarkCookies","Red Skeezix", "Storyteller0910", "Oredigger77", "peekercpa", "Pleonast", "Idle Thoughts", "Chronos"};
int n_scum;
int buses; /* Number of times Scum voted for Scum */
int attacks; /* Number of times Town voted for Scum */
int i;
int score[n_players];
int total_scenarios = 0;
int town_votes;
int scum_votes;
for(i=0;i<n_players;i++) score* = 0; /* Initialize everyone's score */
for(players_binary=0; players_binary < n_loop; players_binary++) {
players_binary_shifting = players_binary;
for(i=0;i<n_players;i++) {
players* = players_binary_shifting & 1; /* Populate the players[] array according to the value of players_binary */
players_binary_shifting = players_binary_shifting >> 1;
}
n_scum = 0;
buses = 0;
attacks = 0;
for(i=0;i<n_players;i++) {
if(players* == 1) n_scum++; /* Count the number of Scum */
}
/* Count number of votes cast by Town */
town_votes = 0;
if(!players[0]) town_votes += 0; // cast 0
if(!players[1]) town_votes += 6; // Wolverine cast 6
if(!players[2]) town_votes += 6; // ushimitsudoki cast 6
if(!players[3]) town_votes += 5; // These are my pants cast 5
if(!players[4]) town_votes += 4; // special ed/Scuba cast 4
if(!players[5]) town_votes += 3; // chipacabra cast 3
if(!players[6]) town_votes += 4; // Suburban Plankton cast 4
if(!players[7]) town_votes += 3; // Mentalguy cast 3
if(!players[8]) town_votes += 5; // Meeko cast 5
if(!players[9]) town_votes += 6; // Astral Rejection cast 6
if(!players[10]) town_votes += 2; // One and Only Wanderers cast 2
if(!players[11]) town_votes += 5; // ComeToDarkCookies cast 5
if(!players[12]) town_votes += 5; // Red Skeezix cast 5
if(!players[13]) town_votes += 5; // Storyteller0910 cast 5
if(!players[14]) town_votes += 2; // Oredigger77 cast 2
if(!players[15]) town_votes += 1; // peekercpa cast 1
if(!players[16]) town_votes += 5; // Pleonast cast 5
if(!players[17]) town_votes += 4; // Idle Thoughts cast 4
if(!players[18]) town_votes += 4; // Chronos cast 4
/* Count number of votes cast by Scum */
scum_votes = 0;
if(players[0]) scum_votes += 0; // cast 0
if(players[1]) scum_votes += 4; // Wolverine cast 4
if(players[2]) scum_votes += 3; // ushimitsudoki cast 3
if(players[3]) scum_votes += 3; // These are my pants cast 3
if(players[4]) scum_votes += 2; // special ed/Scuba cast 2
if(players[5]) scum_votes += 2; // chipacabra cast 2
if(players[6]) scum_votes += 3; // Suburban Plankton cast 3
if(players[7]) scum_votes += 2; // Mentalguy cast 2
if(players[8]) scum_votes += 3; // Meeko cast 3
if(players[9]) scum_votes += 3; // Astral Rejection cast 3
if(players[10]) scum_votes += 2; // One and Only Wanderers cast 2
if(players[11]) scum_votes += 3; // ComeToDarkCookies cast 3
if(players[12]) scum_votes += 3; // Red Skeezix cast 3
if(players[13]) scum_votes += 3; // Storyteller0910 cast 3
if(players[14]) scum_votes += 1; // Oredigger77 cast 1
if(players[15]) scum_votes += 1; // peekercpa cast 1
if(players[16]) scum_votes += 2; // Pleonast cast 2
if(players[17]) scum_votes += 3; // Idle Thoughts cast 3
if(players[18]) scum_votes += 3; // Chronos cast 3
/* Count number of buses-- Only counting final votes */
if(players[13] && players[14]) buses++; // Storyteller0910 voted Oredigger77
if(players[1] && players[14]) buses++; // Wolverine voted Oredigger77
if(players[9] && players[14]) buses++; // Astral Rejection voted Oredigger77
if(players[4] && players[14]) buses++; // special ed/Scuba voted Oredigger77
if(players[3] && players[14]) buses++; // These are my pants voted Oredigger77
if(players[16] && players[14]) buses++; // Pleonast voted Oredigger77
if(players[7] && players[14]) buses++; // Mentalguy voted Oredigger77
if(players[17] && players[2]) buses++; // Idle Thoughts voted ushimitsudoki
if(players[15] && players[2]) buses++; // peekercpa voted ushimitsudoki
if(players[11] && players[2]) buses++; // ComeToDarkCookies voted ushimitsudoki
if(players[10] && players[2]) buses++; // One and Only Wanderers voted ushimitsudoki
if(players[5] && players[2]) buses++; // chipacabra voted ushimitsudoki
if(players[14] && players[2]) buses++; // Oredigger77 voted ushimitsudoki
if(players[6] && players[17]) buses++; // Suburban Plankton voted Idle Thoughts
if(players[18] && players[4]) buses++; // Chronos voted special ed/Scuba
if(players[12] && players[18]) buses++; // Red Skeezix voted Chronos
if(players[1] && players[16]) buses++; // Wolverine voted Pleonast
if(players[2] && players[11]) buses++; // ushimitsudoki voted ComeToDarkCookies
if(players[8] && players[3]) buses++; // Meeko voted These are my pants
if(players[3] && players[16]) buses++; // These are my pants voted Pleonast
if(players[17] && players[16]) buses++; // Idle Thoughts voted Pleonast
if(players[10] && players[16]) buses++; // One and Only Wanderers voted Pleonast
if(players[8] && players[16]) buses++; // Meeko voted Pleonast
if(players[11] && players[16]) buses++; // ComeToDarkCookies voted Pleonast
if(players[18] && players[16]) buses++; // Chronos voted Pleonast
if(players[5] && players[16]) buses++; // chipacabra voted Pleonast
if(players[1] && players[16]) buses++; // Wolverine voted Pleonast
if(players[6] && players[5]) buses++; // Suburban Plankton voted chipacabra
if(players[13] && players[5]) buses++; // Storyteller0910 voted chipacabra
if(players[7] && players[5]) buses++; // Mentalguy voted chipacabra
if(players[9] && players[1]) buses++; // Astral Rejection voted Wolverine
if(players[16] && players[17]) buses++; // Pleonast voted Idle Thoughts
if(players[12] && players[7]) buses++; // Red Skeezix voted Mentalguy
if(players[2] && players[11]) buses++; // ushimitsudoki voted ComeToDarkCookies
if(players[4] && players[0]) buses++; // special ed/Scuba voted
if(players[17] && players[2]) buses++; // Idle Thoughts voted ushimitsudoki
if(players[3] && players[2]) buses++; // These are my pants voted ushimitsudoki
if(players[11] && players[13]) buses++; // ComeToDarkCookies voted Storyteller0910
if(players[1] && players[2]) buses++; // Wolverine voted ushimitsudoki
if(players[8] && players[2]) buses++; // Meeko voted ushimitsudoki
if(players[18] && players[2]) buses++; // Chronos voted ushimitsudoki
if(players[9] && players[13]) buses++; // Astral Rejection voted Storyteller0910
if(players[6] && players[13]) buses++; // Suburban Plankton voted Storyteller0910
if(players[2] && players[13]) buses++; // ushimitsudoki voted Storyteller0910
if(players[13] && players[2]) buses++; // Storyteller0910 voted ushimitsudoki
if(players[12] && players[2]) buses++; // Red Skeezix voted ushimitsudoki
/* Count number of attacks */
if(!players[13] && players[14]) attacks++; // Storyteller0910 voted Oredigger77
if(!players[1] && players[14]) attacks++; // Wolverine voted Oredigger77
if(!players[9] && players[14]) attacks++; // Astral Rejection voted Oredigger77
if(!players[4] && players[14]) attacks++; // special ed/Scuba voted Oredigger77
if(!players[3] && players[14]) attacks++; // These are my pants voted Oredigger77
if(!players[16] && players[14]) attacks++; // Pleonast voted Oredigger77
if(!players[7] && players[14]) attacks++; // Mentalguy voted Oredigger77
if(!players[17] && players[2]) attacks++; // Idle Thoughts voted ushimitsudoki
if(!players[15] && players[2]) attacks++; // peekercpa voted ushimitsudoki
if(!players[11] && players[2]) attacks++; // ComeToDarkCookies voted ushimitsudoki
if(!players[10] && players[2]) attacks++; // One and Only Wanderers voted ushimitsudoki
if(!players[5] && players[2]) attacks++; // chipacabra voted ushimitsudoki
if(!players[14] && players[2]) attacks++; // Oredigger77 voted ushimitsudoki
if(!players[6] && players[17]) attacks++; // Suburban Plankton voted Idle Thoughts
if(!players[4] && players[17]) attacks++; // special ed/Scuba voted Idle Thoughts
if(!players[16] && players[17]) attacks++; // Pleonast voted Idle Thoughts
if(!players[18] && players[4]) attacks++; // Chronos voted special ed/Scuba
if(!players[2] && players[4]) attacks++; // ushimitsudoki voted special ed/Scuba
if(!players[3] && players[4]) attacks++; // These are my pants voted special ed/Scuba
if(!players[12] && players[18]) attacks++; // Red Skeezix voted Chronos
if(!players[11] && players[18]) attacks++; // ComeToDarkCookies voted Chronos
if(!players[8] && players[16]) attacks++; // Meeko voted Pleonast
if(!players[1] && players[16]) attacks++; // Wolverine voted Pleonast
if(!players[14] && players[16]) attacks++; // Oredigger77 voted Pleonast
if(!players[7] && players[11]) attacks++; // Mentalguy voted ComeToDarkCookies
if(!players[9] && players[11]) attacks++; // Astral Rejection voted ComeToDarkCookies
if(!players[2] && players[11]) attacks++; // ushimitsudoki voted ComeToDarkCookies
if(!players[8] && players[3]) attacks++; // Meeko voted These are my pants
if(!players[16] && players[15]) attacks++; // Pleonast voted peekercpa
if(!players[4] && players[15]) attacks++; // special ed/Scuba voted peekercpa
if(!players[16] && players[6]) attacks++; // Pleonast voted Suburban Plankton
if(!players[13] && players[6]) attacks++; // Storyteller0910 voted Suburban Plankton
if(!players[17] && players[6]) attacks++; // Idle Thoughts voted Suburban Plankton
if(!players[1] && players[13]) attacks++; // Wolverine voted Storyteller0910
if(!players[3] && players[16]) attacks++; // These are my pants voted Pleonast
if(!players[17] && players[16]) attacks++; // Idle Thoughts voted Pleonast
if(!players[10] && players[16]) attacks++; // One and Only Wanderers voted Pleonast
if(!players[8] && players[16]) attacks++; // Meeko voted Pleonast
if(!players[12] && players[16]) attacks++; // Red Skeezix voted Pleonast
if(!players[11] && players[16]) attacks++; // ComeToDarkCookies voted Pleonast
if(!players[18] && players[16]) attacks++; // Chronos voted Pleonast
if(!players[5] && players[16]) attacks++; // chipacabra voted Pleonast
if(!players[1] && players[16]) attacks++; // Wolverine voted Pleonast
if(!players[6] && players[5]) attacks++; // Suburban Plankton voted chipacabra
if(!players[11] && players[5]) attacks++; // ComeToDarkCookies voted chipacabra
if(!players[13] && players[5]) attacks++; // Storyteller0910 voted chipacabra
if(!players[7] && players[5]) attacks++; // Mentalguy voted chipacabra
if(!players[9] && players[1]) attacks++; // Astral Rejection voted Wolverine
if(!players[16] && players[17]) attacks++; // Pleonast voted Idle Thoughts
if(!players[12] && players[7]) attacks++; // Red Skeezix voted Mentalguy
if(!players[2] && players[11]) attacks++; // ushimitsudoki voted ComeToDarkCookies
if(!players[18] && players[2]) attacks++; // Chronos voted ushimitsudoki
if(!players[1] && players[2]) attacks++; // Wolverine voted ushimitsudoki
if(!players[5] && players[2]) attacks++; // chipacabra voted ushimitsudoki
if(!players[9] && players[4]) attacks++; // Astral Rejection voted special ed/Scuba
if(!players[4] && players[0]) attacks++; // special ed/Scuba voted
if(!players[17] && players[2]) attacks++; // Idle Thoughts voted ushimitsudoki
if(!players[3] && players[2]) attacks++; // These are my pants voted ushimitsudoki
if(!players[8] && players[13]) attacks++; // Meeko voted Storyteller0910
if(!players[11] && players[13]) attacks++; // ComeToDarkCookies voted Storyteller0910
if(!players[1] && players[2]) attacks++; // Wolverine voted ushimitsudoki
if(!players[2] && players[11]) attacks++; // ushimitsudoki voted ComeToDarkCookies
if(!players[8] && players[2]) attacks++; // Meeko voted ushimitsudoki
if(!players[9] && players[1]) attacks++; // Astral Rejection voted Wolverine
if(!players[2] && players[1]) attacks++; // ushimitsudoki voted Wolverine
if(!players[18] && players[2]) attacks++; // Chronos voted ushimitsudoki
if(!players[6] && players[11]) attacks++; // Suburban Plankton voted ComeToDarkCookies
if(!players[12] && players[6]) attacks++; // Red Skeezix voted Suburban Plankton
if(!players[9] && players[13]) attacks++; // Astral Rejection voted Storyteller0910
if(!players[13] && players[9]) attacks++; // Storyteller0910 voted Astral Rejection
if(!players[3] && players[9]) attacks++; // These are my pants voted Astral Rejection
if(!players[6] && players[13]) attacks++; // Suburban Plankton voted Storyteller0910
if(!players[2] && players[13]) attacks++; // ushimitsudoki voted Storyteller0910
if(!players[13] && players[2]) attacks++; // Storyteller0910 voted ushimitsudoki
if(!players[12] && players[2]) attacks++; // Red Skeezix voted ushimitsudoki
if((min_scum<=n_scum) && (n_scum<=max_scum)) /* Throw out cases with wrong number of Scum */
if((attacks*scum_votes) > (buses*town_votes + margin)) /* Throw out cases with Scum not voting Scummily */
/* Add other assumptions (delete or add any considered appropriate) */
if(!players[0]) // Player 0 does not exist
if(!players[12]) // Red Skeezix is a mason
if(!players[14]) // Oredigger came up Town
if(!players[15]) // peeker came up Town
if(players[16]) // Pleo came up Scum
if(!players[10]) // Wanderers came up Town
if(!players[5]) // Chipacabra came up Town
if(!players[7]) // Mentalguy came up Town
if(!players[2]) // ushimitsudoki came up Town
if(!players[3]) // Pants came up Town
if(!players[13]) // Storyteller came up Town
if(!players[11]) // Cookies wasn't Scum for first two Days
{
total_scenarios++;
/* Output all scenarios */
for(i=0;i<n_players;i++) {
/* if(players* == 0) printf("%s ",names*); */
if(players* == 1) {
printf("%s ",names*);
score*++;
}
}
printf("
");
}
}
/* Output scores */
fprintf(stderr,"Total number of possibilities: %d
",total_scenarios);
for(i=0;i<n_players;i++) fprintf(stderr,"%s %d
",names*,score*);
return(0);
}[/noparse]
[/spoiler]I’m assuming exactly four total Scum, since I think that the assumption that we’re mirroring Harry Potter is a safe one. Cookies presented something of a problem: I don’t really have a way for accounting for someone’s alignment changing partway through the game. However, I think it’s safe to assume at least that she was not Scum for two of the three Days I’m looking at, and my program really only looks at Scum vs. non-Scum, so I’m considering her Town for this analysis. I’m also counting Red Skeezix as confirmed, as well as (of course) all of the dead.
Now, for the results:
Wolverine special ed/Scuba Suburban Plankton Pleonast
Wolverine Suburban Plankton Meeko Pleonast
special ed/Scuba Suburban Plankton Meeko Pleonast
Wolverine special ed/Scuba Astral Rejection Pleonast
Wolverine Suburban Plankton Astral Rejection Pleonast
special ed/Scuba Suburban Plankton Astral Rejection Pleonast
special ed/Scuba Meeko Astral Rejection Pleonast
Suburban Plankton Meeko Astral Rejection Pleonast
special ed/Scuba Astral Rejection Pleonast Idle Thoughts
Suburban Plankton Astral Rejection Pleonast Idle Thoughts
Total number of possibilities: 10
0
Wolverine 4
ushimitsudoki 0
These are my pants 0
special ed/Scuba 6
chipacabra 0
Suburban Plankton 7
Mentalguy 0
Meeko 4
Astral Rejection 7
One and Only Wanderers 0
ComeToDarkCookies 0
Red Skeezix 0
Storyteller0910 0
Oredigger77 0
peekercpa 0
Pleonast 10
Idle Thoughts 2
Chronos 0
In other words, my program thinks that there are only ten possible configurations of the Scum team at this point. This means that it thinks we’re pretty much at endgame right now. Now, its track record at endgame is much worse than in the mid-game, so I do not intend to use these results as a basis for a vote. However, the scores of 7 out of 10 that it assigns to Suburban and Astral are both awfully high, and so I do intend to take a closer look at both of them (as well as possibly Scuba, with a score of 6/10). But that’ll have to wait for tomorrow; it’s getting too late tonight for a Wall of Words.