Archief - [PROG][java] check:SimonSays

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

schop aars

Legacy Member
http://users.pandora.be/cautie/SimonSays.rar

werkende versie van SimonSays

ik ga ze wel nog uitbreiden zodat scores bijgehouden worden en dan in een bestand met topscores komen.
en ook met een statusvenster zodat ge ziet hoeveel kleuren van de hoeveel ge al hebt ingedrukt.
en als alles af is word het gejard.

tis geen klikspel omdat ik nie goed wist om die ovalen te berekenen.
mss dat die functie er later ook in komt.
en mss ook met geluidjes maar dit zijn maar een paar ideetjes die ik nog nie zeker ben of ze er gaan in komen.
de topscores en da statusvenster die gaan der zeker in komen.

en bij about staat Acku bij credits omdat em mij hier ewa geholpen heeft met sommige problemen.

killgore

Legacy Member
wast nu zoveel moeite om een gecompileerde versie online te zetten :p

edit: welke ide gebruikte gij?

der zit nl. een immense bug in uw spel: em vreet hier na een tijke 100% cpu :) en tis ook nie normaal da ge code met 10 warnings in releaset :p.

edit2: daarnaast hebde vreselijk onduidelijke code, wie noemt er zen klassevariabelen nu a en i :wtf:

edit3, wtf doet dit?

Code:
while(a<i)
			{
				waitForNextInput();
				if(gedrukt)
				{
					checkInput();
					gedrukt=false;
				}
				else
				{
					waitForNextInput();
				}
						
			}
ik snap niet: a) waarom ge 2 waitForNextInput()'s hebt in die while, 1 zou genoeg moeten zijn denk ik :s.
En waarom die if(gedrukt) daar staat, na 1 keer dat uitgevoerd hebben komt hij daar tochnooit terug, want gedrukt is false en kzie da nergens op true gezet worden :s.

Krueger

Legacy Member
Als eerste creatie valt het best wel mee, ik ben geen logische fouten tegengekomen (buiten die type in de about dan).

Klikken op die ovalen lijkt me niet zo nodig, maar het is natuurlijk wel een leuke extra.

Maar ik denk dat normaal Simon Says net iets anders werkt: als de gebruiken een sequentie heeft ingevoerd, toon jij enkel hetgeen de gebruiker de volgende keer extra moet ingeven. Normaal wordt alles herhaald, maar is het altijd eentje langer. (ik hoop dat je begrijpt wat ik bedoel, het is niet zo eenvoudig uit te leggen)

Het zou ook leuk zijn als je als gebruiker een invoer doet, je deze onmiddellijk te zien krijgt, en niet enkel op het einde als de sequentie volledig juist is ingevoerd. (dus bij eenmaal op een knop duwen onmiddellijk een knop doen oplichten)
En geluidjes zouden uiteraard ook leuk zijn (met een andere toonhoogte per knop)

schop aars

Legacy Member
killgore zei:
wast nu zoveel moeite om een gecompileerde versie online te zetten :p

edit: welke ide gebruikte gij?

der zit nl. een immense bug in uw spel: em vreet hier na een tijke 100% cpu :) en tis ook nie normaal da ge code met 10 warnings in releaset :p.

ik gebruik JCreator LE
in de LE versie zit genen debugger dus ik kan da nie zo uitvoerig testen als dannek da zou willen testen.

Krueger

Legacy Member
Het is hier ook wel zo dat dat spel 100% CPU vreet, wat wel een beetje veel is voor wat het maar is.

schop aars

Legacy Member
Krueger zei:
Als eerste creatie valt het best wel mee, ik ben geen logische fouten tegengekomen (buiten die type in de about dan).

Klikken op die ovalen lijkt me niet zo nodig, maar het is natuurlijk wel een leuke extra.

Maar ik denk dat normaal Simon Says net iets anders werkt: als de gebruiken een sequentie heeft ingevoerd, toon jij enkel hetgeen de gebruiker de volgende keer extra moet ingeven. Normaal wordt alles herhaald, maar is het altijd eentje langer. (ik hoop dat je begrijpt wat ik bedoel, het is niet zo eenvoudig uit te leggen)

Het zou ook leuk zijn als je als gebruiker een invoer doet, je deze onmiddellijk te zien krijgt, en niet enkel op het einde als de sequentie volledig juist is ingevoerd. (dus bij eenmaal op een knop duwen onmiddellijk een knop doen oplichten)
En geluidjes zouden uiteraard ook leuk zijn (met een andere toonhoogte per knop)

ik begrijp wa ge bedoeld.
ik dacht dat het iedere keer volledig herhaald werd.
kzal da nog is opzoeken en als ge gelijk hebt dan zal ik da aanpassen.

killgore

Legacy Member
schop aars zei:
ik begrijp wa ge bedoeld.
ik dacht dat het iedere keer volledig herhaald werd.
kzal da nog is opzoeken en als ge gelijk hebt dan zal ik da aanpassen.
wilde aub men 3e edit eens verklaren, want ik denk dat daar de 100% cpu fout in zit (oneindige lus e.d. :p)

wel leuk, uw exame java leren adhv mensen te helpen :p.

MilM

