Jump to content
php.lv forumi

Turnīra tabula un vieta tajā


magone

Recommended Posts

Ir futbola tirnīrs ar spēļu rezultātiem. Vajag skriptu, kas komandai piešķir attiecīgo vietu. Viss ir vienkārši, kad atšķiras punktu skaits. Sakaārtoju masīvu un viss, bet, pie vienāda punktu skaita jāskatās savstarpējo spēļu rezultāti un attiecīgi jāsarindo komandas. Netieku ar to galā, it sevišķi, ja vienāds punktu skaits ir vairāk par divām komandām. Varbūt kāds zin kādu gatavu skriptu turnīru tabulām vai algoritmu nestandarta kārtošanai vai kādas saites webā par to.

Link to comment
Share on other sites

Kas notiek gadījumā, ja komandām A, B un C ir vienāds punktu skaits un A ir zaudējusi B, kas ir zaudējusi C, kas ir zaudējusi A (ar vienādu vārtu skaitu)?

 

Tad skatās visu kopējo turnīrā iegūto vārtu starpību.

Link to comment
Share on other sites

Nu tātad cik saprotu sākotnēji uzdevumu sadalam šādos apakšuzdevumos:

1) atrast katras komandas punktu skaitu

2) atrast katras komandas novietojumu starp vienādo rezultātu ieguvušajām komandām pēc savstarpējo spēļu iznākuma

3) atrast katras komandas novietojumu starp vienādo rezultātu ieguvušajām komandām pēc iesisto/ielaisto vārtu statistikas

šķirot rezultātu vispirms pēc 1), tad 2), tad 3)

 

Lai uzrakstītu pieprasījumu, vajadzētu zināt tabulu struktūras.

Link to comment
Share on other sites

  • 3 weeks later...

Radušās problēmas ar čempionāta tabulas sakārtošanu pēc dažiem nosacījumiem.

 

sakartošanas secība:

0) punktu skaits - punkti (ok)

1) savstarpējo spēļu rezultātiem - vairāk punktu,

2) labākās vārtu starpības savstarpējās spēlēs,

3) lielākā gūto vārtu skaita savstarpējās spēlēs,

4) labākās vārtu starpības visās spēlēs - bilance (ok)

5) mazākās visu spēlētāju soda laiku summas. (ok)

 

Pieņemsim, ka šis ir sākotnējais sql:

"... ORDER BY punkti DESC, bilance DESC"

 

Ar 0) un 4) viss vienkārši. Biku čakarē viss pārējais - nav iespējams visu salikt vienā sql pieprasījumā (mysql btw).

Izdomāju citu veidu: Ieselektēju katras komandas visu spēlētāju soda minūšu summas, sametu masīvā:

$komandu_sodi[$komandas_id] = $sodu_summa;

Sakārtoju pēc mazākās summas. Izveidoju kārtošanas secību komandu soda minūtēm -

$order_sodi = implode(',', array_keys($komandu_sodi));

Ielieku iekš sql pieprasījuma:

"... ORDER BY punkti DESC, bilance DESC, find_in_set(komandas.id, '$order_sodi') ASC"

Lab, tik tālu viss easy.

 

Ņemam nākamo nosacījumu: doma arī visu samest kkādā masīvā. Pagaidām tā:

masivs[majnieku komandas id][viesu komandas id] = visu savstarpeejo guuto punktu starpība

Nekas nenāk prātā, kā to visu pēctam izmantot, lai dabūtu iekš sql :) Ir kāda doma?

Edited by Val
Link to comment
Share on other sites

  • 1 month later...
×
×
  • Create New...