Men hur?
Jag är medveten om hur loopen utförs, jag har möjlighet att beräkna antal grupper behövda genom min ekvation ovanför (x / 4), så lås oss säga att X = 132. Då får vi y = 33 där y beskriver antal behövda grupper.
Men vad händer som sagt med 133 stycken? Jag måste ju fortfarande loopa för att flytta en medlem. Detta på grund av att en grupp får inte vara mindre än 2, 2 är okej men lämpligare vore ju som följande:
Grupp 1: 4
Grupp 2: 4
Grupp 3: 4
Grupp 4: 2
Grupp 3 skänker Grupp 4 en. Resultat:
Grupp 1: 4
Grupp 2: 4
Grupp 3: 3
Grupp 4: 3
Sen måste ju konstruktorn för min klass kunna ta emot en varierande mängd av medlemmar då den array max får bestå av 4, så den måste ursprungligen ta emot en array, placera alla objekt i array som en member i dess egna member-array och sen fortsätta med nästa grupp.
Det innebär att jag skulle kunna skicka en siffra mellan 0-3 (antagande att 0 är en indexeringsplats (egentligen: 1-4)) i antal medlemmar till konstruktorn för att designa ett objekt av det. Nu är ju dock igen problemet, hur gör jag loopen som ser till att medlemmarna i Grupp 3 skänker bort för att stabilisera möjligheten för en Grupp (ex 4) att vinna mot en Grupp 1 eller Grupp 2? Tänk att jag kommer ha ca 33-X antal grupper ungefär.
Antaget om X = 10
X / 4 = 2,5. 2,5 kan inte skapa en grupp då det blir
1: 4
2: 4
3: 2
Antag: 1 skänker, 2 skänker.
1: 3, 2: 3, 3: 3. I slutändan måste vi skapa en fjärde grupp, för vi saknar en person (3*3 = 9).
Nya: 1: 2, 2: 2, 3: 2, 4: 2. Grupperna är jämna och kan användas eftersom ingen understiger minimum.
En "tävling" ställs in om inte sökande är nog för att skapa minimalt 2 grupper så det användarfallet behöver man inte oroa sig för.'
Jag är säker på att jag överdriver eller tänker för mycket kring slutresultatet snarare än att ta en enkel väg till resultatet. Kom gärna med förslag.