Legacy Member
schop aars zei:
tis geen klikspel omdat ik nie goed wist om die ovalen te berekenen.
mss dat die functie er later ook in komt.

Je hebt uw ovaal getekend.

Je hebt dan:
-) uw middelpunt, met coordinaat (x0 , y0)
-) uw horizaontale as -> noem da a
-) uw verticale as -> noem da b

om te checken of er een punt inligt, gebruik je volgende formule

((x - x0) / a)^2 + ((y - y0) / b)^2

Indien het kleiner is dan 1 bevindt het zich in de ellips, indien gelijk aan 1 op de lijn/rand, indien groter erbuiten.

Mouse pressed/released/clicked kunt ge voor berekening (x,y) gebruiken.

schop aars

Legacy Member
Code:
while(a<i)
			{
				waitForNextInput();
				if(gedrukt)
				{
					checkInput();
					gedrukt=false;
				}
				else
				{
					waitForNextInput();
				}
						
			}
die lus blijft idd herhalen tot als er iets ingevoerd is en tot als a gelijk is aan i
da kan een verklaring zijn voor die 100% cpu

maar kwist nie direct een andere manier om te controleren of er als iets ingeput was en kheb dit dan maar geprobeerd en da werkte.

als ge daar een betere manier voor hebt dan wil ik die der inzetten.

edit: die gedrukt word op true gezet als ge op ne knop drukt.
in klasse SimonSays dus word azo een methode aangeroepen die gedrukt op true zet.

edit2: kzou idd een andere manier dan die lus moeten hebben want nu is da spel voornamelijk bezig me die lus uit te voeren

Krueger

Legacy Member
Ik heb nog niet echt naar uw code gekeken, maar net zoals er mouselisteners zijn, zullen er ook wel keylisteners zijn zeker? (nog nooit zelf gebruikt) Als je die gebruikt moet je toch geen oneindige lus gebruiken?

schop aars

Legacy Member
mja ik gebruik ook keylisteners.
maar kmoet mijn code nog veel aanpassen ze.
tees is geen definitieve versie.
tees is alleen maar is om te zien of da alles der al ok uitziet want ik ben geen objectieve waarnemer aangezien ik er al veel werk in gestoken heb.
dus voor mij is da goed maar kwou is weten wat iemand anders ervan dacht.

schop aars

Legacy Member
MilM zei:
Je hebt uw ovaal getekend.

Je hebt dan:
-) uw middelpunt, met coordinaat (x0 , y0)
-) uw horizaontale as -> noem da a
-) uw verticale as -> noem da b

om te checken of er een punt inligt, gebruik je volgende formule

((x - x0) / a)^2 + ((y - y0) / b)^2

Indien het kleiner is dan 1 bevindt het zich in de ellips, indien gelijk aan 1 op de lijn/rand, indien groter erbuiten.

Mouse pressed/released/clicked kunt ge voor berekening (x,y) gebruiken.

merci mss dat ik dit gebruik maar dan moet ik met photoshop ergens de middelpunten van mijn ovalen terugzien te vinden.
anyhow al bedankt

killgore

Legacy Member
schop aars zei:
merci mss dat ik dit gebruik maar dan moet ik met photoshop ergens de middelpunten van mijn ovalen terugzien te vinden.
anyhow al bedankt
huh :p?

De breedte en hoogte van uw ovaal kunde makkelijk vinden he :) (die a en b dus) veronderstel ik?

Aangezien ge in uw app zelf de linker bovenhoek ingeeft wordt uw middelpunt coördinaat gewoon gegeven door: x+a/2 en y+b/2 met x,y de coörd van uw linker boven hoek, a de grote as (lengte van de omvattende rechthoek), b de kleine as (hoogte van de omvattende rechthoek).
Basic mathematics :), hebde wel nodig als ge gamepje wilt maken ze :p.

.Acku.

Legacy Member
Zijn probleem is dat de ovalen geplaatst worden via ImageIcons, wat zaken iets moeilijker maakt maar niet onoverkomelijk.
KeyListener gebruikt ie al, enkel op een ietwat vreemde wijze

schop aars

Legacy Member
mja maar zoals ik al zei der gaat nog vanalles aan veranderen ze
tis nog belange nie de definitieve versie

.Acku.

Legacy Member
Heb uw code wat aangepast zodat de loop eruit is, maar dan toont ie de animatie van knoppen niet als je een toetst drukt (omdat die dan gebeurt in de thread die inslaapt, ipv een andere).

Je hebt in elk geval teveel threads en een erg vreemde structuur. Is heel moeilijk te begrijpen wat de code allemaal moet doen. Heb jammer genoeg nu gene tijd dat allemaal overhoop te gooien.

Ik zou gewoon een thread opzetten die een paar frame per seconde tekent, en dan timers die een knop highlighten door hun images even te veranderen.

Voor de rest met een event model werken zoals keyEvent, die slechts activeert als je er effectief een drukt, aangevuld met een MouseListener die exact dezelfde routines oproept (maar op een andere manier controleert wat er gedrukt is)

Dat is bijzonder eenvoudig zo, misschien klaar in minder dan een uur. Spijtig genoeg moet je zowat heel je code daarvoor weg smijten, dus dat helpt je weinig.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan