Toon posts:

[JAVA] NullPointerException

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik ben bezig voor project om Tetris in Java te programmeren, maar er gaat iets mis, enkel kan ik zovlug niet ontdekken waar ik het fout heb gedaan

Tijdens het compileren krijg ik geen fouten, maar als ik het wil opstarten dan krijg ik de volgende foutmelding |:( :

java.lang.NullPointerException
at blokje.setCoordinaten(blokje.java:100)
at bord.run(bord.java:192)
at java.lang.Thread.run(Thread.java:536)

Kan iemand mij helpen om dit op te lossen? Ik heb de bestanden even op een FTP gezet:

131.155.241.196 (login en pass) tweakers

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Euh, je zou kunnen beginnen met de code te copy&pasten (alhier) om en nabij de regel 100 van blokje.java


Daar is VAST een object nog null terwijl jij er tegen probeert te praten.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Om precies te zijn. Dat blokje bevat een null waarde.

Verwijderd

Topicstarter
Kun je me helpen uitleggen hoe ik dat dan moet oplossen? want op dat stuk loop ik steeds vast..

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

nee, tenzij je je code hier post

(oh en zet je code tussen [code]..[/code] tags :))

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Je roept een methode aan op een niet bestaand object. Dit kan zijn omdat een variabele die je gebruikt nog niet geintialiseerd is (hij heeft dan de waarde 'null'). Zodra je iets met deze null waarde wilt gaan doen door er een methode op aan te roepen krijg je een NullPointerException.

Je moet uitzoeken welke variabele er op de aangegeven regel (100) de waarde null heeft. Het kan echter ook het resultaat van een functie-aanroep zijn, die dus waarde null oplevert, wat helaas nog weleens voorkomt in de Java libraries als er bijvoorbeeld een operatie niet uitgevoerd kon worden.

Zie vraag 1 hier:
http://java.sun.com/docs/books/tutorial/java/data/QandE/objects-answers.html

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Methode om de coordinaten van het blokje te bepalen
    public void setCoordinaten(int h, int b)
    {
        int vorigeRij = rij;
        int vorigeKolom = kolom;
        rij = h;
        kolom = b;
        gevuldeCellen gc  = getGevuldeCellen();
        
        //het blokje mag geen ander blokje raken dat reeds op het bord staat
        if(tetrisBord.raaktAnderBlokje(gc))
        {
            rij = vorigeRij;
            kolom = vorigeKolom;
        }
        //het blokje mag niet buiten het bord gaan
        else if (tetrisBord.uitSpelBord(gc))
        {
            kolom = vorigeKolom;
        }
    }

"..if(tetrisBord.raaktAnderBlokje(gc)).." is regel 100

  • Jelmer
  • Registratie: Maart 2000
  • Nu online
Waar ik je als eerste op wil wijzen is dat class namen ALTIJD met een hoofdletter beginnen!!! Verder is het ook aan te bevelen om met packages te werken.

Wat je probleem betreft, je zegt dat je aan de constructor van blokje een blokje meegeeft waar je vervolgens je bord weer uitvist, alleen geef je geen blokje mee. Ik zal zometeen ff wat refactoring doen (om snel en goed dingen te kunnen renamen) en dan meteen ff je code wat uitgebreider langs lopen.

Heb je toevallig ook een model gemaakt (bijv in Rational Rose?)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
tetrisBord == null.

Hoe dat komt moet je toch echt zelf uit kunnen zoeken. Waarschijnlijk vergeet je ergens de instantie variabele in te stellen.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 01 juni 2002 16:57 schreef Jelmer Barhorst het volgende:
Je trekt een hoop conclusies en stelt hoge eisen aan een stukje van 10 regels ;)

Voor een simpel beginners projectje met Java is het leuk om een model te hebben, maar imho absoluut geen vereiste om het met Java overweg gaan te leren...

  • Jelmer
  • Registratie: Maart 2000
  • Nu online
