Poradie v tabulke

Programovacie jazyky, rady, poradňa...
hudi1
Amateur
Amateur
Príspevky: 31
Registrovaný: 13 máj 2009, 15:37

Poradie v tabulke

Príspevok od používateľa hudi1 »

zdravim,

mam danu tabulku hracov a zapasy medzi nimi. Z toho viem vypocitat skore a body a teraz potrebujem urcit celkove poradia aby sa zapocitali vsetky alternativy ked maju dvaja alebo viac hracov rovnaky pocet bodov aby urcilo celkove poradie a podobne. Nedari sa mi takyto algoritmus najst na internete a urcite dufam uz niekde bude tak ak mi poradite nejaky ten link tak vam budem vdacny

thx
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Re: Poradie v tabulke

Príspevok od používateľa refr0 »

aky algoritmus :D ? len proste zoradis od najviac bodov po najmenej a mas po probleme to ked uz ma niekto rovnaky pocet bodov ty nijako nezmenis pokial tam nepriadas dalsiu premennu...
hudi1
Amateur
Amateur
Príspevky: 31
Registrovaný: 13 máj 2009, 15:37

Re: Poradie v tabulke

Príspevok od používateľa hudi1 »

keby to bolo take lahke tak tu nepisem. ked tomu nerozumies tak tu radsej neprispievaj. Ked ma viac hracov rovnaky pocet bodov tak ich treba dat do samostanej tabulky cize treba pouzit rekurziu az pokym v tej samostatnej tabulke nemaju vsetci rovnaky pocet bodov a az potom to zoradovat podla inych kriterii
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Poradie v tabulke

Príspevok od používateľa juho »

no on sa tomu rozumie lenze ty si nedal ze co to je v akom jazyku to je ake technologie chces pouzit a proste ze co vlastne myslis.. takze az tieto informacie nedoplnis tak ta bude skoro kazdy ignorovat a jediny kto ti odpovedal tak toho si takto urazil ..pch..
hudi1
Amateur
Amateur
Príspevky: 31
Registrovaný: 13 máj 2009, 15:37

Re: Poradie v tabulke

Príspevok od používateľa hudi1 »

robim to v jave ale staci mi hocijaky nacrt kodu aj v inom jazyku. a co tu mam nacrtnut ? nevies ako sa urcuje poradie v tabulke ved je to vsade a myslel som ze to ludia poznaju
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

Re: Poradie v tabulke

Príspevok od používateľa mirak2 »

budes mat iba velmi kosatu podmienku if-else...robil som to v projekte v zime, akurat aplikovane na hokej

Kód: Vybrať všetko

//komparator na zoradovanie hracov
public class HracByStats implements Comparator<Hrac> {
	Liga liga;
	public HracByStats(Liga liga){
		this.liga = liga;
	}
	public int compare(Hrac hrac1, Hrac hrac2) {
		if (hrac1.getGoly()+hrac1.getAsist()>hrac2.getGoly()+hrac2.getAsist()){
			return 1; 
		} else if(hrac1.getGoly()+hrac1.getAsist()==hrac2.getGoly()+hrac2.getAsist()){			
			if(hrac1.getGoly()>hrac2.getGoly()) {
				return 1;
			} else if(hrac1.getOdohratychZapasov()<hrac2.getOdohratychZapasov()) {
					return 1;
			} else return -1;
			
		} else return -1;
	}

}
aby som vysvetlil: zoraduje pekne podla bodov (goly+asistencie), ak ale maju dvaja rovnaky pocet bodov tak sa ide pozriet kto dal viac golov, a podla toho rozhodne ktory pojde skor v tabulke, ak maju rovnaky pocet golov, tak sa ide pozriet na pocet odohranych zapasov, kto ma menej je lepsi..ak ani tak nevie rozhodnut moze to zoradit podla abecedy podla hraca alebo co ja viem podla coho...
ty to budes mat podobne...zoradovat podla bodov, potom v pripade rovnosti prejdes na dalsie veci..akurat ta musim upozornit ze nieco take ako usporiadavanie na zaklade vzajomnych zapasov je trochu tazsie a ja sam som to aplikovat ani nemohol (nebol na to vhodny objektovy navrh)
hudi1
Amateur
Amateur
Príspevky: 31
Registrovaný: 13 máj 2009, 15:37

Re: Poradie v tabulke

Príspevok od používateľa hudi1 »

njn thx toto je ta lahsia cast ale zide sa to. Ja musim aj vyriesit ked ma viac hracov rovnaky pocet bodov aby ich zoradilo spravne
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Poradie v tabulke

