October 20, 2001
Jag skulle behöva lite hjälp med att konstruera en pictureBox med 9 rutor som är beroende på FALSE eller TRUE.
Om värdet är TRUE så ska det slumpa ut en bild som jag har delat upp i 9 bitar i nån av dom 9 rutorna.
Om det är FALSE så ska det bli en svart ruta.
Problemet som jag ser det kan bli att få upp samma bild i nån annan ruta. Poängen är att när bilden har placerats ut så ska det bort ur räkningen så att den inte kan komma upp igen.
Om någon har tips eller eventuelt en kod som jag skulle kunna utvärdera vore jag tacksam.
Hela projektet går ut på att göra en barn miniräknare med 9 försök och svarar dom rätt så ska en bild komma upp och förhoppningsviss 8 bilder till om dom klarar det
[ Detta Inlägg ändrades av: Vecna den 2001-10-27 16:55 ]
October 10, 2001
Gör en matris på de 9 rutorna och kolla först igenom den innan du sätter ut nästa bild. Om bilden redan finns i en annan ruta så tar du en ny bild, kollar om den redan finns och upprepar proceduren tills du har hittat en bild som inte redan finns i någon av rutorna.
Jag tror att det är det enklaste sättet att göra det på. Hoppas det hjälpte, annars får jag komma på något bättre.
October 10, 2001
Förresten, kom på en sak när jag läste ditt inlägg en andra gång. Du behöver väl inte slumpa ut rutan. Poängen är väl att de nio bilderna tillsammans gör en stor bild och då måste de ju ha en bestämd placering i kvadraten (jag antog att de 9 rutorna ska bilda en kvadrat), alltså behöver du bara slumpa fram rutnumret i kvadraten och då blir det enklare att kontrollera bilderna. Då beehöver du ju bara ha en ritad-variabel (förslagsvis boolean) för varje ruta. Om rutan redan är ritad, ta en annan ruta. Fast jag kan ju ha missförstått programmet, vore bra med lite kod.
_________________
Hade jag haft en bra dator skulle jag ha skrutit om den här.
[ Detta Inlägg ändrades av: Quaero den 2001-10-27 18:05 ]
[ Detta Inlägg ändrades av: Quaero den 2001-10-27 18:06 ]
June 18, 2001
Gör som så att du associerar varje delbild med rutan den ska ligga i. Alltså längst uppe till vänster kan vara 0 och längst ned till höger kan vara 8. Då lägger du upp varje delbild i t.ex en array i den matchande cellen (bilden längst uppe till vänster i cell 0). Sedan slumpar du bara fram ett värde från 0 till 8 och ritar den bilden på samma position som siffran du fick fram. Efter den är ritad kan du sätta cellen till noll eller ngt. Då behöver du bara kolla om det finns någon bild i cellen innan du ritar nästa gång.
Hm...comprende?
October 20, 2001
Här ska det inte ritas....hehe
Det finns en bild som jag redan har och har delat upp i 9 stycken bitar som ska placeras ut och bli en fin barnbild, ska vara olika bilder beroende på dom 3 svårighetsgraderna jag har.
Dom 9 rutorna är i en array redan. Det kruxiga är ju det där med att om första svaret blir rätt då kommer bild (1 till 9) att slumpas ut men samtidigt ska ju bild 1 vara associerat med ruta 1. Annars blir det ju en mongo bild tillslut
Att kolla tex. om den har slumpat ut bild 5 redan i ruta 5 efter första svaret så vill jag ju inte ha ut bild nr.5 igen....min poäng är att det blir ju en jäkla massa IF tillslut för att kolla ALLA bilder.
IF bild1=ruta1 typ
THEN bild2=ruta2
ELSE bild3 bla bla bla
om du förstår principen fast bild 1-9 kommer jag göra en random till men att få JUST den random till RÄTT ruta blir ju problemet. Säg att det slumpar ut bild5 då måste jag på något sätt definera att det är JUST ruta 5 den ska till.....
Det enklaste man kan göra är ju att koppla rutorna till dom 9 försöken men då kommer det ju upp en bild på samma ställe hela tiden och det blir tråkigt i längden, det är därför jag vill ha en random på även den.
Kort beskrivning av allt:
1. Välj räknesätt
2. Välj nivå (3st)
3. SLUMPA (slumpar ut 2 tal)
4. Gissa svar (2 försök)
5. Visa dom 2 talen + svar (bock efter för rätt svar och kryss för fel.
6. Beroende på TRUE eller FALSE ska slumvald bild komma upp, fel=svart och rätt=en av dom 9 bilderna.
Det är hela mitt prog och bara pictureboxen är kvar
Hmmm....det var mycket det här
Tacksam för alla ideer och tack till ni som redan har hjälpt mej hittils
[ Detta Inlägg ändrades av: Vecna den 2001-10-27 23:12 ]
June 18, 2001
Det var väldigt länge sedan jag använde Basic så jag kommer inte ihåg syntaxen, men borde inte något sådant här fungera.
10
curRuta = (int)(Rnd *8)
if ruta[curRuta] != 0 then
PictureBox[curRuta].picture = ruta[curRuta]
ruta[curRuta] = 0
else
goto 10
end if
Om det inte går att lösa så i Basic, är jag på rätt spår i alla fall?
_________________
P4 1,4, ASUS P4T, PoV GF2 MX200, SB live(!), 2*64 RDRAM, Iiyama 19"
[ Detta Inlägg ändrades av: Jerry den 2001-10-27 23:28 ]
October 10, 2001
Låt mig se om jag förstått detta rätt.
Du har en bild bestående av 9 mindre bilder.
Du har nio bildplatser dit det ritas ut antingen en svart ruta eller en av de små bilderna.
Var och en av de små bilderna har en bestämd bildplats där den ska ritas.
Således behöver inte bildplatsen slumpas fram.
Efter att ha sammanställt dessa fakta som jag hoppas är korrekta, annars får du rätta mig på de punkter som är felaktiga, så anser jag att detta bör lösa problemet:
Du har en array för de nio bildpositionerna.
Varje bild är associerad med en given plats bland de nio rutorna.
När du ska rita en bild så slumpar du fram numret på bilden.
Bildens nummer bestämmer också dess plats bland de nio rutorna.
Ungefär så här:
Slumpa fram bildnummer.
om Bildpositionsarray[bildnummer]=ritad så börja om vid slumpningen.
sätt Bildnpositionsarray[bildnummer] till ritad.
Fråga efter svar på fråga.
Om givet svar är rätt rita den lilla bilden på dess plats.
Om givet svar är fel rita en svart kvadrat på bildens plats.
Börja om igen tills alla rutor är fyllda.
Jag tror att detta skall lösa problemet.
(Jag hoppas i alla fall)
October 20, 2001
Korrekt.
IF svar=TRUE
THEN slumpabild()
Där slumpabild() redan är en kod för random på bilderna och dess plats.
Hur skulle en kod kunna se ut för att "låsa" box[0-8] med rätt bild?
För finns koden FÖRST där bild0-8 har en bestämd plats i min box så behöver jag ju bara en randomize på "svar" beroende om den är FALSE eller TRUE
Kruxet här är egentligen bara att låsa bild 0 till box 0 osv. sen en check att den inte redan är utplacerad.
October 10, 2001
Egentligen vore det snyggaste att använda funktioner som gör allt åt dig.
Funktionshuvuden:
void Rita_Bild(int Bildnummer, int Bildposition);
void Rita_Svart(int Bildposition);
Kod:
int Nummer = random(9);
int Bild_Array[9]={0,0,0,0,0,0,0,0,0};
while(Bild_Array[Nummer]!=0;
Nummer = random(9);
Bild_Array[Nummer]=1;
if(Svar==Rätt_Svar)
Rita_Bild(Nummer, Nummer);
else
Rita_Svart(Nummer);
Om jag inte tänkt fel någonstans så löser detta problemet.
May 24, 2001
Öh! Det ska vara VB inte C!
Dim Bild_Array(8) As Boolean
Sub RitaBild(ByVal Position As Integer, ByVal Bild As String)
'kod här
End Sub
Sub Nånting(ByVal Svar As Boolean)
Dim Nummer As Integer
Randomize
Nummer = Random * 8
Do Until Bild_Array(Nummer) = False
Nummer = Random * 8
Loop
Bild_Array(Nummer) = True
If Svar Then
RitaBild Nummer, "c:blablagubbe" & Nummer & ".bmp"
Else
RitaBild Nummer, "c:blablasvart.bmp"
End If
End Sub
Om man vill få det snyggare kan man lägga in själva bilderna i en annan array.
October 20, 2001
Ok, hoppas jag blir klokare av det där
Varför ska det vara så jäkla svårt att få ut EN bild i en box bestående av 9 simpla rutor som ligger i en array?
Bilderna heter för övrigt bild0, bild1 osv. ända upp till 8 så det blir 9st.
[ Detta Inlägg ändrades av: Vecna den 2001-10-28 18:10 ]
1 Guest(s)