Ik noem dit niet echt een beginnersprojectje, voor dit heb je toch al redelijk wat kennis. Kijkende naar mijn eigen opleiding, eerdat wij geacht werder zoiets als dit te maken werd er ook verwacht dat wij nette code opleverden en ook een model maakten!

En bovendien heb ik het hier over de gehele source die, zoals in de startpost te lezen valt, te downloaden is van een ftp site. Dan hebben we het toevallig wel over 1329 regels source (705 echte code, maar ok) en 17 classen.

oh en bovendien, je kunt niet vroeggenoeg beginnen met het goed verzorgen van code! Eenmaal jezelf een (zelf verzonnen)standaard aangeleerd is het heel lastig om een andere standaard aan te leren, maar dat zal ik niemand hoeven te vertellen denk ik :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 01 juni 2002 17:14 schreef Jelmer Barhorst het volgende:
Ik noem dit niet echt een beginnersprojectje
Mja, mijn beginnersprojectje was de applet in mijn homedir (klik huisje als je die wilt zien), ook dik 3000 regels code ofzo...

Maar ga me niet naar een model vragen en ook niet naar gedocumenteerde code ;)

Verwijderd

Topicstarter
Sorry, ik heb nog geen model kunnen maken in Rational Rose..

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zaterdag 01 juni 2002 17:14 schreef Jelmer Barhorst het volgende:
Kijkende naar mijn eigen opleiding, eerdat wij geacht werder zoiets als dit te maken werd er ook verwacht dat wij nette code opleverden en ook een model maakten!
nogal logisch, dat is om het je gelijk goed aan te gaan leren. Ze laten je natuurlijk niet eerst wat aanrommelen om vervolgens te zeggen hoe je het wel had moeten doen. Bovendien zorgt een goed model eerder voor betere communicatie met andere projectleden dan dat je er zelf veel profijt aan hebt (heb je natuurlijk wel, maar in mindere mate). 't Is misschien leuk om voor je eigen Tetris spelletje een model te maken, maar absoluut niet nodig imho

.ot: ik ben nu bezig met een eigen 3d engine in C++, en daar heb ik ook geen model van. Sommigen zouden zeggen dat dat dom is... misschien, maar ik kan er prima mee uit de voeten. Alle info die ik nodig heb zit in mijn hoofd. Natuurlijk gooi ik soms wat klassen om omdat ik er toch niet tevreden mee ben, of omdat het gewoon niet goed uitkomt, maar dat zou ik met een model toch ook gedaan hebben, omdat je dan niet nadenkt hoe de werkelijke implementatie in elkaar komt te zitten

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Jelmer
  • Registratie: Maart 2000
  • Nu online
Sorry oysin .oisyn (sowwy :+), maar als je niet begint om met dit soort projectjes te modeleren dan zul je het nooit doen. Ik weet niet hoe dat bij jou was toen je stage liep, maar mijn stage docent (Van Doesburg) vertelde mij wel dat ik een van de weinigen was die zo uitgebreid mn hele stageopdracht (ondanks dat ik er in mn eentje er aan werk) modeleer. Zelfs nu nog zijn er nl een hoop mensen bij mij in de klas die nog nooit met rational gewerkt hebben en dat kan soms knap lastig zijn bij projecten. Nu is het wel zo dat je eigenlijk aan een iemand die kan ummellen wel genoeg (wat zeg ik, meer mensen kan bij kleinschalige projecten alleen maar lastig zijn), maar toch.

Dus ook die 3d engine van je. Stel ik zou je gaan helpen met dat project omdat je er zelf niet genoeg tijd aan kan besteden of van bepaalde zaken geen kennis hebt. In dat geval zou jij mij alles moeten vertellen hoe het werkt en dan nog zou het voor mij erg lastig zijn. Ook is het erg handig als ik bijv een nieuw onderdeel heb uitgedacht en jou dat op die manier kan uitleggen zonder dat er ook nog maar 1 char aan code is!
Bovendien is het voor iemand die jou engine gaat gebruiken ook erg fijn om een (deel)model te kunnen gebruiken om zo snel inzicht in de engine te kunnen krijgen.

