the board game shelf analysis 2022: average additions

This commit is contained in:
Wouter Groeneveld 2022-07-29 16:27:57 +02:00
parent 7529f52df6
commit 4209dcb44f
2 changed files with 17 additions and 3 deletions

View File

@ -76,12 +76,14 @@ All right, so what does that teach us?
3. What's up with all those red triangles floating on top of the rest? The heavier a game, the **less likely it sees the table**! I know many people judge the staying power of a board game by the amount of times it is actually played, but I disagree. My wife dislikes heavy hitters such as Fields of Arle while I _love_ them. Since we mostly play together, the simpler games also see a fair bit of playtime. That could also mean that...
4. Since I also tend to rate heavier games higher (same correlation, **0.63**), I urgently need to meet up more with friends to play the heavier games in the `-` range! _"We should make this a recurring thing."_ For how long have we been saying that now?
5. Judging from the second plot, there are too many games I don't like still in this list, and don't even see many play time. Again, this is a bit unfair since (1) my wife likes nostalgic simple games like _Dead End Drive_ or _Ramses_, even though we don't play them often. This is my personal score, not hers, and we obviously collectively own everything.
6. Averages: BGG score `6.94/10`, own score `2.89/4` (`7.23/10`), weight `2.09/5`. Perhaps that means I could be a tad more critical---or it just means we indeed made the right decisions keeping the games we love and getting rid of the ones we don't like.
7. Average plays: `1.69/3`. Not something to be particularly proud of...
Okay, I know it, the graph shows it, the photograph shows it... We'll have to talk about the elephant in the room: the overload of Euro _Uwe Rosenberg_ games that are heavy and never see play. There are still games in the closet that need to be replayed and then perhaps let go of: _Le Havre_ (too similar to _Agricola_ and _Arle_), _Nightfall_ (_Dominion_ with direct interaction and weird chaining that my play group doesn't like), _Carson City_ (yet another worker placement game that's better with 3, but I love the theme), some only mildly entertaining smaller card games we're not yet sure of, etc.
I tried including a "optimal number of players" property in there, but it would be a bit too much. A quick count says the following about the collection:
1. 26 out of 45 games (`58%`) play great with two players. We try to keep an eye on that.
1. 26 out of 45 games (`58%`) play great with two players---14 of those (`31%`) even exclusively. We try to keep an eye on that.
2. 15 games (`33%`) are card-based. I love card games. Excluding Magic, of course.
3. Only `24%` of our games see regular play (`++`). `20%` now and then (`+`), and `56%` almost never (`-`). Ouch. This again isn't a very accurate statistic: we bought _The Quest for El Dorado_ last week and so far we think it's awesome but it's obviously only seen play three or so times. It's a fairly telling estimation though.

View File

@ -46,8 +46,9 @@ print(" \t -- OVERALL")
print(np.corrcoef(list(map(lambda v: v['score']['BGG'], data)), list(map(lambda v: v['score']['W'], data))))
print("\n\n")
print("Correlation between weight and plays?")
print(np.corrcoef(list(map(lambda v: v['score']['W'], data)), list(map(lambda v: v['weight'], data))))
#print("Correlation between weight and plays?")
#print(np.corrcoef(list(map(lambda v: v['score']['W'], data)), list(map(lambda v: v['weight'], data))))
def play(p):
if p == 1:
@ -59,5 +60,16 @@ def play(p):
for e in data:
print("| [" + e['name'] + "](" + e['link'] + ") | " + str(e['score']['BGG']) + " (" + str(e['score']['W']) + ") | " + str(e['weight']) + " | " + play(e['plays']) + " |")
print("Averages:")
print("\t BGG")
print(str(sum(list(map(lambda v: v['score']['BGG'], data))) / len(data)))
print("\t Own")
print(str(sum(list(map(lambda v: v['score']['W'], data))) / len(data)))
print("\t Weight")
print(str(sum(list(map(lambda v: v['weight'], data))) / len(data)))
print("\t plays")
print(str(sum(list(map(lambda v: v['plays'], data))) / len(data)))
plt.show()