1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Algoritmo em C (tipo elifoot... sim, o classico ^^)

Discussão em 'Programação' iniciada por CrazyBomber, 19 de Abril de 2004. (Respostas: 11; Visualizações: 4726)

  1. CrazyBomber

    CrazyBomber Power Member

    Boas.
    Assim de repente veio me a cabeça a ideia de recriar de algum modo o velhinho (mas sempre eterno) elifoot2. Então, para além de menu's e cenas do genero, uma das q tou a tentar fazer eh o algoritmo para calcular o resultado dos jogos (minuto a minuto).
    A cena eh fazer um algoritmo "justo", que nao provoque exageros no resultado. O que fiz, foi um que basicamente gerava resultados tipo 24-8 para equipas com uma diferença de "força" (no ataque, meio-campo e defesa) de apenas 5 valores (de 0 a 50) 8o
    E como eh algo linear (random... mais pseudo-random) os resultados nunca variam muito (20-5, 22-8, 21-9, etc).
    Por acaso nenhum de vcs ja fez alguma experiencia do genero, ou poderia de alguma forma ajudar me nisto? mesmo umas pekenas dicas podem ajudar bastante :)
    Afinal, a minha experiencia em programar jogos de raiz deixa mt a desejar... :rolleyes:
    Ah, se kiserem q eu meta aki codigo q fiz, tb eh na boa...

    [[]]'s
     
  2. ownado

    ownado Power Member

    podias dizer-me como é que fizeste +/- o programa para eu ter uma pequena noção de como se faz? é que eu tambem queria criar um tipo elifoot para um projecto na escola :lol:

    se podesses dizer-me agradecia ;)
     
  3. CrazyBomber

    CrazyBomber Power Member

    Wow, isto já tem uns anos :)
    Acho que na altura resolvi aquilo com uma "roda das probabilidades".

    Em cada minuto havia uma dada probabilidade de não passar nada, ou uma das equipas marcar golo.
    Assim de forma básica era isso. Claro que para calcular as probabilidades levava em conta a "força" das equipas.

    Acho que metia mais coisas ao barulho, mas já não me lembro bem. Depois isso é fazeres por tentativas, ver o que resulta, ou não.

    Lembro-me que na altura saiu-me um algoritmo muito equilibrado, modéstia à parte :D

    EDIT:
    Ok como é que houve 1387 views a esta thread e nenhum reply?! 0_o
     
    Última edição: 2 de Outubro de 2007
  4. CoolMaster

    CoolMaster Power Member

    Eu já fiz algo do genero em 2004 para ai. Basicamente tinhas equipas com diferentes niveis de jogadores (0-9, salvo erro),
    depois havia a força total da equipa que era a soma da técnica de todos os jogadores.
    Metia montes de probabilidades a mistura, primeiro a equipa que tivesse mais força tinha maior
    probabilidade de atacar, depois nesse ataque haviam mais probabilidades a mistura com a defesa
    e o ataque de cada equipa, se a equipa que ataca ganhasse a hipotese do remate então era seleccionado
    um jogador a sorte para rematar e a probabilidade do golo era baseada na força desse jogador
    com a do guarda-redes... e pronto, os resultados eram justos e até estava mais ou menos.
    É claro que podia ter misturado mais coisas ao barulho, fica sempre bem. É uma coisa simples.
     
  5. ownado

    ownado Power Member

    mas não consegues arranjar tipo um exemplo desse algoritmo para ver como se faz? :D
     
  6. CoolMaster

    CoolMaster Power Member

    Perdi-o.. lol...

    Aquilo foi um trabalho para a escola em que fiz um simulador de futebol em VB6.. como detesto vb acabei por nem sequer fazer backup do trabalho nem sequer disponibiliza-lo a outros, resultado.. perdi-o! Talvez um colega ainda o tenha, é uma questao de procurar. Mas olha é uma cena bastante simples.
     
  7. ownado

    ownado Power Member

    hummm ok obrigado na mesma... vou tentar ,novamente, encontrar algo na net
    obrigado na mesma :001:
     
  8. o logaritmo n deve ser complicado.

    ora bem a cena das probabilidades e boa ideia, mas também tens de ver a força da equipa no ataque meio campo e defesa
    para assim se organizar as tacticas de jogo 3-5-2 ou 4-4-2 etc etc

    basicamente tes 3 probabilidades.
    primeiro:
    probabilidade da bola ficar no meio campo ou passar para o ataque de uma das equipas.
    segundo:
    se a bola passou para o ataque, entao faz-se a probabilidade da força total dos avançados marcarem golo ou perderem a bola e ela fica ou volta para o meio campo.
    terceiro
    a probabilidade de quem vai marcar golo se este houver. pode ser um medio defesa ou avançado.
    entao junto com os avançados podes por sempre um ou dois jogadores random que sobem no terreno dependendo da tactica. aqui a força sera medida somatorio dos avançados mais jogador extra contra o somatorio da defesa mais o guarda redes e a probabilidade de n acontecer nada (que normalemnte e mais alta do que as outras).

    ah e a força do jogador tens de por 4 caracteristicas defesa, meio campo avançado e guarda redes.
    senao qq um pode ser qq coisa, podendo assim viciar bastante o jogo.
     
  9. ShadeX

    ShadeX Power Member

    O melhor que tens a fazer é não ir para simplismos. Controi a simulação tão bem quanto possas.

    Começa por ver o campo como uma grelha (se bem que grandinha...). Tudo o que existe em campo está algures nessa grelha. Ocasionalmente podes até ter várias coisas a ocupar o mesmo espaço (as grandes molhadas do futebol :) ).

    A partir dai simula a realidade. A bola rola pelo campo, os jogadores decidem o que fazer baseados na sua percepção de si, da bola, do adversário, da táctica.

    Se quiseres uma coisa mais elaborada, usa um "energy system" que funciona como um temporizador. Cada jogador tem uma velocidade x que determina um contador. Quando o contador excede um threshold ele efectua uma acção. Jogadores mais rápidos têm mais hipoteses de executar acções. No entanto (hipoteticamente...) cansam-se mais e eventualmente tornam-se mais lentos que um jogador mais lento com mais endurance. É semi realista e aceitável.
     
  10. ownado

    ownado Power Member

    obrigado pelas ajudas
    mas mesmo assim ainda não perceberam bem bem aonde eu quero chegar :lol:

    eu só tenho 2 anos de programação em c++ e não estou muito avançado (só agora é que comecei a aprender a fazer ponteiros) e o que queria era um exemplo de um algoritmo para eu ver se é ou não muito complicado fazer :D
     
  11. HecKel

    HecKel The WORM

    Um exemplo de algoritmo? Jovem, estás a pedir um programa inteiro como exemplo, não um algoritmo...

    E sim, não é trivial. Tens de trabalhar um bocado para fazeres isso, isso se quiseres com as mariquices todas, se for apenas ir marcando golos basta aplicares uma formula matemática qualquer ao teu critério que relacione várias variáveis (força dos jogadores e afins) e brincares um pouco com isto.

    Recomendação: Estrutura no papel primeiro, se te assustares neste passo, é porque é demais para ti, senão, prossegue.
     
  12. ShadeX

    ShadeX Power Member

    Exacto. É basicamente irrelevante qual a linguagem que usas e a que nível. Se não conseguires formular o design no papel nunca vais ter nada de jeito.
     

Partilhar esta Página