Verder vind ik het ook erg handig om met een tool als Rational te werken, omdat je direct vanuit je model je codeskelet kunt genereren.

Kortom, maak altijd een model hoe klein je projectje ook is. Na verloop van tijd weet je niet meer hoe alles in elkaar zit en zul je dat weer moeten uitzoeken. Een model kan je die tijdrovende klus besparen. Ook is het een goede houvast om je programma te maken.


Nog even naar de topicstartster: in de constructor van class Bord zul je eerst actiefBlokje een waarde moeten geven, aangezien hier de rest van de blokjes van afgeleid zullen worden. Dit betekend dat er een constructor in Blokje moet komen waarmee je de variabelen ervan kunt setten.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zaterdag 01 juni 2002 17:40 schreef Jelmer Barhorst het volgende:
Sorry oysin
het is oisyn ;)
maar als je niet begint om met dit soort projectjes te modeleren dan zul je het nooit doen. Ik weet niet hoe dat bij jou was toen je stage liep, maar mijn stage docent (Van Doesburg) vertelde mij wel dat ik een van de weinigen was die zo uitgebreid mn hele stageopdracht (ondanks dat ik er in mn eentje er aan werk) modeleer.
ik had Adrie ook als stagedocent, en nee ik heb niet gemodelleert. Kwam voornamelijk ook omdat ik niet echt een groot project heb gedaan, maar meer allemaal kleintjes bij elkaar. Bovendien moet je die modelleer programma's ook maar net tot je beschikking hebben op je werk/stage (ik liep bij een bedrijf waar maar 3 man werkte... ze maakten voornamelijk 3d animaties. Die gaan echt geen 4000 dollar uitgeven voor een modelleerprogramma omdat een stagiair dat toevallig ooit eens nodig heeft)
Dus ook die 3d engine van je. Stel ik zou je gaan helpen met dat project omdat je er zelf niet genoeg tijd aan kan besteden of van bepaalde zaken geen kennis hebt.
And that's where you're wrong :) Begrijp me niet verkeerd, maar ik heb van te voren heel veel uitgedacht, en ik had ook besloten om alles alleen te doen. De kans dat jij (of iemand anders) mij zult gaan helpen is vrijwel nihil.
Ook is het erg handig als ik bijv een nieuw onderdeel heb uitgedacht en jou dat op die manier kan uitleggen zonder dat er ook nog maar 1 char aan code is!
Ik ben niet geinteresseert in hoe jouw klassen in zo'n geval werken (ja natuurlijk wel als ik ze zou moeten gebruiken), maar wel in de achterliggende algoritmen en dat soort dingen. En die zijn niet echt uit te leggen in UML diagrammetjes
Bovendien is het voor iemand die jou engine gaat gebruiken ook erg fijn om een (deel)model te kunnen gebruiken om zo snel inzicht in de engine te kunnen krijgen.
zeker, wel eens gehoord van reverse engineering? Een model bijhouden kost mij gewoon teveel tijd tov de code die ik uit mijn hoofd klop. Als een onderdeel af is gooi ik doxygen eroverheen en dan heb ik een mooie gedocumenteerde htmlletjes over mijn code en klassen
Verder vind ik het ook erg handig om met een tool als Rational te werken, omdat je direct vanuit je model je codeskelet kunt genereren.
Mwa, daar heb ik dus slechte ervaringen mee. Genereer je code, en vervolgens klopt het niet naar jouw maatstaven en coding styles, zodat je alles weer om gaat gooien. Maar dat is waarschijnlijk een kwestie van ergens wat instellingen veranderen :)

