[EV] 8p Multiball

This forum is for discussion of individual Open Setups, including theoretical balance.
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #22 (isolation #0) » Mon Nov 21, 2016 2:52 am

Post by Infinity 324 »

Maybe a cop for scum would be good
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #26 (isolation #1) » Mon Nov 21, 2016 8:51 am

Post by Infinity 324 »

Ok I wrote a program for this and am currently in the process of running it 500 times.

If anyone else also wants to run it so we have as much info as we can, that'd be great.

Also if anyone sees any problem with my code point it out. But it's not super readable so sorry :?

Spoiler: python code

Code: Select all

import random

class Player():
    def __init__(self, team, blocker):
        self.block = blocker
        self.team = team
        self.killing = False
        self.BP = False

        if self.team == "town":
            self.BP = True

    def __str__(self):
        return self.team

def main():
    wins = [0,0,0]
    n = int(input("How many times would you like it to run?\n"))
    scumA = True
    scumB = True
    
    players = initPlayers()
    done = ""
                
    for i in range(n):
        while(done == ""):

            if done == "":
                players = day(players)

            for player in players:
                print(str(player))
            print()
            
            teams = checkWinCon(players)
            done = teams[0]
            scumA = teams[1]
            scumB = teams[2]

            if done == "":
                players = night(players, scumA, scumB)

            for player in players:
                print(str(player))
            print()
            
            teams = checkWinCon(players)
            done = teams[0]
            scumA = teams[1]
            scumB = teams[2]
            
        end(done)
        
        if done == "Town":
            wins[0] += 1

        if done == "Scum A":
            wins[1] += 1

        if done == "Scum B":
            wins[2] += 1
        
        players = initPlayers()
        done = ""

    print("Town wins: " + str(wins[0]))
    print("Scum A wins: " + str(wins[1]))
    print("Scum B wins: " + str(wins[2]))

def initPlayers():
    players = []
    for i in range(4):
        players.append(Player("town", False))
        
    players.append(Player("scumA", True))
    players.append(Player("scumA", False))
    players.append(Player("scumB", True))
    players.append(Player("scumB", False))
    
    return players

def day(players):
    print("Day")
    random.seed()
    del players[random.randint(0,len(players)-1)]
    return players

def night(players, scumA, scumB):
    print("Night")
    random.seed()

    if scumA:
        killerA = findEnemy("scumA", players)
        players[killerA].killing = True

    if scumB:
        killerB = findEnemy("scumB", players)
        players[killerB].killing = True

    for player in players:
        if player.block and not player.killing:
            blocked = findEnemy(player.team, players)
            players[blocked].killing = False

    for player in players:
        if player.killing:
            target = findEnemy(player.team, players)
            players = kill(target, players)
            player.killing = False

    return players


def checkWinCon(players):
    scumA = 0
    scumB = 0
    Aexists = True
    Bexists = True

    for player in players:
        if player.team == "scumA":
            scumA += 1
        if player.team == "scumB":
            scumB += 1

    if scumA == 0:
        Aexists = False

    if scumB == 0:
        Bexists = False

    if scumA >= len(players)/2.0:
        return ["Scum A", 0, 0]

    if scumB >= len(players)/2.0:
        return ["Scum B", 0,0]

    if scumA == 0 and scumB == 0:
        print("sup")
        return ["Town", 0,0]

    return ["", Aexists, Bexists]

def end(team):
    print(team + " wins!\n")

def kill(index, players):
    if players[index].BP == True:
        players[index].BP = False
        print("checkBP")
    else:
        del players[index]
        print("checkNonBP")

    return players

def findEnemy(team, players):
    random.seed()
    enemy = Player("", False)

    while(enemy.team == team or enemy.team == ""):
        enemy = players[random.randint(0,len(players)-1)]

    return players.index(enemy)

main()
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #27 (isolation #2) » Mon Nov 21, 2016 8:55 am

Post by Infinity 324 »

Town wins: 343
Scum A wins: 76
Scum B wins: 81

That's pretty fucking townsided
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #28 (isolation #3) » Mon Nov 21, 2016 9:15 am

Post by Infinity 324 »

Town wins: 1018
Scum A wins: 254
Scum B wins: 228

Which adds up to:

Town wins: 1361
Scum A wins: 330
Scum B wins: 309

Still very townsided
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #30 (isolation #4) » Mon Nov 21, 2016 9:20 am

Post by Infinity 324 »

I'll test that, but first I'm gonna test what happens at 3:2:2 and no lynch d1
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #32 (isolation #5) » Mon Nov 21, 2016 9:23 am

Post by Infinity 324 »

In post 31, Pine wrote:Ehhh. This takes the human component out of consideration, which I'm never a big fan of. For example, I doubt it considers that shooting someone who doesn't die is effectively a cop inno on that person. I dunno, I'd hesitate to beef up scum anti-Town power much. Maybe make the goon a 1-shot Doctor?
Yeah, that's the issue with EV.

Also going to test what happens when town doesn't lynch until a scum faction is eliminated
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #33 (isolation #6) » Mon Nov 21, 2016 9:48 am

