02. februar 2008 - 12:41Der er
5 kommentarer og 1 løsning
Genkend random billede
Jeg arbejde på et lille program til smartphones som viser et billede og så skal man gætte om det er sandt eller falsk. Men jeg kan ikke få den til at genkende billedet:
//Pics = resource fil
//Her laves Random: TE private Random TE = new Random();
//her udtrækkes nummeret: rt public int rt() { int number = TE.Next(1, 4); return number; }
//Her angives hvilket billede som skal vises i henhold til nummer: rt public Bitmap billede() { Bitmap thePic = new Bitmap(Pics.img1);
Jeg kan da lige prøve at forklare hvad han nok mente.
"if (rt() == 1) { thePic = Pics.img2; }
if (rt() == 2) { thePic = Pics.img3; } " I den kode kalder du rt() flere gange. For hver gang stiller du spørgsmålet "Er resultatet af at køre metoden 'rt' lig det her tal?", og derfor vil den køre den på ny hver gang, og så har du forvirringen.
Idéen med en switch, er at så kalder du kun metoden én gang, uden at skulle definere en lokal variabel først.
Derudover, hvor er det så du henter dine billeder fra? Det ligner nemlig det er et statisk kald, hvilket ikke umiddelbart virker smart, især pga. du ikke må have et billede i mere end én imagebox af gangen.
Men koden skulle nok mere se sådan her ud: public Bitmap billede() { Bitmap thePic = new Bitmap(); switch(TE.Next(1, 4)) { case 1: thePic = Pics.img1;break; case 2: thePic = Pics.img2;break; default: thePic = Pics.img3;break; } return thePic }
Det der så er mit problem med resten af din kode er, at du forsøger at finde et svar på et spørgsmål med ja/nej, selvom der er 3 billeder ifølge din kode. Jeg ville jo gøre sådan: if(pictureBox1.Image == Pics.img1) label2.Text = "Svaret er: Billede 1"; else if(pictureBox1.Image == Pics.img2) label2.Text = "Svaret er: Billede 2"; else label2.Text = "Svaret er: Billede 3";
Håber det gav lidt mening? Igen, er ikke nemt at debugge din kode, når du ikke fortæller hvor du har billederne fra, og hvilket svar du leder efter i din test til sidst. :)
Du fik svar på dit spørgsmål så? Det var godt at høre, men ja, jeg forklarede sådan set bare en anden løsning nærmere, så det er op til hmortensen om han vil have points.. :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.