Ir para conteúdo
Fórum Script Brasil

Darknnez

Membros
  • Total de itens

    216
  • Registro em

  • Última visita

Tudo que Darknnez postou

  1. Hmm... funcionou. Como que faz pra usar o objeto VScrollBar, para subir ou descer um textou ou uma imagem?
  2. Mas a única diferença que tem do código atual, pro que estava antes, é que agora eu apaguei a linha que chama a função que ordena o xEquipe. Ou seja, se eu voltar a chamar, vai voltar com o erro também, não?
  3. E funciona! Fique 4 dias pra fazer uma coisa ridícula dessas. Mas o problema agora é que seu eu mandar ordenar nesse form dos pontos de cada equipe na última corrida, ele 'quebra' a função que ordena pela ia, não?
  4. hmm... Ok, corrigi aqui. Mas agora, voltando, como eu vou fazer para ordenar os pontos da ultima corrida de cada equipe pela IA?
  5. Tranquilo, valeu. To saindo.
  6. Eu não sei no que foi em que mechi, mas agora não ta somando mais. Antes tava somando, mas o resultado dava errado, certo? Agora o resultado só aparece = 0. To te mandando o projeto por MP. EDIT: Cara, se você postar aí e eu não responder, é por que já saí. Tenho aula 7:20, e por isso tenho que acordar 6:30. Eu vou esperar mais um pouco, e depois sair.
  7. Não consigo de jeito nenhum! Eu mechi em alguma coisa no projeto ontem, que quando eu abri hoje não tava nem somando mais a pontuação da equipe na última corrida. Não sei o que eu fiz. Mas to perdendo a paciência com isso já. To frustrado mesmo. Não sei se mecho mais com isso hoje.
  8. Hmm.... então pra corrigir é só eu mandar ordenar pelo AI?
  9. Bem.... eu não entendi bem o que você quis dizer, nem como corrigir. Mas de qualquer forma, eu tenho que sair por que tenho aula daqui a 4 horas. =p Então, deixa pra amanhã (ou hoje, sei lá) à noite. Valeu. Até mais.
  10. Cara, eu juro por Deus que aqui ta dando errado. Não sei se é macumba ou não, sei lá o motivo. Mas eu te garanto que aqui, a partir da segunda corrida, a pontuação ta toda errada. Agora mesmo eu rodei o programa, e na segunda corrida, o Alonso chegou em primeiro e o Hamilton em segundo, e a pontuação da equipe estava igual a 13. Nessa mesma corrida, o Raikkonen chegou em terceiro e o Massa em quarto, e a soma da equipe estava igual a 8. Então, sinceramente... não da pra entender o por que. Você tem certeza que fez duas corridas em uma única vez que rodou o programa? Bem, de qualquer forma, valeu...
  11. Ok, vou te mandar por MP. E como você vai ver o projeto, queria que visse outro erro que tá acontecendo também. No form MenuEquipe, era para aparecer o nome das peças de cada equipe, como o motor, o pneu, o combustível, etc. Aí para isso eu fiz assim. Defini no Module1, dentro do Private Sub Main 'McLaren xEquipe(0).nome = "McLaren" xEquipe(0).finanças = 20000 xEquipe(0).Motor = xMotor(0).nome xEquipe(0).Pneu = xPneu(0).nome xEquipe(0).Combustível = xCombustível(2).nome xEquipe(0).chassi = 100 'Ferrari xEquipe(1).nome = "Ferrari" xEquipe(1).finanças = 17000 xEquipe(1).Motor = xMotor(1).nome xEquipe(1).Pneu = xPneu(1).nome xEquipe(1).Combustível = xCombustível(1).nome xEquipe(1).chassi = 95 ...................................... 'Spyker xEquipe(10).nome = "Spyker" xEquipe(10).finanças = 1000 xEquipe(10).Motor = xMotor(7).nome xEquipe(10).Pneu = xPneu(2).nome xEquipe(10).Combustível = xCombustível(4).nome xEquipe(10).chassi = 30 E no form MenuEquipe, dentro do Form_Load lblNome.Caption = xJogador.nome lblIdade.Caption = xJogador.idade lblNacionalidade.Caption = xJogador.nacionalidade lblMotor.Caption = xEquipe(m).Motor lblPneu.Caption = xEquipe(m).Pneu lblCombustível.Caption = xEquipe(m).Combustível lblChassi.Caption = xEquipe(m).chassi lblMecânicos.Caption = xEquipe(m).mecânicos lblPiloto1.Caption = xEquipe(m).piloto(0) lblPiloto2.Caption = xEquipe(m).piloto(1) Sendo que a variável m tem um valor numérico diferente para cada equipe, definido quando o jogador escolhe a equipe com que vai jogar. Private Sub optMcLaren_Click() m = 0 End Sub Private Sub optFerrari_Click() m = 1 End Sub Private Sub optRenault_Click() m = 2 End Sub ...................... Private Sub optSpyker_Click() m = 10 End Sub Só que no final das contas, não está aparecendo o nome das peças. Bem... se puder da uma olhada nisso também. Valeu!
  12. Ele soma errado acho. Na primeira corrida a soma é correta até Mas a partir da segunda começa a aparecer errado. Por exemplo: os dois pilotos chegam um em 1° e o outro em 3°, a soma deveria dar 16, mas em vez disso aparece 13, ou outro número qualquer. Vou tentar aqui, olhar linha por linha. EDIT: Olhei aqui as linhas, e não encontrei nada. Não entendi muito bem a sequência do que ocorre.
  13. Acho que tá quase lá. Mas a pontuação da equipe ainda não ta aparecendo corretamente. O código ta assim: No Form da corrida Private Sub cmdOK_Click() Dim i As Integer Dim h As Integer Randomize For h = 0 To 10 xEquipe(h).pontuaçao2 = 0 Next For i = 0 To 19 xPiloto(i).ai = Int(xPiloto(i).chance * Rnd) + 1 Next Colocação xPiloto(), 19 SomaPontos 19, 10 SomaPontos 18, 8 SomaPontos 17, 6 SomaPontos 16, 5 SomaPontos 15, 4 SomaPontos 14, 3 SomaPontos 13, 2 SomaPontos 12, 1 Timer1.Enabled = True cmdOK.Enabled = False cmdNext.Enabled = True End Sub No Form da pontuação das equipes na última corrida Private Sub Form_Load() ClassificaçãoEquipe xEquipe(), 10 lbl1.Caption = xEquipe(10).nome & "-" & xEquipe(10).pontuaçao2 lbl2.Caption = xEquipe(9).nome & "-" & xEquipe(9).pontuaçao2 lbl3.Caption = xEquipe(8).nome & "-" & xEquipe(8).pontuaçao2 lbl4.Caption = xEquipe(7).nome & "-" & xEquipe(7).pontuaçao2 lbl5.Caption = xEquipe(6).nome & "-" & xEquipe(6).pontuaçao2 lbl6.Caption = xEquipe(5).nome & "-" & xEquipe(5).pontuaçao2 lbl7.Caption = xEquipe(4).nome & "-" & xEquipe(4).pontuaçao2 lbl8.Caption = xEquipe(3).nome & "-" & xEquipe(3).pontuaçao2 lbl9.Caption = xEquipe(2).nome & "-" & xEquipe(2).pontuaçao2 lbl10.Caption = xEquipe(1).nome & "-" & xEquipe(1).pontuaçao2 lbl11.Caption = xEquipe(0).nome & "-" & xEquipe(0).pontuaçao2 End Sub E no Módulo Public Sub SomaPontos(i As Integer, pontos As Integer) Dim j As Integer xPiloto(i).pontos = xPiloto(i).pontos + pontos For j = 0 To UBound(xEquipe) If xEquipe(j).nome = xPiloto(i).Equipe Then xEquipe(j).pontuaçao2 = xEquipe(j).pontuaçao2 + pontos Exit For End If Next End Sub
  14. Aff... não dá! :P O que, especificamente, eu devo digitar para chamar a função? Eu devo declarar a função no module ou no form? E quando você diz para eu substituir aquele código por SomaPontos(19, 10), aonde exatamente eu devo substituir, no form da corrida mesmo, ou no form aonde aparece a pontuação, e antes ou depois de chamar a função? Eita!
  15. Agora aparece: "ByRef argumento type mismatch" Eu posso estar chamando a função errado?
  16. Ops! Aquela linha eu copiei pra cá por engano. Foi de uma das minhas tentativas, e parece que eu esqueci ela lá antes de tentar outras coisas. Valeu , vou tentar aqui. EDIT: Quanto eu tento declarar aparece a mensagem de erro: "Sub or Function not defined"
  17. Putz, tentei várias coisas. Eu apaguei o que eu tinha tentado, por que acho que não cheguei nem perto. O que eu tinha feito era algo parecido com isso, usando um form: Dim i As Integer Dim j As Integer For j = 0 To UBound(xEquipe) xEquipe(j).pontuaçao = 0 xEquipe(j).pontuaçao = xEquipe(j).pontuaçao - xPiloto(i).pontos Next For i = 0 To UBound(xPiloto) For j = 0 To UBound(xEquipe) If xEquipe(j).nome = xPiloto(i).Equipe Then xEquipe(j).pontuaçao2 = xPiloto(i).pontos2 Exit For End If Next Next Sendo que antes eu já havia definido o pontos2 de cada piloto com um valor diferente para cada posição possível. Pelo menos foi isso que eu entendi que tinha que fazer. Fiz outras tentativas também, todas fracassadas. haha
  18. É... não consegui :huh: EDIT: Postei a 16000° resposta da área! hahahahahaha :lol:
  19. E como eu faço para que uma propriedade reconheça apenas a pontuação da última corrida?
  20. Ok, deu certo. O que eu quero fazer agora, é mostrar em um outro form, apenas a pontuação que as equipes fizeram na ultima corrida. Ou seja, sem levar em consideração a pontuação que ela já havia ganhando em outras corridas. E claro, lembrando que a pontuação de cada equipe é determinada pela posição final na corrida de seus dois pilotos.
  21. Foi mal por que? Você tinha me passado assim, fui eu que mudei, por que desse jeito da tando mais errado ainda. hahahaha Desse jeito, acontece da seguinte forma. Alonso fica em 1° na primeira corrida = 10 pontos Pontuação da Equipe = 10 pontos. Alonso fica em 2° na segunda corrida = 10 pontos + 8 pontos = 18 pontos Pontuação da Equipe = 10 pontos + 18 pontos = 28 pontos. Deu pra entender? Soma a pontuação total com a pontuação total atual. E além desse problema, tem o outro que eu te falei. Eu não consigo somar a pontuação do Alonso com a pontuação do companheiro de equipe Hamilton.
  22. Ele soma corretamente se eu mando somar apenas as pontuações de um piloto. Se eu mando somar a pontuação dos dois pilotos da equipe, aí o resultado já fica incorreto. Eu entendi o código, mas não consigo pensar numa maneira de resolver o problema. Edit: Mandei o projeto por MP.
  23. Hahahahahahahaha Tá parecendo chat isso aqui. Espero que não tenha nenhum problema, por nunca que minha intenção com isso é ganhar posts. Como eu disse antes, o tópico ta grande assim por que eu vou emendando uma pergunta à outra, em vez de criar vários tópicos. Senão, já teria uns 20 tópicos meus hahahaha Ok... eu tive que fazer uma pequena correção nesse código que você me passou: For i = 0 To UBound(xPiloto) For j = 0 To UBound(xEquipe) If xEquipe(j).nome = xPiloto(i).Equipe Then xEquipe(j).pontuaçao = xPiloto(i).pontos Exit For End If Next Next Antes disso, a pontuação da equipe estava sendo somada errada. Tipo, era somada a pontuação total com a pontuação total atual. Por exemplo, quando o Alonso ficava em primeiro, ele ganhava 10 pontos, e na próxima corrida, ele ficava em segundo, ganhando 8 pontos. A pontuação da equipe ficava igual a 28, no final das duas corridas, por que somava 10 (pontuação total após primeira corrida) + 18 (pontuação total após segunda corrida. Mas ainda está dando um problema. Como eu disse, tem que somar a pontuação total dos dois pilotos da equipe. Mas com esse código eu não consegui. Apenas para você ter uma noção, o código está assim: Classificação de Equipe Option Explicit Private Sub Command1_Click() MenuEquipe.Show Unload Me End Sub Private Sub Form_Load() Dim i As Variant Dim j As Variant For i = 0 To UBound(xPiloto) For j = 0 To UBound(xEquipe) If xEquipe(j).nome = xPiloto(i).Equipe Then xEquipe(j).pontuaçao = xPiloto(i).pontos Exit For End If Next Next Label1.Caption = xEquipe(0).pontuaçao End Sub Module1 Option Explicit Public xPiloto(21) As piloto Public xJogador As Jogador Public xEquipe(10) As Equipe Public xMotor(10) As Motor Public m As Integer Type Jogador nome As String idade As Variant nacionalidade As String Equipe As Variant End Type Type piloto nome As String ai As Integer pontos As Integer chance As Integer Equipe As Variant End Type Type Equipe nome As String piloto(1) As Variant pontuaçao As Variant finanças As Currency Motor As Variant chassi As Variant engenheiro As Variant End Type Type Motor nome As String custo As Currency potencia As Variant 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 Private Sub Main() xMotor(0).nome = "Mercedes" xMotor(0).potencia = 95 xMotor(0).custo = 12000 xMotor(1).nome = "Ferrari" xMotor(1).potencia = 100 xMotor(1).custo = 15000 xMotor(2).nome = "Renault" xMotor(2).potencia = 85 xMotor(2).custo = 10000 xMotor(3).nome = "Honda" xMotor(3).potencia = 80 xMotor(3).custo = 8000 xMotor(4).nome = "Toyota" xMotor(4).potencia = 70 xMotor(4).custo = 6000 xMotor(5).nome = "BMW" xMotor(5).potencia = 60 xMotor(5).custo = 4000 xMotor(6).nome = "Ford" xMotor(6).potencia = 45 xMotor(6).custo = 2000 xMotor(7).nome = "Supertec" xMotor(7).potencia = 30 xMotor(7).custo = 1000 xEquipe(0).nome = "McLaren" xEquipe(0).finanças = 20000 xEquipe(0).Motor = xMotor(0).nome xEquipe(1).nome = "Ferrari" xEquipe(1).finanças = 17000 xEquipe(1).Motor = xMotor(0).nome xEquipe(2).nome = "BMW" xEquipe(2).finanças = 15000 xEquipe(2).Motor = xMotor(0).nome xEquipe(3).nome = "Renault" xEquipe(3).finanças = 13000 xEquipe(3).Motor = xMotor(0).nome xEquipe(4).nome = "Williams" xEquipe(4).finanças = 10000 xEquipe(4).Motor = xMotor(0).nome xEquipe(5).nome = "RedBull" xEquipe(5).finanças = 8000 xEquipe(5).Motor = xMotor(0).nome xEquipe(6).nome = "Toyota" xEquipe(6).finanças = 6000 xEquipe(6).Motor = xMotor(0).nome xEquipe(7).nome = "Honda" xEquipe(7).finanças = 4000 xEquipe(7).Motor = xMotor(0).nome xEquipe(8).nome = "Toro Rosso" xEquipe(8).finanças = 3000 xEquipe(8).Motor = xMotor(0).nome xEquipe(9).nome = "Super Aguri" xEquipe(9).finanças = 2000 xEquipe(9).Motor = xMotor(0).nome xEquipe(10).nome = "Spyker" xEquipe(10).finanças = 1000 xEquipe(10).Motor = xMotor(0).nome xPiloto(0).nome = "Alonso" xPiloto(0).chance = 199 xPiloto(0).Equipe = xEquipe(0).nome xPiloto(1).nome = "Hamilton" xPiloto(1).chance = 200 xPiloto(1).Equipe = xEquipe(0).nome xPiloto(2).nome = "Massa" xPiloto(2).chance = 194 xPiloto(3).nome = "Raikkonen" xPiloto(3).chance = 195 xPiloto(4).nome = "Heidfield" xPiloto(4).chance = 93 xPiloto(5).nome = "Kubica" xPiloto(5).chance = 97 xPiloto(6).nome = "Fisichella" xPiloto(6).chance = 88 xPiloto(7).nome = "Kovalainen" xPiloto(7).chance = 72 xPiloto(8).nome = "Rosberg" xPiloto(8).chance = 75 xPiloto(9).nome = "Wurz" xPiloto(9).chance = 52 xPiloto(10).nome = "Coulthard" xPiloto(10).chance = 70 xPiloto(11).nome = "Webber" xPiloto(11).chance = 72 xPiloto(12).nome = "Schumacher" xPiloto(12).chance = 64 xPiloto(13).nome = "Trulli" xPiloto(13).chance = 55 xPiloto(14).nome = "Button" xPiloto(14).chance = 62 xPiloto(15).nome = "Barrichello" xPiloto(15).chance = 57 xPiloto(16).nome = "Liuzzi" xPiloto(16).chance = 59 xPiloto(17).nome = "Speed" xPiloto(17).chance = 28 xPiloto(18).nome = "Sato" xPiloto(18).chance = 32 xPiloto(19).nome = "Davidson" xPiloto(19).chance = 35 xPiloto(20).nome = "Sutil" xPiloto(20).chance = 30 xPiloto(21).nome = "Vettel" xPiloto(21).chance = 25 MenuInicial.Show End Sub
  24. Aaah, entendi! Vou tentar aqui, valeu! Edit: Ok, já vi seu edit
  25. Te passo sim, com certeza. Mas acho que ainda tá um pouco longe de ficar pronto. E se esse jogo for pra frente mesmo, eu achar que ficou legal e que da pra distribuir, seu nome vai pros créditos, já que praticamente fez o jogo também, e me ensinou a fazer o resto. hahahaha Se quiser ir vendo como ta por enquanto, embora ainda esteja bem idiota, só pedir. Por enquanto eu faço projects separados, como forma de testar o que vou aprendendo, e só depois aplicando no project central, que é o jogo. Quanto a pontuação dos pilotos, acho que ordenar é o menor problema. O problema é na hora de somar a pontuação dos pilotos mesmo, por que já que na corrida os valores de x(0), x(1), x(2), etc são mudados, eu não to conseguindo somar a pontuação dos dois mesmos pilotos sempre.
×
×
  • Criar Novo...