Post by Infinity 324 »

No lynching until 1 scum faction is gone:

Town wins: 1586
Scum A wins: 220
Scum B wins: 194

Which is, interestingly enough, an even higher win percentage than the others. Now, if scum knows town is doing that they'll try to aim at town, making the strategy pretty ineffective, but it's certainly interesting.
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #35 (isolation #7) » Mon Nov 21, 2016 9:57 am

Post by Infinity 324 »

Actually, if town gets lynched in that case then scum have to shoot each other

Very weird but yeah
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #37 (isolation #8) » Mon Nov 21, 2016 10:09 am

Post by Infinity 324 »

There are 2 possibilities for each scum. Either it gets shot or it doesn't. If it gets shot it loses no matter what. If it doesn't get shot, it's better off shooting the opposing scum because that gets it a win instead of a draw.

But that assumes the townie is confirmed, which isn't necessarily true. Look at this thread for in-depth explanation for that scenario and others

http://forum.mafiascum.net/viewtopic.ph ... 7&start=25

And also that reminds me, that thread would be pretty useful for determining the EV in terms of if everyone followed optimal play.
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #39 (isolation #9) » Mon Nov 21, 2016 10:18 am

Post by Infinity 324 »

It would be great if I incorporated mith's conclusions from that thread into my program, but it seems very complicated taking into account BPs
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #40 (isolation #10) » Mon Nov 21, 2016 10:35 am

Post by Infinity 324 »

Ooh, interesting.

3:2:2 with random lynch every day:

Town wins: 776
Scum A wins: 649
Scum B wins: 575
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #42 (isolation #11) » Mon Nov 21, 2016 10:41 am

Post by Infinity 324 »

In post 41, ThinkBig wrote:That is interesting! Though how can we prevent the scum teams from hammering no-lynch?
Hmm, good point. If all scum vote no lynch every day, or just refuse to lynch, then they can force no lynch every day.

The question is, is that worth outing themselves to the other team? Might be worth plurality lynch in the setup anyway though.
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #45 (isolation #12) » Mon Nov 21, 2016 10:51 am

Post by Infinity 324 »

In post 43, ThinkBig wrote:
In post 42, Infinity 324 wrote:
In post 41, ThinkBig wrote:That is interesting! Though how can we prevent the scum teams from hammering no-lynch?
Hmm, good point. If all scum vote no lynch every day, or just refuse to lynch, then they can force no lynch every day.

The question is, is that worth outing themselves to the other team? Might be worth plurality lynch in the setup anyway though.
That is true...if the same people continue to vote no lynch, it could out themselves as scum
Especially if they don't give a reason.
In post 44, shos wrote:how comes scum A wins less/more than scum B? :confused:
It's not a real EV calculation, I'm just generating a lot of sample runs. So there's the randomness factor.
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #46 (isolation #13) » Mon Nov 21, 2016 11:02 am

Post by Infinity 324 »

3:2:2 with no lynch d1:

Town wins: 1500
Scum A wins: 280
Scum B wins: 220

Pretty crazy
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #48 (isolation #14) » Mon Nov 21, 2016 11:22 am

Post by Infinity 324 »

Well for lynch every day town had a well below 50% winrate.

EV just heavily favors no lynch d1 with 3:2:2 for some reason.
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #49 (isolation #15) » Mon Nov 21, 2016 11:23 am

Post by Infinity 324 »

The question is do you want 50% town winrate or 33% for everyone
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #51 (isolation #16) » Tue Nov 22, 2016 9:28 am

Post by Infinity 324 »

Fair enough.

With only 2 BP townies:

Town wins: 6160
Scum A wins: 2042
Scum B wins: 1798
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #52 (isolation #17) » Tue Nov 22, 2016 11:03 am

Post by Infinity 324 »

Ok my code was off and the results are way more scumsided.
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #53 (isolation #18) » Wed Nov 23, 2016 2:22 am

Post by Infinity 324 »

Town wins: 1132
Scum A wins: 948
Scum B wins: 920

But is it supposed to be more or less townsided than this?
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #54 (isolation #19) » Wed Nov 23, 2016 3:23 am

Post by Infinity 324 »

Ok again the d1 no lynch is better but I still don't know how reliable that can be

Town wins: 1013
Scum A wins: 504
Scum B wins: 483
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #56 (isolation #20) » Wed Nov 23, 2016 4:49 am

Post by Infinity 324 »

That might be a good idea.
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #58 (isolation #21) » Wed Nov 23, 2016 9:02 am

Post by Infinity 324 »

The stats in .
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
User avatar
Infinity 324
Infinity 324
they (pl.)
Survivor
User avatar
User avatar
Infinity 324
they (pl.)
Survivor
Survivor
Posts: 18337
Joined: April 7, 2013
Pronoun: they (pl.)
Contact:

Post Post #60 (isolation #22) » Wed Nov 23, 2016 11:38 am

Post by Infinity 324 »

Ok cool.

Will there be blitz deadlines?
Show
new GTKAS

<3 you are valid

plural system, we may or may not sign
Post Reply

Return to “Open Setup Discussion”