Page 1 of 6

Catan Is Broken. Unplayable

Posted: 08 November 2023, 16:04
by nbhskrfn
The “randomizer” is just so bad. If 8 is getting rolled then 6 is almost totally suppressed. Vice versa if it’s 6. It’s the same with 5 & 9 and 10 & 4. You can immediately tell who’s going to win by the first 6 rolls and settlement placement. I’m done . Considering canceling my subscription.

Re: Catan Is Broken. Unplayable

Posted: 08 November 2023, 16:29
by GTSchemer
For any game where this occurs, you're certainly welcome to post the distribution of numbers from the whole game, and put it in a curve fitting website to check whether the bell curve probably follows random distribution. Or, if you just post the distribution, we can do the curve fitting.

However, if you do not post the full distribution from the game, we can't adequately perform curve fitting to demonstrate (or disprove) the distribution for the game in question.

As you may know, random numbers in the Catan source simply use the BGA random number generator and have no capacity for manipulation.

Re: Catan Is Broken. Unplayable

Posted: 08 November 2023, 16:41
by Sjarmtrollet
nbhskrfn wrote: 08 November 2023, 16:04 You can immediately tell who’s going to win by the (...) settlement placement.
That's how the game was designed.

Re: Catan Is Broken. Unplayable

Posted: 08 November 2023, 17:07
by Romain672
Another theory on how work the randomness of the site, while everyone has the same.

*added to my list*

Re: Catan Is Broken. Unplayable

Posted: 08 November 2023, 18:27
by Tisaac
Are you sure you didnt forgot to check the "luck draws" option in your player panel ? This should appears once you are premium.
But be cautious with this option, if several players around the table has the option enabled, the table explodes since you cant have rolls that are good for all the players.

Re: Catan Is Broken. Unplayable

Posted: 08 November 2023, 19:22
by turtler7
If games don't occur where some numbers just appear way less than the expected value... THAT ISN"T RANDOMNESS!!!!

Deviations from expected values are how you know the randomizer isn't broken.

Thanks,
Your resident mathematics teacher.

Re: Catan Is Broken. Unplayable

Posted: 08 November 2023, 22:58
by nik592
Yeah it's that belief that if 8 hasn't come up most of the game, then it's WAY more likely to come up soon, right? Nope, every roll has the same odds of rolling an 8, because rolls don't know about previous rolls.

Re: Catan Is Broken. Unplayable

Posted: 09 November 2023, 01:46
by Meeplelowda
GTSchemer wrote: 08 November 2023, 16:29 For any game where this occurs, you're certainly welcome to post the distribution of numbers from the whole game, and put it in a curve fitting website to check whether the bell curve probably follows random distribution. Or, if you just post the distribution, we can do the curve fitting.

However, if you do not post the full distribution from the game, we can't adequately perform curve fitting to demonstrate (or disprove) the distribution for the game in question.

As you may know, random numbers in the Catan source simply use the BGA random number generator and have no capacity for manipulation.
turtler7 wrote: 08 November 2023, 19:22 If games don't occur where some numbers just appear way less than the expected value... THAT ISN"T RANDOMNESS!!!!

Deviations from expected values are how you know the randomizer isn't broken.

Thanks,
Your resident mathematics teacher.
nik592 wrote: 08 November 2023, 22:58 Yeah it's that belief that if 8 hasn't come up most of the game, then it's WAY more likely to come up soon, right? Nope, every roll has the same odds of rolling an 8, because rolls don't know about previous rolls.
I appreciate you trying to fight the good fight, but I've yet to see someone respond by saying, "oh, I understanding now and withdraw my conspiracy theory about how the site is rigged." They are only ever looking for someone to agree with them. I suppose these responses still help guide people who are willing to learn.

Re: Catan Is Broken. Unplayable

Posted: 09 November 2023, 03:01
by Gulchen
I guess that much hasn't happened, but we do have ​ https://boardgamearena.com/forum/viewto ... 4&start=10 .

Re: Catan Is Broken. Unplayable

Posted: 09 November 2023, 05:55
by Gulchen
With Python 3.8.0 on linux, running

