limponMedlem sedan sep. 2001175 inlägg Jag har ett problem igen.. med denna ¤#"% randomizen.
Jag vet hur man plockar fram en randomizad spelare.
Men hur plockar man fram flera?
Jag tänkte mig att det skulle bli nått sånt här.
Do until RS.EOF OR I = 7
brasql = "select * from player where spelare_agd_av = '"&nick&"'"
set spelare = databas.execute(brasql)
if not spelare.eof then
arr = spelare.getrows()
randomize
cnt = ubound(arr,2) + 1
s = int(cnt*rnd)
mal = arr(i,s)
(Sedan en update sats här)
RS.Movenext
Loop
Själva problemet ligger i mitt spel. där egentligen 7 är antalet gjorda mål, som är variabeln "gjordamal".
Men vi får inga spelare att skrivas ut för att ha gjort mål. Och icke assists heller, hoppas nån förstår problemet.. Tack
------------------
//Limpon
LarsGMedlem sedan dec. 200012 464 inlägg Nej, jag förstår inte.
Varifrån kommer RS och hur får nick värdet? Nu gör utför du samma select flera gånger. Skall det vara flera spelare ägd av samma nick eller olika spelare.
Hur skulle du använda gjordamal/assists?
Randomize bör ligga utanför loopen.
------------------
essentitia preter non sans multiplicandum
limponMedlem sedan sep. 2001175 inlägg Ja det ska kunna vara flera spelare som är ägd av samma nick. För det är ju mål i matcherna jag vill randomiza ut till spelarna man har i tabellen player.
Jag testade även den här..
sql = "select * from player where spelare_agd_av = '"&nick&"'"
Set RS = Databas.Execute(SQL)
I = 0
Do until RS.EOF or I = 7
Randomize
mal = Int(rnd*RS("id"))
I=I+1
(sedan en update sats här.)
RS.Movenext
Loop
Jag tycker den här randomize satsen är lättsammare att förstå =).
Men som sagt förrut så är jag ny på randomize, har inte full kläm på det hela ännu. Hoppas du förstår lite mer nu ialla fall. annars får du säga till :)
------------------
//Limpon
LarsGMedlem sedan dec. 200012 464 inlägg brasql = "select id from player where spelare_agd_av = '"&nick&"'"
set spelare = connect.execute(brasql)
if not spelare.eof then
arr = spelare.getrows()
cnt = ubound(arr,2) + 1
randomize
for i = 1 to 7
s = int(cnt*rnd)
sql = "update player set mal = mal + 1 where id = " & arr(0,s)
connect.execute sql,,128
next
end if
är det något sådant du vill ha. Nu är det 7 slumpvis utvalda spelare som får ett mål till. (Som det är nu så kan samma spelare bli framslumpad flera gånger.)
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 17 nov 2001]
limponMedlem sedan sep. 2001175 inlägg Ja exakt, så det ska vara =)
Jag måste göra något nu bara för att målvakterna ska ju inte kunna göra t.ex 3 mål på en match =)
Men tusen tack. En fråga jag har bara.
arr = spelare.getrows()
cnt = ubound(arr,2) + 1
arr`? får den alla posterna?
sedan cnt förstår jag inte alls.
har du tid o förklara så vore jag tacksam
------------------
//Limpon
LarsGMedlem sedan dec. 200012 464 inlägg Ja, arr kommer att innehålla alla poster från select-satsen. Det är en tvådimensionell array där varje rad innehåller en post från tabellen.
funktionen Ubound(arr,2) returnerar det högsta indexet i arrayen. Eftersom första index är 0 så kommer då cnt att innehålla antalet rader som finns i arrayen.
------------------
essentitia preter non sans multiplicandum
limponMedlem sedan sep. 2001175 inlägg Aha jag förstår inte så mycket men jag förstår funktionen på dom nu =)
Tack för hjälpen Lasse.
------------------
//Limpon