Maar ik denk dat de reden waarom ik niet modelleer voor mijn 3d engine nog niet helemaal is overgekomen, namelijk omdat het heel erg implementatieafhankelijk is. Abstractie is wel mooi enzo, maar absoluut niet nuttig in de core van een 3d engine, waar alles om snelheid draait. Abstractie zorgt voor omwegen, dingen die je absoluut niet moet hebben in zo'n geval. Dan kan ik wel van te voren gaan bedenken hoe een klasse eruit komt te zien, maar tijdens de implementatie komt iets bovendrijven waar ik totaal geen rekening mee heb gehouden, waardoor je je hele model weer kunt omgooien. Dan moet je dat dus ook weer bij gaan houden in je diagrammetjes, wat weer extra tijd kost. Daarom doe ik het in die gevallen achteraf

En ik ben absoluut niet anti-modelleren, ik vind het in sommige gevallen gewoon onzin

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Jelmer
  • Registratie: Maart 2000
  • Nu online
Op zaterdag 01 juni 2002 18:03 schreef .oisyn het volgende:

[..]

het is oisyn ;)
Ik had het al gezien jah :+
[..]

ik had Adrie ook als stagedocent, en nee ik heb niet gemodelleert. Kwam voornamelijk ook omdat ik niet echt een groot project heb gedaan, maar meer allemaal kleintjes bij elkaar. Bovendien moet je die modelleer programma's ook maar net tot je beschikking hebben op je werk/stage (ik liep bij een bedrijf waar maar 3 man werkte... ze maakten voornamelijk 3d animaties. Die gaan echt geen 4000 dollar uitgeven voor een modelleerprogramma omdat een stagiair dat toevallig ooit eens nodig heeft)
Ja ok, maar je hoeft niet persee met Rational te werken. Als ik me niet vergis heeft ook VisualStudio 6 een (beperkte) modelleringstool aan boord. Het zou me niets verbazen als die in .NET verder uitgebouwd is.
[..]

Ik ben niet geinteresseert in hoe jouw klassen in zo'n geval werken (ja natuurlijk wel als ik ze zou moeten gebruiken), maar wel in de achterliggende algoritmen en dat soort dingen. En die zijn niet echt uit te leggen in UML diagrammetjes
Inderdaad, formules zul je niet met UML kunnen uitleggen (immers een formule formuleert een wiskundige berekening en doordat er een standaard notatie voor is zal iedere wiskundige hem kunnen lezen), maar het is wel zo dat als jij je project een halfjaar laat liggen je van bepaalde zaken misschien niet meer precies weet waar ze thuis horen. Ik zelf heb dit nu al tweemaal meegemaakt en ik kan je vertellen dat het niet motiverend werkt..
[..]

zeker, wel eens gehoord van reverse engineering? Een model bijhouden kost mij gewoon teveel tijd tov de code die ik uit mijn hoofd klop. Als een onderdeel af is gooi ik doxygen eroverheen en dan heb ik een mooie gedocumenteerde htmlletjes over mijn code en klassen
Reverse enigneering, ben heel blij dat het bestaat. Gebruik het zelf ook als ik even niet heb kunnen modelleren, maar voornamelijk als ik van iemand code krijg/gebruik en diegene heeft zelf geen model. Verder vind ik het wel zo dat het niet zo mag zijn dat je pas achteraf je model laat maken voor je hele project, want dan kun je het net zo goed niet doen.

hmm doxygen... ken ik niet, zal freshmeat eens raadplegen.
[..]

