Permalänk

Java högsta poäng :S?

trodde det skulle gå att få reda på högsta poäng igenom:

int temp=0; for(int i = 0; i <nrOfPpl; i +) { int score= players[i].getScore(); if(score > temp) { temp=score; int pos = i; } System.out.println(score); }

men den skriver ut alla poäng... och det vill jag ju inte

Visa signatur

AMD Phenom II X4 9556- kylls av Cooler Master V8 - Windows 7 64BIT - 8 GB 1600Mhz Corsair DDR3 - Radeon HD 6800 - Cooler Master Scout - Silver Power SP-SS620M 620W PSU - Corsair SSD Force Series F60A, 60GB - Western Digital Caviar Black 1,5TB 7200RPM-

Permalänk
Medlem

System.out.println(score); måste du ha efter måsvingen på din for-loop

Visa signatur

Citera om du skriver till mig. Annars läser jag troligtvis INTE.

Permalänk

mycket riktigt, är lite för trött för att programera nu märkte jag

int temp=0; for(int i = 0; i <nrOfPpl; i +) { int score= players[i].getScore(); if(score > temp) { temp=score; int pos = i; } } System.out.println(temp);

så ska det vara, temp ist för score också...

mod kan stänga tråden!

Visa signatur

AMD Phenom II X4 9556- kylls av Cooler Master V8 - Windows 7 64BIT - 8 GB 1600Mhz Corsair DDR3 - Radeon HD 6800 - Cooler Master Scout - Silver Power SP-SS620M 620W PSU - Corsair SSD Force Series F60A, 60GB - Western Digital Caviar Black 1,5TB 7200RPM-

Permalänk
Medlem
Skrivet av Pojjoplopp:

mycket riktigt, är lite för trött för att programera nu märkte jag

mod kan stänga tråden!

Förstår inte varför det skulle vara någon till fördel. Dessutom har du kvar ett problem i din kod, så chansen finns att du återkommer och då är det ju bra om tråden är öppen..

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Hint, int pos gör inte mkt nytta;)
Även nåt med din loop^^

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk

nrOfPpl = players.length?

int pos = i; har ingen mening

Permalänk

int highscore = 0; for(int i = 0; i < nrOfPpl; i++) { if(players[i].getScore() > highscore) highscore = players[i].getScore(); } System.out.println(highscore);

Bör fungera ekvivalent? (har inte möjlighet att testa)

Visa signatur

Citera, tack!
Har du läst tråden om strandhögtalare och andra musiklådor?

Permalänk
Skrivet av blomqvist:

int highscore = 0; for(int i = 0; i < nrOfPpl; i++) { if(players[i].getScore() > highscore) highscore = players[i].getScore(); } System.out.println(highscore);

Bör fungera ekvivalent? (har inte möjlighet att testa)

Den där lösningen ser korrekt ut!

Permalänk
Medlem
Skrivet av blomqvist:

int highscore = 0; for(int i = 0; i < nrOfPpl; i++) { if(players[i].getScore() > highscore) highscore = players[i].getScore(); } System.out.println(highscore);

Bör fungera ekvivalent? (har inte möjlighet att testa)

Skulle dock säga att det är bättre att mellan lagra resultatet från getScore() än att anropa metoden två gånger, då du eventuellt aldrig vet hur prestanda krävande den metoden är.

Permalänk
Medlem

int hs = 0; for(int i = 0; i < players.length; i++) if(players[i].getScore() > hs) hs = players[i].getScore(); System.out.println(highscore);

Permalänk
Skrivet av Tino:

Skulle dock säga att det är bättre att mellan lagra resultatet från getScore() än att anropa metoden två gånger, då du eventuellt aldrig vet hur prestanda krävande den metoden är.

Med tanke på hur komplext programmet i sig verkar vara antog jag att det är en funktion som kör

int getScore() { return score; }

Men du har en vettig poäng!

Visa signatur

