Ir para conteúdo
Fórum Script Brasil

Darknnez

Membros
  • Total de itens

    216
  • Registro em

  • Última visita

Tudo que Darknnez postou

  1. Hahahaha Ficou legal pra caramba! xD Fiz assim: Private Sub Timer1_Timer() tempo = tempo + 1 If tempo = 1 Then lbl20.Caption = xPiloto(0).nome ElseIf tempo = 2 Then lbl19.Caption = xPiloto(1).nome ElseIf tempo = 3 Then lbl18.Caption = xPiloto(2).nome ElseIf tempo = 4 Then lbl17.Caption = xPiloto(3).nome ElseIf tempo = 5 Then lbl16.Caption = xPiloto(4).nome ElseIf tempo = 6 Then lbl15.Caption = xPiloto(5).nome ElseIf tempo = 7 Then lbl14.Caption = xPiloto(6).nome ElseIf tempo = 8 Then lbl13.Caption = xPiloto(7).nome ElseIf tempo = 9 Then lbl12.Caption = xPiloto(8).nome ElseIf tempo = 10 Then lbl11.Caption = xPiloto(9).nome ElseIf tempo = 11 Then lbl10.Caption = xPiloto(10).nome ElseIf tempo = 12 Then lbl9.Caption = xPiloto(11).nome ElseIf tempo = 13 Then lbl8.Caption = xPiloto(12).nome ElseIf tempo = 14 Then lbl7.Caption = xPiloto(13).nome ElseIf tempo = 15 Then lbl6.Caption = xPiloto(14).nome ElseIf tempo = 16 Then lbl5.Caption = xPiloto(15).nome ElseIf tempo = 17 Then lbl4.Caption = xPiloto(16).nome ElseIf tempo = 19 Then lbl3.Caption = xPiloto(17).nome ElseIf tempo = 21 Then lbl2.Caption = xPiloto(18).nome ElseIf tempo = 23 Then lbl1.Caption = xPiloto(19).nome End If Acho que não tem jeito de diminuir o número de linhas né? Bem, outra perguntinha básica: Agora eu queria fazer a pontuação da equipe. Por exemplo, os pilotos da McLaren são Alonso e Hamilton. Teria que somar as pontuações dos dois a cada corrida, e o resultado aparece em outro form, só que ordenadamente, da equipe com mais pontos até a equipe com menos pontos. Como fazer?
  2. Como fazer para que, na corrida, as posições apareçam uma de cada vez, de 1 em 1 segundo, da última para a primeira?
  3. EDIT: IGNORE, JÁ CONSEGUI CORRIGIR Segui tua dica (menos a parte de criar classes, ainda). Ta dando um probleminha idiota aqui, e eu não to descobrindo o motivo. Eu fiz da seguinte forma: a = numero aleatorio (1 ou 2) Se a = 1 então _____Se FinançasDaEquipeX > CustoDoMotor(número do motor atual + 1) então __________MotorDaEquipeX = Motor(numero do motor atual + 1) _____Fim Se Fim Se Basicamente... Mas, não sei o por que, a EquipeX (no caso) compra, primeiramente um motor melhor, e depois, em vez de comprar outro motor melhor, mesmo tendo dinheiro suficiente, continua comprando o mesmo motor. Upei o Project no RapidShare, para você entender melhor, se quiser: http://rapidshare.com/files/46838774/ContratosTeste.rar.html Mas se preferir, o código é esse: Form1 Option Explicit Private Sub cmdOK_Click() For i = 0 To 1 a(i) = Int(2 * Rnd) + 1 Next If a(0) = 1 Then If xEquipe(0).finanças > xMotor(a(0) + 1).custo Then xEquipe(0).Motor = xMotor(a(0) + 1).nome xEquipe(0).finanças = xEquipe(0).finanças - xMotor(a(0) + 1).custo a(0) = a(0) + 1 lblFinançasMcLaren.Caption = "Dinheiro: " & xEquipe(0).finanças lblMotorMcLaren.Caption = "Motor: " & xEquipe(0).Motor lblForçaMcLaren.Caption = "Força: " & xMotor(a(0)).potencia End If End If If a(1) = 1 Then If xEquipe(1).finanças > xMotor(a(1) + 1).custo Then xEquipe(1).Motor = xMotor(a(1) + 1).nome xEquipe(1).finanças = xEquipe(1).finanças - xMotor(a(1) + 1).custo a(1) = a(1) + 1 lblFinançasFerrari.Caption = "Dinheiro: " & xEquipe(1).finanças lblMotorFerrari.Caption = "Motor: " & xEquipe(1).Motor lblForçaFerrari.Caption = "Força: " & xMotor(a(1)).potencia End If End If End Sub Private Sub Form_Load() a(0) = 0 a(1) = 0 xMotor(3).nome = "Ferrari" xMotor(3).custo = 7000 xMotor(3).potencia = 25 xMotor(2).nome = "Mercedes" xMotor(2).custo = 6500 xMotor(2).potencia = 23 xMotor(1).nome = "Renault" xMotor(1).custo = 4000 xMotor(1).potencia = 19 xMotor(0).nome = "BMW" xMotor(0).custo = 3000 xMotor(0).potencia = 16 xEquipe(0).nome = "McLaren" xEquipe(0).finanças = 30000 xEquipe(0).Motor = xMotor(a(0)).nome xEquipe(1).nome = "Ferrari" xEquipe(1).finanças = 25000 xEquipe(1).Motor = xMotor(a(1)).nome lblFinançasFerrari.Caption = "Dinheiro: " & xEquipe(1).finanças lblMotorFerrari.Caption = "Motor: " & xEquipe(1).Motor lblForçaFerrari.Caption = "Força: " & xMotor(a(1)).potencia lblFinançasMcLaren.Caption = "Dinheiro: " & xEquipe(0).finanças lblMotorMcLaren.Caption = "Motor: " & xEquipe(0).Motor lblForçaMcLaren.Caption = "Força: " & xMotor(a(0)).potencia End Sub Module1 Option Explicit Public xEquipe(1) As Equipe Public xMotor(3) As Motor Public i As Integer Public a(1) As Variant Public b(3) As Variant Type Equipe nome As String finanças As Currency Motor As Variant End Type Type Motor nome As String custo As Currency potencia As Variant End Type Observação: esse é um Project separado do outro, no qual ocorre a corrida. EDIT: CONSEGUI CORRIGIR AQUI
  4. Desse jeito que você falou seria perfeito! Tipo, cada equipe tem suas finanças, e uma vez por temporada, elas tentam comprar uma peça diferente se a peça for melhor do que a que já tem, e se o dinheiro for suficiente. Vou tentar fazer, mas vai ser difícil...
  5. Putz, eu já tava todo animado fazendo o jogo, colocando um meio para que o jogador possa contratar pilotos diferentes, motores, etc.. Diferentes pilotos, motores, níveis de chassis, mecânicos, etc, influenciariam na chance de vítoria de cada piloto, o que atualmente apenas a IA faz. Só que eu me dei conta que para isso teria que fazer com que as outras equipes, controladas pelo computador, também possam contratar. Existe algum método ou sistema comum, usados em outros jogos do mesmo estilo, que fazem isso que eu falei? E se não existe, você tem alguma idéia de como eu poderia fazer isso?
  6. Valeu. Comecei a ler aqui, mas vou deixar pra acabar amanhã. Agora eu realmente tenho que sair. Até mais.
  7. Hmm... entendi. Isso é bom, e me deu um alívio. Por que eu pensava que teria que reformular todo o jogo para fazer com banco de dados. Agora eu já sei que é possível salvar... só preciso saber como fazer isso! :P Mas de qualquer forma, não posso ficar muito mais tempo on, mais uma 30 min no máximo. Então se você postar e eu não responder, é por que já desliguei o pc. Valeu.
  8. Hahahahaha Culpa minha você ter postado tanto! E também por que eu fui tirando do tema do tópico desde o início, caso contrário, teria que fazer vários tópicos com dúvidas diferentes. Ok, vou tentar aqui. Valeu! Hoje eu não vou poder ficar acordado até muito tarde, então vou mandar minha última pergunta. Desse jeito que eu to fazendo o "jogo", tem como criar a opção de salvar, e carregar depois, assim como tem na maioria dos jogos? Por exemplo: Se eu tiver que fechar o "jogo" depois que já rodei algumas corridas, e a pontuação já está modificada, tem como eu salvar tudo do jeito que tá, e mais tarde quando quiser, carregar denovo da forma como parei, com as pontuações do mesmo jeito que estavam?
  9. Não foi bem isso que eu quis dizer. É que não era para o form onde acontece a corrida ser o primeiro a abrir. Eu faria outros forms, e um deles seria o principal, tipo o menu principal. Mas fazendo isso (e deu certo) sempre, obrigatoriamente, o primeiro form a abrir seria o form onde está a corrida, certo?
  10. Mas possivelmente mais tarde, o form principal, ou seja, o primeiro a abrir quando rodar o programa, não seria o form onde "acontece" a corrida, o atual Form1. Se eu fizer isso que você falou, isso não seria possível, ou estou falando bobagem?
  11. Tá quase lá, falta só acertar um detalhe. Agora, no Form2, que é aonde está a pontuação, os pontos estão sendo ordenados corretamente, mas não com seus devidos nomes hahahaha. Olha o código como que tá. Form1: Option Explicit Private Sub cmdOK_Click() Dim i As Integer Randomize For i = 0 To 19 x(i).AI = Int(x(i).Chance * Rnd) + 1 Next Colocação x(), 19 x(19).Pontos = x(19).Pontos + 10 x(18).Pontos = x(18).Pontos + 8 x(17).Pontos = x(17).Pontos + 6 x(16).Pontos = x(16).Pontos + 5 x(15).Pontos = x(15).Pontos + 4 x(14).Pontos = x(14).Pontos + 3 x(13).Pontos = x(13).Pontos + 2 x(12).Pontos = x(12).Pontos + 1 lbl1.Caption = x(19).Nome lbl2.Caption = x(18).Nome lbl3.Caption = x(17).Nome lbl4.Caption = x(16).Nome lbl5.Caption = x(15).Nome lbl6.Caption = x(14).Nome lbl7.Caption = x(13).Nome lbl8.Caption = x(12).Nome lbl9.Caption = x(11).Nome lbl10.Caption = x(10).Nome lbl11.Caption = x(9).Nome lbl12.Caption = x(8).Nome lbl13.Caption = x(7).Nome lbl14.Caption = x(6).Nome lbl15.Caption = x(5).Nome lbl16.Caption = x(4).Nome lbl17.Caption = x(3).Nome lbl18.Caption = x(2).Nome lbl19.Caption = x(1).Nome lbl20.Caption = x(0).Nome cmdOK.Enabled = False cmdNext.Enabled = True End Sub Private Sub cmdNext_Click() Form2.Show Unload Me End Sub Private Sub Form_Load() x(0).Nome = "Alonso" x(0).Chance = 199 x(1).Nome = "Hamilton" x(1).Chance = 200 x(2).Nome = "Massa" x(2).Chance = 194 x(3).Nome = "Raikkonen" x(3).Chance = 195 x(4).Nome = "Heidfield" x(4).Chance = 93 x(5).Nome = "Kubica" x(5).Chance = 97 x(6).Nome = "Fisichella" x(6).Chance = 88 x(7).Nome = "Kovalainen" x(7).Chance = 72 x(8).Nome = "Rosberg" x(8).Chance = 75 x(9).Nome = "Wurz" x(9).Chance = 52 x(10).Nome = "Coulthard" x(10).Chance = 70 x(11).Nome = "Webber" x(11).Chance = 72 x(12).Nome = "Schumacher" x(12).Chance = 64 x(13).Nome = "Trulli" x(13).Chance = 55 x(14).Nome = "Button" x(14).Chance = 62 x(15).Nome = "Barrichello" x(15).Chance = 57 x(16).Nome = "Liuzzi" x(16).Chance = 59 x(17).Nome = "Speed" x(17).Chance = 28 x(18).Nome = "Sato" x(18).Chance = 32 x(19).Nome = "Davidson" x(19).Chance = 35 End Sub Form2 Option Explicit Private Sub cmdNext_Click() Form1.Show Unload Me End Sub Private Sub Form_Load() Classificação x(), 19 lbl1.Caption = x(19).Nome & " - " & x(19).Pontos lbl2.Caption = x(18).Nome & " - " & x(18).Pontos lbl3.Caption = x(17).Nome & " - " & x(17).Pontos lbl4.Caption = x(16).Nome & " - " & x(16).Pontos lbl5.Caption = x(15).Nome & " - " & x(15).Pontos lbl6.Caption = x(14).Nome & " - " & x(14).Pontos lbl7.Caption = x(13).Nome & " - " & x(13).Pontos lbl8.Caption = x(12).Nome & " - " & x(12).Pontos lbl9.Caption = x(11).Nome & " - " & x(11).Pontos lbl10.Caption = x(10).Nome & " - " & x(10).Pontos lbl11.Caption = x(9).Nome & " - " & x(9).Pontos lbl12.Caption = x(8).Nome & " - " & x(8).Pontos lbl13.Caption = x(7).Nome & " - " & x(7).Pontos lbl14.Caption = x(6).Nome & " - " & x(6).Pontos lbl15.Caption = x(5).Nome & " - " & x(5).Pontos lbl16.Caption = x(4).Nome & " - " & x(4).Pontos lbl17.Caption = x(3).Nome & " - " & x(3).Pontos lbl18.Caption = x(2).Nome & " - " & x(2).Pontos lbl19.Caption = x(1).Nome & " - " & x(1).Pontos lbl20.Caption = x(0).Nome & " - " & x(0).Pontos End Sub Module1: Option Explicit Public x(19) As piloto Type piloto Nome As String AI As Integer Pontos As Integer Chance As Integer End Type Public Function Colocação(ByRef Vetor() As piloto, tam) Dim i, j Dim min Dim aux As piloto For i = 0 To tam min = i For j = i + 1 To tam If Vetor(j).AI < Vetor(min).AI Then min = j Next j aux = Vetor(i) Vetor(i) = Vetor(min) Vetor(min) = aux Next i End Function Public Function Classificação(ByRef Vetor() As piloto, tam) Dim i, j Dim min Dim aux As piloto For i = 0 To tam min = i For j = i + 1 To tam If Vetor(j).Pontos < Vetor(min).Pontos Then min = j Next j aux = Vetor(i) Vetor(i) = Vetor(min) Vetor(min) = aux Next i End Function
  12. Eu criei o Form2 com 20 Labels. E o código ta assim; Private Sub cmdOK_Click() Dim i As Integer Randomize For i = 0 To 19 x(i).AI = Int(x(i).Chance * Rnd) + 1 Next SelectionSort x(), 19 x(19).Pontos = x(19).Pontos + 10 x(18).Pontos = x(18).Pontos + 8 x(17).Pontos = x(17).Pontos + 6 x(16).Pontos = x(16).Pontos + 5 x(15).Pontos = x(15).Pontos + 4 x(14).Pontos = x(14).Pontos + 3 x(13).Pontos = x(13).Pontos + 2 x(12).Pontos = x(12).Pontos + 1 lbl1.Caption = x(19).Nome & " - " & x(19).Pontos lbl2.Caption = x(18).Nome & " - " & x(18).Pontos lbl3.Caption = x(17).Nome & " - " & x(17).Pontos lbl4.Caption = x(16).Nome & " - " & x(16).Pontos lbl5.Caption = x(15).Nome & " - " & x(15).Pontos lbl6.Caption = x(14).Nome & " - " & x(14).Pontos lbl7.Caption = x(13).Nome & " - " & x(13).Pontos lbl8.Caption = x(12).Nome & " - " & x(12).Pontos lbl9.Caption = x(11).Nome & " - " & x(11).Pontos lbl10.Caption = x(10).Nome & " - " & x(10).Pontos lbl11.Caption = x(9).Nome & " - " & x(9).Pontos lbl12.Caption = x(8).Nome & " - " & x(8).Pontos lbl13.Caption = x(7).Nome & " - " & x(7).Pontos lbl14.Caption = x(6).Nome & " - " & x(6).Pontos lbl15.Caption = x(5).Nome & " - " & x(5).Pontos lbl16.Caption = x(4).Nome & " - " & x(4).Pontos lbl17.Caption = x(3).Nome & " - " & x(3).Pontos lbl18.Caption = x(2).Nome & " - " & x(2).Pontos lbl19.Caption = x(1).Nome & " - " & x(1).Pontos lbl20.Caption = x(0).Nome & " - " & x(0).Pontos Form2.Show Form2.Label1.Caption = x(19).Pontos Form2.Label2.Caption = x(18).Pontos Form2.Label3.Caption = x(17).Pontos Form2.Label4.Caption = x(16).Pontos Form2.Label5.Caption = x(15).Pontos Form2.Label6.Caption = x(14).Pontos Form2.Label7.Caption = x(13).Pontos Form2.Label8.Caption = x(12).Pontos Form2.Label9.Caption = x(11).Pontos Form2.Label10.Caption = x(10).Pontos Form2.Label11.Caption = x(9).Pontos Form2.Label12.Caption = x(8).Pontos Form2.Label13.Caption = x(7).Pontos Form2.Label14.Caption = x(6).Pontos Form2.Label15.Caption = x(5).Pontos Form2.Label16.Caption = x(4).Pontos Form2.Label17.Caption = x(3).Pontos Form2.Label18.Caption = x(2).Pontos Form2.Label19.Caption = x(1).Pontos Form2.Label20.Caption = x(0).Pontos End Sub EDIT: É descobri aqui o que tava acontecendo, e já resolvi. Mas agora eu não to conseguindo ordenar as pontuações na segunda página.
  13. Nossa, mas também, eu tava fazendo completamente diferente do que você fez haha. Agora funcionou legal aqui. Vou ver se consigo passar as pontuações para um form diferente agora, e ordenar da maior para a menor. Valeu! EDIT: Ih! Mas aí quando eu tento passar a pontuação para outro form, volta a dar o mesmo problema. Os números ficam "loucos", não aumentam como deviam, e as vezes até mesmo diminuem. Por exemplo: Eu coloqueio, no mesmo form, uma label (Label2). Aí na última linha do evento Click eu fiz Label2.Caption = x(19).Pontos E dá esse problema que eu falei acima.
  14. Vai dormir cara! hahaha Que isso, não fica acordado por minha causa não. Tá louco. Eu só estou acordado por que estou de férias. Mas quarta mesmo já volto às aulas. Muito obrigado mesmo. Até mais. EDIT: Eu sei que você não pode responder agora, e nem precisa. Mas eu já vou deixar minha dúvida aqui. Agora as posições estão funcionando certinho, depois que você me instruiu no ultimo post. Porém, as pontuações ainda não funcionam do jeito que deveriam. Como eu disse antes, elas não são somadas corretamente, ou não são atribuídas ao piloto certo. O que eu sei é que se o piloto chega, por exemplo, em 1° e depois em 2°, a soma da pontuação não fica igual a 18, que seria a correta, fica um número completamente diferente, e nunca o mesmo número. Bem, é isso, se você souber como resolver, me ensina por favor. No mais, valeu por tudo. Até.
  15. Mas você conseguiu fazer a pontuação, se é que tentou? Tipo, o programa ta rodando normal. Mas o que eu quis dizer foi que, depois que coloquei os nomes no Form_Load, o piloto que tinha chances mínimas de vencer a corrida, ficou com as mesmas chances que o piloto que tem a maior IA. Na verdade, é como se todos os pilotos tivessem IA's idênticas. E não era pra ser assim. Era para, o Alonso por exemplo, ter mais chances de ganhar do que o Barrichello. Entendeu? Mas valeu aí, e valeu pelas dicas para acompanhar o que acontece em cada linha. ^_^
  16. Upei o programa no RapidShare, as vezes facilita pra você: http://rapidshare.com/files/46066847/C_dig..._kuroi.rar.html E o código então está assim Form1 Option Explicit Private Sub cmdOK_Click() Randomize x(0).AI = Int(99 * Rnd) + 1 x(1).AI = Int(100 * Rnd) + 1 x(2).AI = Int(95 * Rnd) + 1 x(3).AI = Int(96 * Rnd) + 1 x(4).AI = Int(67 * Rnd) + 1 x(5).AI = Int(70 * Rnd) + 1 x(6).AI = Int(65 * Rnd) + 1 x(7).AI = Int(55 * Rnd) + 1 x(8).AI = Int(58 * Rnd) + 1 x(9).AI = Int(45 * Rnd) + 1 x(10).AI = Int(60 * Rnd) + 1 x(11).AI = Int(60 * Rnd) + 1 x(12).AI = Int(55 * Rnd) + 1 x(13).AI = Int(50 * Rnd) + 1 x(14).AI = Int(53 * Rnd) + 1 x(15).AI = Int(47 * Rnd) + 1 x(16).AI = Int(40 * Rnd) + 1 x(17).AI = Int(25 * Rnd) + 1 x(18).AI = Int(30 * Rnd) + 1 x(19).AI = Int(27 * Rnd) + 1 SelectionSort x(), 19 x(19).Pontos = x(19).Pontos + 10 x(18).Pontos = x(18).Pontos + 8 x(17).Pontos = x(17).Pontos + 6 x(16).Pontos = x(16).Pontos + 5 x(15).Pontos = x(15).Pontos + 4 x(14).Pontos = x(14).Pontos + 3 x(13).Pontos = x(13).Pontos + 2 x(12).Pontos = x(12).Pontos + 1 lbl1.Caption = x(19).Nome lbl2.Caption = x(18).Nome lbl3.Caption = x(17).Nome lbl4.Caption = x(16).Nome lbl5.Caption = x(15).Nome lbl6.Caption = x(14).Nome lbl7.Caption = x(13).Nome lbl8.Caption = x(12).Nome lbl9.Caption = x(11).Nome lbl10.Caption = x(10).Nome lbl11.Caption = x(9).Nome lbl12.Caption = x(8).Nome lbl13.Caption = x(7).Nome lbl14.Caption = x(6).Nome lbl15.Caption = x(5).Nome lbl16.Caption = x(4).Nome lbl17.Caption = x(3).Nome lbl18.Caption = x(2).Nome lbl19.Caption = x(1).Nome lbl20.Caption = x(0).Nome End Sub Private Sub Form_Load() x(0).Nome = "Alonso" x(1).Nome = "Hamilton" x(2).Nome = "Massa" x(3).Nome = "Raikkonen" x(4).Nome = "Heidfield" x(5).Nome = "Kubica" x(6).Nome = "Fisichella" x(7).Nome = "Kovalainen" x(8).Nome = "Rosberg" x(9).Nome = "Wurz" x(10).Nome = "Coulthard" x(11).Nome = "Webber" x(12).Nome = "Schumacher" x(13).Nome = "Trulli" x(14).Nome = "Button" x(15).Nome = "Barrichello" x(16).Nome = "Liuzzi" x(17).Nome = "Speed" x(18).Nome = "Sato" x(19).Nome = "Davidson" End Sub Module1 Option Explicit Public x(19) As piloto Type piloto Nome As String AI As Integer Pontos As Integer End Type Public Function SelectionSort(ByRef Vetor() As piloto, tam) Dim i, j Dim min Dim aux As piloto For i = 0 To tam min = i For j = i + 1 To tam If Vetor(j).AI < Vetor(min).AI Then min = j Next j aux = Vetor(i) Vetor(i) = Vetor(min) Vetor(min) = aux Next i End Function
  17. Mudei aqui, e não adiantou. Mas antes de te passar o código, quero saber uma coisa só pra ter certeza. Quando você fala para passar os nomes para o Form_Load, eu devo passar todo o seguinte código? Private Sub Form_Load() x(0).Nome = "Alonso" x(1).Nome = "Hamilton" x(2).Nome = "Massa" x(3).Nome = "Raikkonen" x(4).Nome = "Heidfield" x(5).Nome = "Kubica" x(6).Nome = "Fisichella" x(7).Nome = "Kovalainen" x(8).Nome = "Rosberg" x(9).Nome = "Wurz" x(10).Nome = "Coulthard" x(11).Nome = "Webber" x(12).Nome = "Schumacher" x(13).Nome = "Trulli" x(14).Nome = "Button" x(15).Nome = "Barrichello" x(16).Nome = "Liuzzi" x(17).Nome = "Speed" x(18).Nome = "Sato" x(19).Nome = "Davidson" End Sub E se não é assim, como eu devo fazer então?
  18. Sim, mas eu não coloquei a IA dentro do Form_Load, só os nomes mesmo. Aí quando eu rodei o programa as posições dos pilotos não se davam mais de acordo com a IA. Mesmo colocando em um determinado piloto Int(10000 * Rnd) + 1, e em todos os outros Int(1 * Rnd) + 1, não influenciava em nada.
  19. Mas aí quando eu coloco os nomes no Form_Load, a IA perde sentido. Fica completamente aleatório, todos ficam com chances idênticas de chegar em qualquer posição.
  20. Option Explicit Private Sub cmdOK_Click() Randomize x(0).AI = Int(99 * Rnd) + 1 x(1).AI = Int(100 * Rnd) + 1 x(2).AI = Int(95 * Rnd) + 1 x(3).AI = Int(96 * Rnd) + 1 x(4).AI = Int(67 * Rnd) + 1 x(5).AI = Int(70 * Rnd) + 1 x(6).AI = Int(65 * Rnd) + 1 x(7).AI = Int(55 * Rnd) + 1 x(8).AI = Int(58 * Rnd) + 1 x(9).AI = Int(45 * Rnd) + 1 x(10).AI = Int(60 * Rnd) + 1 x(11).AI = Int(60 * Rnd) + 1 x(12).AI = Int(55 * Rnd) + 1 x(13).AI = Int(50 * Rnd) + 1 x(14).AI = Int(53 * Rnd) + 1 x(15).AI = Int(47 * Rnd) + 1 x(16).AI = Int(40 * Rnd) + 1 x(17).AI = Int(25 * Rnd) + 1 x(18).AI = Int(30 * Rnd) + 1 x(19).AI = Int(27 * Rnd) + 1 x(0).Nome = "Alonso" x(1).Nome = "Hamilton" x(2).Nome = "Massa" x(3).Nome = "Raikkonen" x(4).Nome = "Heidfield" x(5).Nome = "Kubica" x(6).Nome = "Fisichella" x(7).Nome = "Kovalainen" x(8).Nome = "Rosberg" x(9).Nome = "Wurz" x(10).Nome = "Coulthard" x(11).Nome = "Webber" x(12).Nome = "Schumacher" x(13).Nome = "Trulli" x(14).Nome = "Button" x(15).Nome = "Barrichello" x(16).Nome = "Liuzzi" x(17).Nome = "Speed" x(18).Nome = "Sato" x(19).Nome = "Davidson" x(19).Pontos = x(19).Pontos + 10 x(18).Pontos = x(18).Pontos + 8 x(17).Pontos = x(17).Pontos + 6 x(16).Pontos = x(16).Pontos + 5 x(15).Pontos = x(15).Pontos + 4 x(14).Pontos = x(14).Pontos + 3 x(13).Pontos = x(13).Pontos + 2 x(12).Pontos = x(12).Pontos + 1 SelectionSort x(), 19 lbl1.Caption = x(19).Nome lbl2.Caption = x(18).Nome lbl3.Caption = x(17).Nome lbl4.Caption = x(16).Nome lbl5.Caption = x(15).Nome lbl6.Caption = x(14).Nome lbl7.Caption = x(13).Nome lbl8.Caption = x(12).Nome lbl9.Caption = x(11).Nome lbl10.Caption = x(10).Nome lbl11.Caption = x(9).Nome lbl12.Caption = x(8).Nome lbl13.Caption = x(7).Nome lbl14.Caption = x(6).Nome lbl15.Caption = x(5).Nome lbl16.Caption = x(4).Nome lbl17.Caption = x(3).Nome lbl18.Caption = x(2).Nome lbl19.Caption = x(1).Nome lbl20.Caption = x(0).Nome End Sub Fiz assim. Aí quando fiz: Label2.Caption = x(19).Pontos Pra ver o que dava, o número aparecia todo louco. Ele aumentava, diminuía, outra hora não aumentava mais... haha
  21. Na verdade o erro que tava dando foi na linha que chama a função SelectionSort. E a pontuação não funcionou. Os pontos não estão sendo atribuídos sempre aos mesmos pilotos.
  22. Parece que tá tudo certo. Mas ta dando um problema nessa linha: SelectionSort x(), 19 Aparece: "Type mismatch: array or user-defined type expected" Ah! Acho que eu resolvi agora. Se der algo errado eu aviso aqui, mas parece que agora ta tudo certo. Infelizmente, acho que você só vai ver essa mensagem depois que já tiver postado. Então.... foi mal! :(
  23. Então o que eu tenho que fazer para "substituir" a matriz do meu código pelo type? E aí depois que substituir, como faz o sistema de pontuação que eu falei?
  24. Tá assim: Em um Form Option Explicit Private Sub cmdOK_Click() Randomize x(0, 0) = Int(99 * Rnd) + 1 x(1, 0) = Int(100 * Rnd) + 1 x(2, 0) = Int(95 * Rnd) + 1 x(3, 0) = Int(96 * Rnd) + 1 x(4, 0) = Int(67 * Rnd) + 1 x(5, 0) = Int(70 * Rnd) + 1 x(6, 0) = Int(65 * Rnd) + 1 x(7, 0) = Int(55 * Rnd) + 1 x(8, 0) = Int(58 * Rnd) + 1 x(9, 0) = Int(45 * Rnd) + 1 x(10, 0) = Int(60 * Rnd) + 1 x(11, 0) = Int(60 * Rnd) + 1 x(12, 0) = Int(55 * Rnd) + 1 x(13, 0) = Int(50 * Rnd) + 1 x(14, 0) = Int(53 * Rnd) + 1 x(15, 0) = Int(47 * Rnd) + 1 x(16, 0) = Int(40 * Rnd) + 1 x(17, 0) = Int(25 * Rnd) + 1 x(18, 0) = Int(30 * Rnd) + 1 x(19, 0) = Int(27 * Rnd) + 1 x(0, 1) = "Alonso" x(1, 1) = "Hamilton" x(2, 1) = "Massa" x(3, 1) = "Raikkonen" x(4, 1) = "Heidfield" x(5, 1) = "Kubica" x(6, 1) = "Fisichella" x(7, 1) = "Kovalainen" x(8, 1) = "Rosberg" x(9, 1) = "Wurz" x(10, 1) = "Coulthard" x(11, 1) = "Webber" x(12, 1) = "Schumacher" x(13, 1) = "Trulli" x(14, 1) = "Button" x(15, 1) = "Barrichello" x(16, 1) = "Liuzzi" x(17, 1) = "Speed" x(18, 1) = "Sato" x(19, 1) = "Davidson" SelectionSort x(), 19 lbl1.Caption = x(19, 1) lbl2.Caption = x(18, 1) lbl3.Caption = x(17, 1) lbl4.Caption = x(16, 1) lbl5.Caption = x(15, 1) lbl6.Caption = x(14, 1) lbl7.Caption = x(13, 1) lbl8.Caption = x(12, 1) lbl9.Caption = x(11, 1) lbl10.Caption = x(10, 1) lbl11.Caption = x(9, 1) lbl12.Caption = x(8, 1) lbl13.Caption = x(7, 1) lbl14.Caption = x(6, 1) lbl15.Caption = x(5, 1) lbl16.Caption = x(4, 1) lbl17.Caption = x(3, 1) lbl18.Caption = x(2, 1) lbl19.Caption = x(1, 1) lbl20.Caption = x(0, 1) End Sub E em um module Option Explicit Public x(19, 1) As Variant Public Function SelectionSort(Vetor(), tam) Dim i, j Dim min, aux For i = 0 To tam min = i For j = i + 1 To tam If Vetor(j, 0) < Vetor(min, 0) Then min = j Next j aux = Vetor(i, 0) Vetor(i, 0) = Vetor(min, 0) Vetor(min, 0) = aux aux = Vetor(i, 1) Vetor(i, 1) = Vetor(min, 1) Vetor(min, 1) = aux Next i End Function
  25. Não consegui fazer =\ Não entendi bem o que você quis dizer.
×
×
  • Criar Novo...