Bowling in a league is an interesting endeavor; it's more complicated than trying to throw the perfect game all the time. At the competitive level, you understand you're not going to throw a perfect game. Hopefully you're going to chain some strikes together for a good score, but all you have to work on is your average. Your average determines your handicap, which can give you the edge you need to defeat the other team for standing. What this means is that at the competitive level, you're practicing by yourself to improve your score, but come time for league, you're trying to preserve your handicap and roll as low a score as possible while still defeating the other team. It's complicated, tedious, and it doesn't get any easier once you've had a couple.
I dislike this aspect of competitive bowling, so I had a go at another system. Initially, I had a feeling that the Elo rating system might be well suited for the style of play I experience at the lanes: one-on-one, no handicap. This may have been influenced by my repeated viewings of The Social Network. Each player starts with a rating of 1450, and gains or loses points based on the difficulty of their opponent. The rating, after enough matches, becomes a metric for expectation of a win. Below is the code I whipped up for a quick determination of rank:
import sys, getopt, math def main(argv): ratingPlayer = 1450 ratingOpponent = 1450 try: opts, args = getopt.getopt(argv,'p:o:') except getopt.GetoptError: print('broken') sys.exit(2) for opt, arg in opts: if opt == '-p': ratingPlayer = float(arg) if opt == '-o': ratingOpponent = float(arg) kfactor = 0 if ratingPlayer > 2400 and ratingOpponent > 2400: kfactor = 16 elif ratingPlayer <2100 or ratingOpponent <2100: kfactor = 32 elif ratingPlayer < 2400 or ratingOpponent < 2400: kfactor = 24 de = kfactor * (1 - (1/math.pow(10,(-(ratingPlayer - ratingOpponent)/400)+1))) print("difference: "+str(de)) print("p1: "+str(ratingPlayer+de)+" p2: "+str(ratingOpponent-de)) if __name__ == "__main__": main(sys.argv[1:])Once I implemented this, I started playing more with my co-workers, and found this dramatically altered their style of play. Without a handicap to rely on, raw performance was the ultimate decider of who was top dog on the lanes. One of our bowlers, long famed for their ability, suddenly folded under the competitive pressure and was subsequently (and rapidly) demoted to the bottom of the list. Once someone rises to the top, however, you can expect a consistent performance from them for quite some time, usually until they stop playing as much and someone with practice de-thrones them.