/generate_football_fixture

Generating football(soccer) fixture to round-robin algorithm ๐Ÿ›‘

Primary LanguageJavaScript

๊ณต์ฐฐ๋ž˜๋ฆฌ๊ทธ ์ผ์ • ์ƒ์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ด ๋ผ๋ฆฌ๋ธŒ๋Ÿฌ๋ฆฌ๋Š” โ€™2015๊ณต์ฐฐ๋ž˜๋ฆฌ๊ทธ ์—ฌ์ฃผโ€™์˜ ์ผ์ •์„ ๊ณต์ •ํ•˜๊ณ  ๋‹ค์–‘ํ•˜๊ฒŒ ์งœ๊ธฐ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

๊ฒฝ๊ธฐํ•˜๋Š”๋ฐ ๋ฌด๋ฆฌ์—†์ด ์ž˜ ๋งŒ๋“ค์–ด ์กŒ์œผ๋‚˜ ๋ถˆ ์™„์ „ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๋ฐฐ๊ฒฝ

  • ๊ณต์ฐฐ๋ž˜๋ฆฌ๊ทธ์˜ ๋…ํŠนํ•œ ๋ฆฌ๊ทธ๋ฐฉ์‹๋•Œ๋ฌธ์— ๊ณต์ •ํ•œ ๋ฆฌ๊ทธ ์ผ์ •์ด ํ•„์š”ํ–ˆ๋‹ค.
  • http://www.fixturelist.com/ ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ์ง€๋งŒ ๊ณตํ‰ํ•˜์ง€ ๋ชปํ•œ ์ผ์ •์ด ๋‚˜์˜ค๊ฒŒ๋œ๋‹ค.
  • ์œ„์˜ ์‚ฌ์ดํŠธ์˜ example
Round 1 ......................
......... b vs (a) .........
......... c vs d .........
Round 2 ......................
......... d vs b .........
......... c vs (a) .........
Round 3 ......................
......... b vs c .........
......... d vs (a) .........

Round 4 ......................
......... (a) vs b .........
......... d vs c .........
Round 5 ......................
......... b vs d .........
......... (a) vs c .........
Round 6 ......................
......... c vs b .........
......... (a) vs d .........
  • aํŒ€์˜ ๊ฒฝ๊ธฐ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์น˜๋Š”๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • a๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“ ํŒ€์˜ ๊ฒฝ๊ธฐ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์ง
  • ์ด๋Ÿฌํ•œ ์ด์œ ๋Š” ๊ณต์ฐฐ๋ž˜๋ฆฌ๊ทธ๊ฐ€ ๊ฒฝ๊ธฐ ์ˆœ์„œ์˜ ๋”ฐ๋ผ ์‹œ๊ฐ„๋Œ€์™€ ์‹ฌํŒ์—…๋ฌด๊ฐ€ ๋‚˜๋‰˜์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.(์•„๋ž˜ ๋ฐฉ์‹์— ๋Œ€ํ•œ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค.)

๊ณต์ฐฐ๋ž˜๋ฆฌ๊ทธ์˜ ๊ฒฝ๊ธฐ, ๋ฆฌ๊ทธ์ผ์ •์˜ ๋ฐฉ์‹

  • ํ•˜๋ฃจ์— 2๊ฒฝ๊ธฐ(19:00~, 21:00~)
  • a, b, c, d (4๊ฐœํŒ€)
๊ฒฝ๊ธฐ ๊ฒฝ๊ธฐํ•  ํŒ€
์•ž๊ฒฝ๊ธฐ a vs b
๋’ท๊ฒฝ๊ธฐ c vs d
ํŒ€ : ๋ถ„ํฌ ์‹ฌํŒ
a : ์•ž๊ฒฝ๊ธฐ&ํ™ˆ (์ฃผ์‹ฌ, ๋Œ€๊ธฐ์‹ฌ)
b : ์•ž๊ฒฝ๊ธฐ&์–ด์›จ์ด (๋ถ€์‹ฌ)
c : ๋’ท๊ฒฝ๊ธฐ&ํ™ˆ (์ฃผ์‹ฌ, ๋Œ€๊ธฐ์‹ฌ)
d : ๋’ท๊ฒฝ๊ธฐ&์–ด์›จ์ด (๋ถ€์‹ฌ)

์กฐ๊ฑด

  • ๊ณจ๊ณ ๋ฃจ ๋ถ„ํฌ

  • ์•ž๊ฒฝ๊ธฐ & ํ™ˆ, ์•ž๊ฒฝ๊ธฐ & ์–ด์›จ์ด, ๋’ท๊ฒฝ๊ธฐ & ํ™ˆ, ๋’ท๊ฒฝ๊ธฐ & ์–ด์›จ์ด

    ์ฐธ๊ฐ€ํŒ€ ํ•ฉ = ๊ฒฝ๊ธฐ์˜ ํ•ฉ
    = ์•ž๊ฒฝ๊ธฐ & ํ™ˆ ์•ž๊ฒฝ๊ธฐ & ์–ด์›จ์ด ๋’ท๊ฒฝ๊ธฐ & ํ™ˆ ๋’ท๊ฒฝ๊ธฐ & ์–ด์›จ์ด
    4 = 2 2 1 1 -> 6๊ฒฝ๊ธฐ
    5 = 2 2 2 2
    6 = 3 3 2 2
    7 = 3 3 3 3
    8 = 4 4 3 3
    9 = 4 4 4 4
    10 = 5 5 4 4
    11 = 5 5 5 5
    20 = 10 10 9 9
    .
    .
    .

๋ฐฉ๋ฒ•