Príspevok od používateľa juho »

no alebo druha moznost je spravit tiredu ktora implementuje comparable a pretazis metodu compareto kde budes mat tie podmienky ze ak sa rovnaju tie body tak porovnaj ine zaznamy a z toho vrat hodnotu a implementujes to ako sortedset ci take nieco sortedlist to bolo uz si nepamatam presne a potom len v guicku si to prehodis ako toarray vytvoris defaulttablemodel a tej tabulke priradis stlpce a nalinkujes udaje a uz len to tej povodnej tabulke posles cez setModel
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

Re: Poradie v tabulke

Príspevok od používateľa mirak2 »

no toto zoraduje aj takych co maju rovnaky pocet bodov podla dalsich pravidiel ;)
hudi1
Amateur
Amateur
Príspevky: 31
Registrovaný: 13 máj 2009, 15:37

Re: Poradie v tabulke

Príspevok od používateľa hudi1 »

ale ked ma viac hracov rovnaky pocet bodov tak sa neporovnavaju podla dalsich kriterii ale musia sa dat do osobitnej tabulke a tam zasa spocitat body. Porovnat podla dalsich kriterii sa moze az ked maju vsetci v tej podtabulke rovnaky pocet bodov
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Poradie v tabulke

Príspevok od používateľa juho »

onotie rozhrania javovske sluzia nato aby sa to hned zaradilo ked tam ten udaj pridas ale neviem o akych tabulkach sa tu pise ci pouzivas databazu ci co...vysvetli co myslis toymi tabulkami
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Poradie v tabulke

Príspevok od používateľa axxis »

a neslo by to to tak, ze by zacal ako to spravil Mirak a potom by zotriedenu kolekciu raz presiel pri com by kontroloval ci hrac na pozicii i ma rovnaky pocet bodov ako hrac na pozicii i+1, ak ano obaja by sa prekopirovali do inej kolekcie, tabulky alebo coho. ta druha kolekcia by vyerala nejako takto Kolekcia<HraciPodlaBodov<Hrac>>, bola bz to vlastne kolekcia kolekcii ( aby boli hraci, ktory maju rozne body oddeleni) a potom by si vytovril comparatory, ktore by vedeli triedit podla nim zadanych kriterii. samotne triedenie by bolo spustene tak, ze zavola Kolekcia.sort, v ktorej bude vo foreach HraciPodlaBodov.sort
hudi1
Amateur
Amateur
Príspevky: 31
Registrovaný: 13 máj 2009, 15:37

Re: Poradie v tabulke

Príspevok od používateľa hudi1 »

pouzivam jednoduche dvojrozmerne pole
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Poradie v tabulke

Príspevok od používateľa axxis »

a to Ti ako funguje? ako ich tam mas vobec usporiadanych? a co ked budes mat viac hracov ako je kapacita pola? budes prerabat cely program?
hudi1
Amateur
Amateur
Príspevky: 31
Registrovaný: 13 máj 2009, 15:37

Re: Poradie v tabulke

Príspevok od používateľa hudi1 »

no na zaciatku zadam kolko bude hracov a podla toho vytvorim pole. preco by to nemalo fungovat
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Poradie v tabulke

Príspevok od používateľa axxis »

nevravim, ze to priamo nefunguje, ale keby si chcel mat napr. 30 hracov tak ake bude to pole? 3x10? 5x6? ako tam mas tych hracov usporiadanych? ak su usporiadani normalne sekvencne, ze hrac [0,0] je prvy a hrac [m,n] posledny tak to dvojrozmerne pole absolutne straca zmysel (lebo je to len prezleceny linearny zoznam). a dajme tomu, ze uz mas to pole na 30 hracov a chces este 5 dodat. co urobis? pustis program zovnu aby si si alokoval ine pole?
hudi1
Amateur
Amateur
Príspevky: 31
Registrovaný: 13 máj 2009, 15:37

Re: Poradie v tabulke

Príspevok od používateľa hudi1 »

taka situacia nenastane ze mam 30 hracov a chcem pridat dalsich 5 neviem ci si bol niekedy na nejakom turnaji ale na zaciatku byva registracia kde sa registruju vsetci hraci potom ked skonci sa urci hraci system takze napriklad ked pride 76 hracov rozdelia sa do 4 skupin a v kazdej bude 19 hracov takze budem mat 4 dvojrozmerne pole kde v kazdej skupine odohraju hraci zapasy kazdy s kazdym a potom ho naplnim vysledkami tak ze v hrac[m][n]="5:3" kde m n je cislo hraca
Napísať odpoveď