inker / draw

⚽ Champions League draw simulator
https://inker.github.io/draw/
236 stars 69 forks source link

Algorithm #61

Closed skaincz closed 5 years ago

skaincz commented 5 years ago

Hello,

Can someone explain me how this program works? Meaning which is the algorithm to check whether a group is availiable or not due to the other teams need an availible group as well. I hope you understand my english

inker commented 5 years ago

@skaincz It depends on the competition. Currently CL (GS & KO), EL (GS & KO) & the World Cup are supported.

Take the CL GS draw. Whenever you pick a team, in order to determine the possible groups it can be drawn into, the program recursively runs virtual 'mini-draws' to check if a certain group is possible or not i.e. if the virtual draw has successfully completed.

I've rewritten the algorithm a bit & made it functional: somewhat slower, but more readable & reusable. See this repo for the engine itself. The predicate for CL GS (i.e. the function that determines whether the team can go into a certain group or not) is here.

skaincz commented 5 years ago

I still don't get it... I don't understand the program language