์ฐธ์กฐ : ๋ผ์šด๋“œ ๋กœ๋นˆ ์Šค์ผ€์ฅด๋ง.

  1. ํ•ญ์ƒ๋žœ๋ค
    • ์žฅ์  : ๋‹ค์–‘ํ•˜๊ฒŒ ๊ฒฝ๊ธฐ๋ฅผ ํ• ์ˆ˜์žˆ๋‹ค.
    • ๋‹จ์  : ๊ฒฐ๊ณผ๋ฅผ ๋ฝ‘์•„๋‚ด๋Š”๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ. ๋˜‘๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๋˜ ์ฐพ์„์ˆ˜ ์žˆ์Œ(๊ฒฝ์šฐ์˜์ˆ˜ ๋ชจ๋‘์ €์žฅ์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผ ํ•จ.)
  2. ๋žœ๋ค์œผ๋กœ ๋ฝ‘์•„๋…ผ ๊ฐ’์„ ๊ทธ ์ž๋ฆฌ์— ๋žœ๋ค์œผ๋กœ ๋“ค์–ด๊ฐ.
    • ์žฅ์  : ๊ฒฐ๊ณผ๊ฐ’์ด ๋น ๋ฆ„. ๋‹จ์ˆœ.
    • ๋‹จ์  : ๋งŒ์•ฝ์— ๊ฐ™์€ ์ž๋ฆฌ์— ๊ฐ™์€ํŒ€์ด ๋‚˜์™”์„ ๊ฒฝ์šฐ ์ผ์ •์ด ์ง€๋‚œ์‹œ์ฆŒ๊ณผ ๊ฐ™์•„์ง.

๊ณผ์ • (ํ’€์–ด ๊ฐˆ ๋ฐฉ๋ฒ•):

1. ๋žจ๋ค์€ ์–ด๋–ป๊ฒŒ??

  • 1๋‹จ๊ณ„ : ํ™ˆ vs ์–ด์›จ์ด
    • [ a vs b ] --> [ b vs a ] ...
  • 2๋‹จ๊ณ„ : ํ•œ ๋ผ์šด๋“œ ์•ˆ์—์„œ ๊ฒฝ๊ธฐ๋“ค
    • [ d vs b ] --> [ c vs a ]
    • [ c vs a ] [ d vs b ]
  • 3๋‹จ๊ณ„ : 1์ฐจ์ „ ๊ฐ ๋ผ์šด๋“œ
    • round 1 -> round 3 ...
  • 4๋‹จ๊ณ„(๋žœ๋ค์€ ์•„๋‹˜) : 1์ฐจ์ „์˜ ๊ฐ’ ๋ชจ๋‘๋ฅผ ํ™ˆ์–ด์›จ์ด๋ฅผ ๋ฐ”๊ฟ”์คŒ
  • 5๋‹จ๊ณ„ : 2์ฐจ์ „ ํ•œ ๋ผ์šด๋“œ ์•ˆ์—์„œ ๊ฒฝ๊ธฐ๋“ค
  • 6๋‹จ๊ณ„ : 2์ฐจ์ „ ๊ฐ ๋ผ์šด๋“œ
    • round 4 -> round 6 ...

2. ์ผ์ • ์ค‘๋ณต ์ฒดํฌ

  • 6ํŒ€์ด ์ฐธ๊ฐ€ํ–ˆ์„๋•Œ
  • ํ•œ๋ผ์šด๋“œ 3๊ฒฝ๊ธฐ,
  • 1๋ผ์šด๋“œ 3๊ฒฝ๊ธฐ์™€ 2๋ผ์šด๋“œ 1๊ฒฝ๊ธฐ๋ฅผ ๋ฌถ์–ด์„œ ๊ฒฝ๊ธฐ๋ฅผ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ธฐ ๊ฒฝ์šฐ
์•ž [ e vs c ]
๋’ค [ a vs d ]
์•ž [ b vs f ] <-- ์ค‘๋ณต๋ฐœ์ƒ
๋’ค [ b vs a ]
์•ž [ e vs d ]
๋’ค [ f vs c ]

๋น ๊พธ~ ๋น ๊พธ~

3. ์ตœ์ข… ๋ถ„ํฌ๊ฐ’ ์ฒดํฌ

  • ์œ„์˜ ๋ถ„ํฌ๊ฐ’์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ถ„ํฌ์กฐ๊ฑด์— ๋งž์ง€์•Š์œผ๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ผ์ •๋ฐœ์ƒ
  • ๋ถ„ํฌ์กฐ๊ฑด์— ๋งž์„๋•Œ๊นŒ์ง€ ๋‚˜์˜ฌ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

๋А๋‚€์ 

๋‹ค ๋งŒ๋“ค๊ณ  ๋‚˜๋‹ˆ ๋ถ„ํฌ์กฐ๊ฑด์ด ๋งž์ง€ ์•Š์„ ๋•Œ ๋‹ค์‹œ ์ผ์ •์„ ์ƒ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์ด ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Œ. ์™œ๋ƒํ•˜๋ฉด, ๋‹ค์‹œ์ƒ์„ฑ ๋˜์—ˆ์„ ๋•Œ ๊ทธ ๊ฐ’์ด ์ด์ „์— ์ƒ์„ฑํ–ˆ๋˜ ์ผ์ •์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ์ผ์ •์„ ์ฒดํฌํ•˜๊ณ  ์žˆ๋Š” ์…ˆ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋ฝ‘์•„๋‚ด์–ด ๊ทธ์ค‘์— ๋ถ„ํฌ์กฐ๊ฑด์ด ๋งž๋Š” ๊ฒฝ๊ธฐ์ผ์ •์„ ์ €์žฅํ•œ ๋’ค์— ๋ฝ‘์•„์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.