Mwa, daar heb ik dus slechte ervaringen mee. Genereer je code, en vervolgens klopt het niet naar jouw maatstaven en coding styles, zodat je alles weer om gaat gooien. Maar dat is waarschijnlijk een kwestie van ergens wat instellingen veranderen :)
Jij hebt waarschijnlijk met Rose 98 moeten werken... En ja, die zuigt behoorlijk.. Ik gebruik momenteel Rose 2002 J Edition en die werkt perfect. Hij heeft tegenwoordig zelfs standaard de openings accolade op een nieuwe regel staan :) Verder kun je ook nog eens opgeven dat membervariablen bijv m_ of _ voor de naam in de code moeten krijgen.
Echt, de ondersteuning van java is perfect tegenwoordig (mag ook wel, 4 jaar later :))
Maar ik denk dat de reden waarom ik niet modelleer voor mijn 3d engine nog niet helemaal is overgekomen, namelijk omdat het heel erg implementatieafhankelijk is. Abstractie is wel mooi enzo, maar absoluut niet nuttig in de core van een 3d engine, waar alles om snelheid draait. Abstractie zorgt voor omwegen, dingen die je absoluut niet moet hebben in zo'n geval. Dan kan ik wel van te voren gaan bedenken hoe een klasse eruit komt te zien, maar tijdens de implementatie komt iets bovendrijven waar ik totaal geen rekening mee heb gehouden, waardoor je je hele model weer kunt omgooien. Dan moet je dat dus ook weer bij gaan houden in je diagrammetjes, wat weer extra tijd kost. Daarom doe ik het in die gevallen achteraf
Nee, maar je kunt wel afhankelijkheden en relaties weergeven van classen of onderdelen. Abstractie gebruik ik zelf ook (nog) relatief weinig. Verder is het ook nog zo dat voor verschillende projecten het regelmatig is gebeurd dat het model geheel of deels op de schop is gegaan, omdat sommige dingen dat beter konden functioneren.
En ik ben absoluut niet anti-modelleren, ik vind het in sommige gevallen gewoon onzin
Oh dat ben ik zeker met je eens, zeker als je maar een klein aantal (2 á 3) classen hebt.

Trouwens Sarah, ik zag dat je JButton's gebruikt voor je menu's. Ik weet niet of je daar nog een reden voor hebt, maar swing heeft daar speciale JMenuItem's voor.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zaterdag 01 juni 2002 18:41 schreef Jelmer Barhorst het volgende:

Ja ok, maar je hoeft niet persee met Rational te werken. Als ik me niet vergis heeft ook VisualStudio 6 een (beperkte) modelleringstool aan boord. Het zou me niets verbazen als die in .NET verder uitgebouwd is.
ja klopt, het zit idd bij MS Visual Studio Enterprise Edition (waar je ook rond de 4000 dollar voor betaalt ofzo ;)). Dat is trouwens een door Rational aangepaste versie van Rose :)
maar het is wel zo dat als jij je project een halfjaar laat liggen je van bepaalde zaken misschien niet meer precies weet waar ze thuis horen. Ik zelf heb dit nu al tweemaal meegemaakt en ik kan je vertellen dat het niet motiverend werkt..
Yup, dat ik heb ook al regelmatig meegemaakt. Vandaar dat ik er meestal doxygen eroverheen gooi (voor uitleg zie onder)
Reverse enigneering, ben heel blij dat het bestaat. Gebruik het zelf ook als ik even niet heb kunnen modelleren, maar voornamelijk als ik van iemand code krijg/gebruik en diegene heeft zelf geen model. Verder vind ik het wel zo dat het niet zo mag zijn dat je pas achteraf je model laat maken voor je hele project, want dan kun je het net zo goed niet doen.
Nou je kunt het in zoverre doen dat je idd later nog kunt kijken hoe het ook alweer ging :) Maar voor grotere projecten en vooral met meerdere mensen is het natuurlijk te laat als je het achteraf doet, daar ben ik het met je eens
hmm doxygen... ken ik niet, zal freshmeat eens raadplegen.
vergelijkbaar met Javadoc, maar werkt ook met C++ (waar ik het meest in werk), en ondersteund ook heel veel output formaten (waaronder htmlhelp, het helpsysteem waarmee de MSDN ook is gemaakt. Hier ben ik werkelijk verliefd op O+ ;) De javadoc htmlletjes zijn niet echt handig omdat je niet echt goed kunt zoeken enzo)
Jij hebt waarschijnlijk met Rose 98 moeten werken... En ja, die zuigt behoorlijk.. Ik gebruik momenteel Rose 2002 J Edition en die werkt perfect. Hij heeft tegenwoordig zelfs standaard de openings accolade op een nieuwe regel staan :) Verder kun je ook nog eens opgeven dat membervariablen bijv m_ of _ voor de naam in de code moeten krijgen.
Echt, de ondersteuning van java is perfect tegenwoordig (mag ook wel, 4 jaar later :))
ja ik heb idd met '98 moeten werken... toevallig heb ik afgelopen vrijdag even gekeken naar diegene die er nu op staat, dat zag er idd een stuk beter uit dan de vorige (heb er nog niet echt intensief mee gewerkt though)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Jelmer
  • Registratie: Maart 2000
  • Nu online