Code: Select all

from math import comb

def run_analysis_(replaytranscript):
	if type(replaytranscript) != str:
		raise TypeError
	L,histogram = len(replaytranscript),[0 for _ in range(13)]
	for i in range(L-13):
		if replaytranscript[i:i+13] != " rolls dice: ":
			continue
		if not ((i+16 < L) and (replaytranscript[i+13] in ('1','2','3','4','5','6')) and (replaytranscript[i+14] == ',') and (replaytranscript[i+15] in ('1','2','3','4','5','6')) and (replaytranscript[i+16] == '\n')):
			raise ValueError
		histogram[int(replaytranscript[i+13])+int(replaytranscript[i+15])] += 1
	numberofrolls = sum(histogram)
	if not all(sum(int(replaytranscript[i:i+3] == threecharstring) for i in range(L-3)) == numberofrolls for threecharstring in ("rol","lls","dic","ce:")):
		raise ValueError
	print()
	print(str(numberofrolls)+" total rolls")
	print("frequency of (4,5,6,8,9,10):  "+(','.join(str(histogram[i]) for i in (4,5,6,8,9,10))))
	print()
	inner,middle,outer = histogram[6]+histogram[8],histogram[5]+histogram[9],histogram[4]+histogram[10]
	frequencyofwhatwasobserved = (2-int(histogram[6] == histogram[8]))*comb(inner,histogram[8])*(2-int(histogram[5] == histogram[9]))*comb(middle,histogram[9])*(2-int(histogram[4] == histogram[10]))*comb(outer,histogram[10])
	partitionintothree,numberofties = [0,0,0],0
	for x in range((inner//2)+1):
		for y in range((middle//2)+1):
			for z in range((outer//2)+1):
				frequencyofxyz = (2-int(2*x == inner))*comb(inner,x)*(2-int(2*y == middle))*comb(middle,y)*(2-int(2*z == outer))*comb(outer,z)
				if frequencyofwhatwasobserved < frequencyofxyz:
					partitionintothree[2] += frequencyofxyz
				elif frequencyofxyz < frequencyofwhatwasobserved:
					partitionintothree[0] += frequencyofxyz
				elif (x,y,z) == (min(histogram[6],histogram[8]),min(histogram[5],histogram[9]),min(histogram[4],histogram[10])):
					partitionintothree[0] += frequencyofxyz
				else:
					partitionintothree[1] += frequencyofxyz
					numberofties += 1
	if sum(partitionintothree) != 2**sum(histogram[i] for i in (4,5,6,8,9,10)):
		raise RuntimeError
	denominator = sum(partitionintothree)
	print()
	if numberofties == 0:
		print("The p-value is  "+str(partitionintothree[0]/denominator)+" .")
	elif numberofties == 1:
		print("There is exactly one other way to get the same frequency.")
		print("If that tie is broken in the way that makes the observed event more surprising, then the p-value is  "+str(partitionintothree[0]/denominator)+" .")
		print("Otherwise, the p-value is  "+str((partitionintothree[0]+partitionintothree[1])/denominator)+" .")
	else:
		print("There are "+str(numberofties)+" other ways to get the same frequency.")
		print("If there is no tiebreaker, then the p-value is  "+str((partitionintothree[0]+partitionintothree[1])/denominator)+" .")
		print("Otherwise, the p-value is at most that and at least  "+str(partitionintothree[0]/denominator)+" .")
	print()
on copy-pastes of ​ the analogue of https://boardgamearena.com/gamereview?table=437304303
from your 11 most-recent CATAN games gives p-values

0.853095 ​ , ​ 0.491452 ​ , ​ 0.248882 ​ , ​ 0.134306 or 0.141482 ​ , ​ 0.375248 ​ , ​ 0.446907
, ​ 0.0496748 ​ , ​ 0.451987 ​ , ​ 0.388373 or 0.414333 ​ , ​ 0.254257 ​ , ​ 0.0922030 ​ ​ ​ .


I did 11 rather than 10 because 0.491452 was from a game where ​ ​ ​ Someone left it before the end ​ .