Citera, tack!
Har du läst tråden om strandhögtalare och andra musiklådor?

Permalänk
Medlem

Eftersom folk vill skriva kod så vill jag också vara med! :((

{ System.out.println("Highscore: "+getHighscore(players, 0, 0)); } private static int getHighscore(Player[] players,int i, int score) { return players[i].getScore() > score ? i < players.length-1 ? getHighscore(players,i+1,players[i].getScore()) : players[i].getScore() : i < players.length-1 ? getHighscore(players,i+1,score) : score; }

Rekursiv ternary oneliner!

“To iterate is human, to recurse divine.”
(L. Peter Deutsch)

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem
Skrivet av Gnejs:

Eftersom folk vill skriva kod så vill jag också vara med! :((

{ System.out.println("Highscore: "+getHighscore(players, 0, 0)); } private static int getHighscore(Player[] players,int i, int score) { return players[i].getScore() > score ? i < players.length-1 ? getHighscore(players,i+1,players[i].getScore()) : players[i].getScore() : i < players.length-1 ? getHighscore(players,i+1,score) : score; }

Rekursiv ternary oneliner!

“To iterate is human, to recurse divine.”
(L. Peter Deutsch)

Du är verkligen helt tokig i ternary-operatorer

Jag har också en one-liner.. int hiscore = Arrays.sort(players)[players.length-1] (som naturligtvis inte fungerade, lite för hög tilltro till standardbiblioteket verkar det som :\)

Arrays.sort(arr); int hiscore = arr[arr.length-1]; // Arrays.sort är dum.

edit: Jag har verkligen lyckats glömma hur klumpigt Java är! Det gör lite ont i hjärtat..

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av Balls Of Steel:

nrOfPpl = players.length?

int pos = i; har ingen mening

Kan vara så att det används senare, i kod som inte visats.

Skrivet av Gnejs:

Eftersom folk vill skriva kod så vill jag också vara med! :((

{ System.out.println("Highscore: "+getHighscore(players, 0, 0)); } private static int getHighscore(Player[] players,int i, int score) { return players[i].getScore() > score ? i < players.length-1 ? getHighscore(players,i+1,players[i].getScore()) : players[i].getScore() : i < players.length-1 ? getHighscore(players,i+1,score) : score; }

Rekursiv ternary oneliner!

“To iterate is human, to recurse divine.”
(L. Peter Deutsch)

Kan vara den mest oläsbara koden jag sett på länge. Straffslag på den!

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Skrivet av KurreKula:

Kan vara den mest oläsbara koden jag sett på länge. Straffslag på den!

Straffslag i kvadrat... Jag brukar iaf hålla mig till kod som är näst intill läsbar, men detta är ju tokigt

Permalänk
Skrivet av Dalton Sleeper:

Straffslag i kvadrat... Jag brukar iaf hålla mig till kod som är näst intill läsbar, men detta är ju tokigt

Oklart hur tävlingen om att göra bra kod blev till en tävling att göra oläsbar och odebugbar kod ^^

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Skrivet av KurreKula:

Kan vara så att det används senare, i kod som inte visats.

Kan vara den mest oläsbara koden jag sett på länge. Straffslag på den!

Den kan inte användas senare då den är deklarerad lokalt i if-satsen -.-

Skrivet av Dalton Sleeper:

Straffslag i kvadrat... Jag brukar iaf hålla mig till kod som är näst intill läsbar, men detta är ju tokigt

Skrivet av KurreKula:

Oklart hur tävlingen om att göra bra kod blev till en tävling att göra oläsbar och odebugbar kod ^^

Behöver ju inte debugga sånt som alltid funkar!;) Sen var det nog inte mening att den skulle vara läslig Borde säga sig självt ju
Bara erkänna att den e vacker på sitt egna lilla sätt^^
Hade inte commitat den sådär på jobbet om jag säger så

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem
Skrivet av KurreKula:

Kan vara så att det används senare, i kod som inte visats.

Går inte, deklarerad inuti block.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av Teknocide:

Går inte, deklarerad inuti block.

Där får jag väl ge mig. Missade att det var en deklaration också

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Skrivet av erifri:

int hs = 0; for(int i = 0; i < players.length; i++) if(players[i].getScore() > hs) hs = players[i].getScore(); System.out.println(highscore);

Jag gör en variant av den här och använder en av Javas inbygda metoder som eventuellt kan bli optimerad av den virtuella maskinen.

Citat:

int hs = 0; for(int i = 0; i < players.length; i++) hs=Math.max(hs,players[i].getScore()); System.out.println(hs);

//C

PS. Personligen tycker jag att man ALLTID ska ange måsvingar runt vilkorsuttryck men behöll formatet för att vara enhetlig med övriga här.

Permalänk
Hedersmedlem

Jag tycker Gnejs rekursiva exempel var väl värt att lägga upp. När vi vet vad det åstadkommer på förhand så är det utbildande att titta på för att lära sig hur språket kan fungera på andra sätt och hur problemet kan lösas på ett annat sätt (rekursivt). Och jag menar inte att man ska "lära sig" det sättet och skriva produktionskod. Men elegant var det (om än javasyntaxen gör det lite väl jobbigt).
Jag använder ofta trinära villkorsoperatorn när det blir elegantare. Exempel:

return result != null ? result : 0;

Kontra:

if (result != null) { return result; } else { return 0; }

vilket kan kortas ner till lite nättare (men jag gillar trinära bättre):

if (result != null) return result; return 0; }

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Medlem
Skrivet av conio:

PS. Personligen tycker jag att man ALLTID ska ange måsvingar runt vilkorsuttryck men behöll formatet för att vara enhetlig med övriga här.

Tummen upp för att alltid göra måsvingar, är en mycket bra vana.

Skrivet av Aqualize:

Jag tycker Gnejs rekursiva exempel var väl värt att lägga upp. När vi vet vad det åstadkommer på förhand så är det utbildande att titta på för att lära sig hur språket kan fungera på andra sätt och hur problemet kan lösas på ett annat sätt (rekursivt). Och jag menar inte att man ska "lära sig" det sättet och skriva produktionskod. Men elegant var det (om än javasyntaxen gör det lite väl jobbigt).
Jag använder ofta trinära villkorsoperatorn när det blir elegantare. [...]

Finns ingen egentlig anledning till att lösa just denna uppgiften rekursivt bortsett från just utbildningssyftet. Däremot finns det en hel del fall där rekursion kan vara ypperligt värdefullt för att lösa en uppgift effektivt, även om det kan vara svårt att bemästra rekursion. Men kan alltid känna sig lite extra stolt när man löst något knepigt med hjälp av rekursion. Bra att känna till hur som helst!

Har man inte sett ternary uttryck så kan det tyckas vara svårare att förstå men när man väl är van så kan en välskriven och indenterad/uppdelad ternary vara lättare/snabbare att förstå/följa än en hop med if /if else eller dyl.

Det som är det vackra med programmering, varje problem går att lösa på så många olika sätt

Känns däremot som att tråden glidit ifrån ursprungsfrågan men det finns ändå en del nyttigheter skrivna här, gör säkert gött för något som orkar läsa!:P

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Avstängd
Skrivet av erifri:

int hs = 0; for(int i = 0; i < players.length; i++) if(players[i].getScore() > hs) hs = players[i].getScore(); System.out.println(highscore);

Usch, förstår inte folk som kodar java. PHP IS THE SHIT!

Visa signatur

Dator:
CPU: Intel Sandybridge Core i7 2600k @4,5ghz 1.38v | GPU: HIS 6970 @ 960/5000 | RAM: Corsair Vengance 8gb @ 1600mhz MOBO: ASrock z68 mITX HT CHASSI: Silverstone Sugo SG08.

Permalänk
Medlem
Skrivet av VaNiLLA7:

Usch, förstår inte folk som kodar java. PHP IS THE SHIT!

Hur kan du säga något sånt? PHP är nog det mest förvirrande och okonsistenta språk jag sett.

Permalänk
Avstängd
Skrivet av htux:

Hur kan du säga något sånt? PHP är nog det mest förvirrande och okonsistenta språk jag sett.

Jag kan bara PHP Java ser så jäkla svårt ut jämfört med PHP

Visa signatur

Dator:
CPU: Intel Sandybridge Core i7 2600k @4,5ghz 1.38v | GPU: HIS 6970 @ 960/5000 | RAM: Corsair Vengance 8gb @ 1600mhz MOBO: ASrock z68 mITX HT CHASSI: Silverstone Sugo SG08.

Permalänk
Medlem
Skrivet av VaNiLLA7:

Usch, förstår inte folk som kodar java. PHP IS THE SHIT!

Ska vi inte jämföra en gräsklippare med en bil samtidigt som vi håller på?

Visa signatur

Datorer - M1 MacBook Pro 14"
Hörlurssystem - Scarlett 4i4 / Objective2 / Beyerdynamic DT 770
Ljudsystem - NAD C356BEE > DALI Mentor 6
Bilpark - Porsche 718 Spyder

Permalänk
Skrivet av Aqualize:

Jag tycker Gnejs rekursiva exempel var väl värt att lägga upp. När vi vet vad det åstadkommer på förhand så är det utbildande att titta på för att lära sig hur språket kan fungera på andra sätt och hur problemet kan lösas på ett annat sätt (rekursivt). Och jag menar inte att man ska "lära sig" det sättet och skriva produktionskod. Men elegant var det (om än javasyntaxen gör det lite väl jobbigt).
Jag använder ofta trinära villkorsoperatorn när det blir elegantare. Exempel:

return result != null ? result : 0;

Kontra:

if (result != null) { return result; } else { return 0; }

vilket kan kortas ner till lite nättare (men jag gillar trinära bättre):

if (result != null) return result; return 0; }

Har inget emot ternary, använder det dagligen på jobbet. Det som skar i mina ögon var den långa harangen av ternary

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Säger inte att denna är bättre än iteration, men det är ännu en rekursiv lösning:

public static int maxScore(Player[] players) { return maxScore(players, 0, players.length); } public static int maxScore(Player[] players, int begin, int end) { int numPlayers = end - begin; if (numPlayers < 2) { // If only one player is left, return its score. return players[begin].getScore(); } else { // Split the array in two parts and return the greatest of their maximum values. return Math.max( maxScore(players, begin, end - (numPlayers / 2)), maxScore(players, end - (numPlayers / 2), end) ); } }

Permalänk
Medlem
Skrivet av KurreKula:

Har inget emot ternary, använder det dagligen på jobbet. Det som skar i mina ögon var den långa harangen av ternary

Var medvetet att lägga den på en rad så

return players[i].getScore() > score ?//Highscore? i < players.length-1 ?//Highscore - Last player? getHighscore(players,i+1,players[i].getScore())//Highscore, not last : players[i].getScore() ://Highscore, last i < players.length-1 ?//Not highscore - Last player? getHighscore(players,i+1,score)//Not highscore, not last : score;//Not highscore, last

Lite mer läsvänlig version^^
Hade indenterat kommentarerna men forumet vill inte behålla dem på ett vettigt sätt så-.-

Skrivet av htux:

Mer rekursion <3 det är kärlek

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem
Skrivet av VaNiLLA7:

Usch, förstår inte folk som kodar java. PHP IS THE SHIT!

Sen kan du ju försöka skriva en desktop-applikation eller server-mjukvara i PHP.

Var språk har sina fördelar och nackdelar samt tillämpningsområden.

Så varsågod och ta på dig dumstruten och ställ dig i skamvrån, vanilla.

Visa signatur

"The devil will find work for idle hands to do."