Op zaterdag 01 juni 2002 18:52 schreef .oisyn het volgende:

[..]

ja klopt, het zit idd bij MS Visual Studio Enterprise Edition (waar je ook rond de 4000 dollar voor betaalt ofzo ;)). Dat is trouwens een door Rational aangepaste versie van Rose :)
Dat wist ik niet :) Werk ook nooit met VS... Maar mocht je dan als bedrijf toch al met MSVSEE werken, heb je dus toch een modellerings tool. Maar ja, wat is voor een softwarebedrijf nou een investering van $4000? Bedoel, als je daardoor betere (in de zin van, goed onderhoudbaar ed) software (sneller) ontwikkeld, zal zo'n pakket snel terug verdient zijn.
[..]

vergelijkbaar met Javadoc, maar werkt ook met C++ (waar ik het meest in werk), en ondersteund ook heel veel output formaten (waaronder htmlhelp, het helpsysteem waarmee de MSDN ook is gemaakt. Hier ben ik werkelijk verliefd op O+ ;) De javadoc htmlletjes zijn niet echt handig omdat je niet echt goed kunt zoeken enzo)
Hmm zal er zeker eens naar kijken, klinkt erg aantrekkelijk. :)

Verwijderd

Topicstarter
Ik had het eerst met JMenuItems gemaakt, maar ik wist niet hoe ik dan die actie eraan moest koppelen, vandaar dus de JButtons..

Uit die NullPointerException geraak ik nog helemaal niet uit.. :'(, Ik snap nu wel eindelijk wat het is, maar ik weet gewoon niet hoe ik dat moet oplossen..

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

je moet natuurlijk het tetrisBord in de blokjes naar het goede spelBord laten wijzen. Dat kun je bereiken door het spelBord als parameter mee te geven met de constructor van de blokjes

mwa, bij aanmaak van de blokjes moet je gelijk vertellen wat het spelBord is.

Ik heb eens naar je code gekeken, en ik zie dat je bij aanmaak van een nieuw blokje een ander blokje moet meegeven. Dat blokje wat je meegeeft moet natuurlijk al aangemaakt zijn, maar om die aan te maken moet je dus ook een al aangemaakt blokje meegeven (dus je zult het eerste blokje nooit aan kunnen maken)

Kun je het stukje code eens posten waarin je een nieuw blokje aanmaakt?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    blokje actiefBlokje = null;


    public blokje randomBlokje()
    {
        int aantalBlokjes=Blokjes.size();
        int nummerBlokje=(int)(Math.random()*aantalBlokjes);
        blokje nieuwBlokje = (blokje)(Blokjes.elementAt(nummerBlokje));
        return nieuwBlokje;
    }
    
    public void vulBlokjes()
    {
        Blokjes.addElement(new groenBlokje(actiefBlokje));
        Blokjes.addElement(new rozeBlokje(actiefBlokje));
        Blokjes.addElement(new roodBlokje(actiefBlokje));
        Blokjes.addElement(new blauwBlokje(actiefBlokje));
        Blokjes.addElement(new geelBlokje(actiefBlokje));
        Blokjes.addElement(new grijsBlokje(actiefBlokje));
        Blokjes.addElement(new oranjeBlokje(actiefBlokje));
    }

De eerste regel, is degene die boven de constructor staat in de klasse bord

De 2 methoden eronder komen ook uit de klasse bord, de eerste is om een random blokje uit de vector te halen. ( de vector vul ik dan in de 2e methode)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

