Jag håller på och skapar ett lottningsprogram för ett antal lag men har kört fast. Som sista utväg så tänker jag sätta mig ner och skriva in alla matcher i sina respektive omgångar. För det är just där problemet ligger.
Jag har en array där alla lag ligger.
lagnamnen("lag1", "lag2", osv osv)
Med den har jag skapat ett koordinatsystem och på så sätt fått ut alla matcher som ska spelas. Där x > y så att jag bara får ett möte mellan varje lag. x < y ger alltså samma matcher fast annat hemmalag. Vid x=y möter man ju sig själv.
Mitt problem består sedan av att dela in alla matcher i omgångar.
Jag har gjort ett script som jag nu kommit fram till att det inte fungerar.
'[alla_matcher] är samtliga matcher i en array som ska spelas i den ordning att de är tagna från vänster till höger rakt av från koordinatsystemet.
for x = 0 to 20
for y= 0 to ubound(alla_matcher)
lag1 = left(alla_matcher(y), instr(alla_matcher(y), "]"))
lag2 = right(alla_matcher(y), len(alla_matcher(y))-instrrev(alla_matcher(y), "[")--1 )
if instr(tempmatch, lag1) = 0 AND instr(tempmatch, lag2) = 0 AND alla_matcher(y) <> "" then
schema(y, x) = alla_matcher(y)
tempmatch = tempmatch & alla_matcher(y)
alla_matcher(y) = ""
end if
next
tempmatch = ""
next
Problemet med denna är att om man har fler än 8 lag så kommer den plocka matcherna fel.
Första omgången kommer alltid bli rätt men sedan kommer alla matcher inte att kunna spelas.
Det blir:
1Omg: 1-2, 3-4, 5-6, 7-8, 9-10
2Omg: 1-3, 2-4, 5-7, 6-8, [Men nian och tian har ju redan spelats]
Så jag testade att varranan gång loopa genom [alla_matcher] bakifrån och varranan framifrån men det funkade inte heller.
Det blir alltså en massa matcher över i slutet så det blir typ:
1Omg: 6 matcher
2Omg: 5 matcher
3Omg: 5 matcher
4Omg: 5 matcher
5Omg: 5 matcher
6Omg: 2 matcher [Där matcherna är 9 eller 8 mot alla lag de inte mött]
7Omg: 2 matcher [Där matcherna är 9 eller 8 mot alla lag de inte mött]
Jag har suttit med det här ett tag nu men tuggar på samma tråd hela tiden. Tänkte ifall någon kunde bidra med en frisk fläkt?
Hur dela upp alla matcher i olika omgångar på bästa sätt så att samma lag inte spelar flera matcher i samma omgång?
Jag är inte ute efter bara koden utan helst efter den idé som löser problemet. Kod eller idé. Helst ska det funka. :)
Öppnar även en tråd i jobb och tjänster för saken skull.