ah, maar actiefBlokje is null
dan maak je een nieuw blokje, waarbij in de constructor staat:
code:
1
2
3
4
5
6
7
8
9
    public blokje(blokje b)
    {
        if(b!=null)
        {
            this.tetrisBord = b.getBord();
            setCoordinaten(b.getRij(), b.getKolom());
            setDraaiing(b.getDraaiing());
          }
    }

maw, het tetrisBord wordt alleen gezet als actiefBlokje ongelijk is aan null
Wat je beter kunt doen is een aparte parameter aanmaken, namelijk een spelBord

dus als constructor van blokje:
code:
1
2
3
4
5
public blokje (blokje b, spelBord bord)
{
    ...
    tetrisBord = bord;
}

en bij aanmaak van blokje natuurlijk je huidige spelBord meegeven

(overigens kun je, zoals Jelmer al aangaf, beter al je klassen met een Hoofdletter laten beginnen, dan kun je ze makkelijker onderscheiden van functies en variabelen

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • whoami
  • Registratie: December 2000
  • Laatst online: 12:16
Op zaterdag 01 juni 2002 22:11 schreef Sarahtje het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    blokje actiefBlokje = null;


    public blokje randomBlokje()
    {
        int aantalBlokjes=Blokjes.size();
        int nummerBlokje=(int)(Math.random()*aantalBlokjes);
        blokje nieuwBlokje = (blokje)(Blokjes.elementAt(nummerBlokje));
        return nieuwBlokje;
    }
    
    public void vulBlokjes()
    {
        Blokjes.addElement(new groenBlokje(actiefBlokje));
        Blokjes.addElement(new rozeBlokje(actiefBlokje));
        Blokjes.addElement(new roodBlokje(actiefBlokje));
        Blokjes.addElement(new blauwBlokje(actiefBlokje));
        Blokjes.addElement(new geelBlokje(actiefBlokje));
        Blokjes.addElement(new grijsBlokje(actiefBlokje));
        Blokjes.addElement(new oranjeBlokje(actiefBlokje));
    }

De eerste regel, is degene die boven de constructor staat in de klasse bord

De 2 methoden eronder komen ook uit de klasse bord, de eerste is om een random blokje uit de vector te halen. ( de vector vul ik dan in de 2e methode)
Meiske toch. Ik zie dat je een niet-gealloceerd stuk geheugen wilt aanspreken. Je weet toch dat niet kan?? Very basic hoor...

Ik zie dat je van Belgie bent, waar studeer je?

https://fgheysels.github.io/


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 02 juni 2002 01:52 schreef whoami het volgende:
Meiske toch. Ik zie dat je een niet-gealloceerd stuk geheugen wilt aanspreken. Je weet toch dat niet kan?? Very basic hoor...
Wat je collega .oisyn allang gezegd had ;)
Ik zie dat je van Belgie bent, waar studeer je?
Ah, dat was de reden van je reactie :+

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zondag 02 juni 2002 02:38 schreef ACM het volgende:

Ah, dat was de reden van je reactie :+
lol :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • whoami
  • Registratie: December 2000
  • Laatst online: 12:16
[off-topic]
.oisyn is Nederlander, en Belgen begrijpen de Nederlanders niet altijd even goed. Vandaar dat ik het nog eens herhaal voor de topicstarter. :+
[/off-topic]

https://fgheysels.github.io/


Verwijderd

Topicstarter
offtopic:
Tja ik kom dus uit België, maar je moet me niets vertellen over het niet begrijpen van de Nederlanders, mn vriendje in nl ook Nederlander en wij begrijpen elkaar heel goed :+

Ik zit trouwens op kot ( ik woon op kamers voor de Nederlanders :P) in Leuven

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

[ik-voel-me-alleen-modus]
oh heb je al een vriendje... :{
tja dan help ik je niet meer hoor :+ ;)
[/ik-voel-me-alleen-modus]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Das heel gemeen :'(

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

was grappie, nie boos worduh :*

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

en als ik vraag, dan krijg ik niet zoveel hulp! ;)
Pagina: 1