Ir para conteúdo
Entre para seguir isso  
doom_master

Tópico da Programação

Publicações recomendadas

Acerca daquela coisa do jogo que falei.

 

Estive a pensar como seriam as simulações de um jogo de futebol, acho que neste momento o melhor era fazer tudo em base de cálculos e coisas do género e carregar para fazer o jogo e dar-nos logo o resultado no fim ou ao intervalo ou por partes do jogo, por exemplo atualizar o resultado de 15 em 15 minutos e com isso atualizar também as diferentes variantes que iriam colocar no jogo.

 

Então era assim:

Uma equipa tinha a sua média que era calculada com a média de cada jogar.

Imaginemos que a média era de 100pts.

Na parte da simulação do jogo iriam entrar a parte tática, Moral e Energia.

Então imaginemos que a tática da equipa não era lá muito compatível com os jogadores e estava a um valor de 50%.

Então o valor nesta primeira fase da equipa ficava a 50pts.

Depois a moral estava razoável e situava-se também nos 50% e o valor da equipa descia para os 25pts.

O Cansaço não era muito e a energia estava a 100%, e o valor final ficava a 25pts.

Ou seja esta equipa iria para o jogo com 25pts no seu final.

 

Calculávamos o mesmo para o computador, o valor tático estava relacionado com o treinador que estava lá, a moral começava com um valor razoável e a cada jogo iria ser ajustada com o que tinha acontecido, e a energia dependia dos dias de descanso e coisas assim...

 

Acham que isto no fim dava para tornar isto mais competitivo ou esta forma de pensar não daria resultado e era muito chata?

 

 

Depois o resultado podia depender da diferença dos resultados entre cada equipa, também podia inserir outros fatores como pressão, se joga em casa/fora, se os adeptos são muito apoiantes ou se serão mais calmos, coisas assim do género.

Na altura pensei no algoritmo que faria para o jogo, o que pensei foi (e quero créditos se usares! :mrgreen: )

 

Um jogo tem 48 minutos, ou unidades de tempo. Dividias o jogo em blocos de 24 segundos (shot clock). Por cada bloco, fazias um cálculo, qualidade da equipa A + instruções (ofensivo, defensivo, o que quiseres aplicar) vs qualidade da equipa B + instruções e daria um resultado para esse bloco, 2, 3 ou 0 pontos. A probabilidade de ser 3 pontos aumentaria ou diminuiria dependendo dos atributos dos jogadores da equipa ofensiva. Se fosse 0 pontos podias fazer tipo 80-20% de hipótese de a equipa recuperar a bola e repetir novo bloco de 24 (essas percentagens mudariam dependendo dos atributos também). E por aí fora. A cada bloco de de 24 segundos dava um resultado e adicionavas ao resultado até ficares sem tempo (tiravas os 24 segundos aos 48 minutos a cada jogada até chegar ao 0). A partir daí afinavas o algoritmo até que desse resultados credíveis. Era por aí que eu ia sinceramente. Depois podias começar a meter mais detalhes, tipo os blocos não terem todos 24 segundos (dependendo da velocidade que davas como instrução às equipas), arranjavas forma de depois meter ocasiões de falta e lances livres (jogadas em que podia haver só 1 ponto portanto) e por aí fora.

 

Se quiseres ajuda, opiniões, manda MP que é um projecto que não me importava nada de participar.

Compartilhar este post


Link para o post

Como tenho como objetivo seguir Engenharia Informática convinha começar já aprender as bases da programação ? Se sim, o que recomendam, alguem aqui conhece o site: Code Academy? :compinchas:

Vou começar pelo site CodeAcademy, que linguagem aconselham a começar a aprender ? :compinchas:

Compartilhar este post


Link para o post

Botão direito no projecto (no solution explorer à direita) e propriedades. No ecrã que aparece (igual ao da imagem) no output type, escolhes window application ou algo do género, pelo nome deves lá chegar.

 

Multitargeting%20-%20Project%20Properties%20-%20small%5B2%5D.png

 

Isso vai-te criar um executável na pasta do projecto.

Editado por NIkeL

Compartilhar este post


Link para o post

Python.

Porquê já agora?

Aqui na minha universidade os meus professores só nos dão PHP, não sei se é por acharem melhor ou se é por ser a única que sabem. :mrgreen:

Compartilhar este post


Link para o post

Porquê já agora?

Aqui na minha universidade os meus professores só nos dão PHP, não sei se é por acharem melhor ou se é por ser a única que sabem. :mrgreen:

 

É simples e intuitivo, e por isso uma excelente forma de aprender as cenas básicas de programação como ciclos, listas e essas tretas todas na minha opinião. Ah e obriga-te a identar para conseguires compilar, o que te vai criar boas rotinas (em princípio claro).

 

E não tens de trabalhar com apontadores e isso, no meu caso a minha primeira linguagem foi C e olhando para trás e sabendo python, tinha muito a ganhar em ter tido primeiro a 2ª. Aliás, no IST já mudaram em Informática e já meteram Python como primeira acho eu (apesar de eu não ser de informática mas o user que pediu o conselho está interessado nisso).

 

O paradigma de PHP é diferente, não se pode comparar muito com python.

Editado por Kratosthegod

Compartilhar este post


Link para o post

Isso dos ponteiros, até acho que é bom aprenderes isso logo de início. É complicado, sim, mas ficas logo com um conhecimento de algo que pode ser útil quando tens de gerir memória.

 

Cá em Aveiro começamos com Java, depois é que passamos para C e ponteiros é das maiores dificuldades que o pessoal tem nessa passagem.

Compartilhar este post


Link para o post

Obrigado pela resposta Kratos :compinchas:

Tenho medo de quando sair da Univ, me peçam algo além do PHP e eu me veja um bocado á nora :mrgreen:

Compartilhar este post


Link para o post

Isso dos ponteiros, até acho que é bom aprenderes isso logo de início. É complicado, sim, mas ficas logo com um conhecimento de algo que pode ser útil quando tens de gerir memória.

 

Cá em Aveiro começamos com Java, depois é que passamos para C e ponteiros é das maiores dificuldades que o pessoal tem nessa passagem.

 

Como cadeira inicial não sei, começámos a dar ponteiros após um mês de aulas, para quem teve contacto com programação na primeira vez... acho muita coisa de uma vez para assimilar. E depois o projeto era à volta de listas, o que para meter a funcionar bem, é preciso saber muito bem apontadores. E não tive nenhuma cadeira de fundamentos ou lógica de programação ou algoritimia nem nada disso.

 

Mas anyway, o gajo ainda está no secundario pelo que percebi, python até tem a sintaxe mais básica, para ele é mesmo o melhor. Quando tive Java já foi no mestrado, e até achei OOP intuitivo, mas começar com OOP deve ser estranho, digo eu, mas não vejo assim grande mal em se começar por aí, apesar de não achar o mais indicado.

Compartilhar este post


Link para o post

É simples e intuitivo, e por isso uma excelente forma de aprender as cenas básicas de programação como ciclos, listas e essas tretas todas na minha opinião. Ah e obriga-te a identar para conseguires compilar, o que te vai criar boas rotinas (em princípio claro).

 

E não tens de trabalhar com apontadores e isso, no meu caso a minha primeira linguagem foi C e olhando para trás e sabendo python, tinha muito a ganhar em ter tido primeiro a 2ª. Aliás, no IST já mudaram em Informática e já meteram Python como primeira acho eu (apesar de eu não ser de informática mas o user que pediu o conselho está interessado nisso).

 

O paradigma de PHP é diferente, não se pode comparar muito com python.

Confere, antes a primeira linguagem era Scheme, mudaram recentemente (menos de 4 anos) para Python.

Compartilhar este post


Link para o post

Aqui começa-se com Portugol :mrgreen:

 

Mas também não é informática, 95% dos alunos não vai programar.

Compartilhar este post


Link para o post

Ah ya, já nem me lembrava que vocês começavam com Scheme, tipo wtf :lol:

 

Na FEUP também era assim, agora já não sei se continua.

 

EDIT: Pelos vistos ainda usam Scheme na 1ª cadeira de programação.

Editado por JackBauerPT

Compartilhar este post


Link para o post

Boas, podem dar-me uma ajuda aqui??? O objetivo e fazer um programa que a seguir ao ponto final e ao espaço correspondente começar com letra maiuscula, mas apenas a primeira letra. por exemplo: 'ola. eu sou o joao.' -> 'ola. Eu sou o joao.'

 

def ponto(texto):

nova=''

 

l=len(texto)

for i in range(0,l):

nova+=texto

if texto=='.':

nova=nova+texto[i+2].upper()

 

return nova

 

o meu output dá string index out of range... ja tentei de varias formas mas nao consigo sair daqui

Editado por Rajnack

Compartilhar este post


Link para o post

def ponto(texto):

nova=''

 

l=len(texto)

 

 

for i in range(0,l):

nova+=texto

if texto=='.':

if i+2>l:

break

else:

a=texto[i+2].upper()

nova+=' '+ a

 

return nova

 

 

agora tenho assim e o output dá: 'ola. E eu sou o joao.'

so falta fazer com que em vez de escrever um 'E' naquele sitio, escreva o 'E' no lugar do 'e'

Editado por Rajnack

Compartilhar este post


Link para o post

Isso sem estar identado como no editor é mais lixado perceber :mrgreen:

 

O erro está na lógica. Tu metes logo a letra quando verificas que tem um "." antes. Ou seja, quando verificas que é o ".", metes a letra seguinte grande. Tudo bem, mas depois continuas o ciclo normalmente, e ele vai percorrer o espaço e o "e" do eu novamente no ciclo, e segundo a 1ª instrução metes de novo.

Compartilhar este post


Link para o post

Isso sem estar identado como no editor é mais lixado perceber :mrgreen:

 

O erro está na lógica. Tu metes logo a letra quando verificas que tem um "." antes. Ou seja, quando verificas que é o ".", metes a letra seguinte grande. Tudo bem, mas depois continuas o ciclo normalmente, e ele vai percorrer o espaço e o "e" do eu novamente no ciclo, e segundo a 1ª instrução metes de novo.

eu ja tinha percebido isso... so que nao consigo emendar :compinchas:

Compartilhar este post


Link para o post

Sem estar a pensar muito:

 

If caracter = último, meter caracter e retornar nova

elseif caracter = ".", fazer essa bodega

else meter caracter normalmente.

Compartilhar este post


Link para o post

def ponto(texto):
   l=len(texto)
   nova=[]
   for i in range(0,l):
       nova.append(texto[i])
   cont=0
   for i in range(0,l):
       if nova[i]=='.':
           cont=cont+1
           if cont<=1:
               nova[i+2]=nova[i+2].upper()
   nova=''.join(nova)
   return nova

Corrigi-te isso, assim funciona (sendo que apenas coloca em letra maiúscula a primeira letra depois do primeiro ponto, independentemente dos pontos que haja na frase). Se não perceberes alguma coisa, diz e eu explico.

 

O problema no teu código era isto:

 

TypeError: 'str' object does not support item assignment

Provavelmente haverá formas mais eficientes de obter o mesmo resultado, mas funciona. :mrgreen:

Editado por Ghelthon

Compartilhar este post


Link para o post

def ponto(texto):
   l=len(texto)
   nova=[]
   for i in range(0,l):
       nova.append(texto[i])
   cont=0
   for i in range(0,l):
       if nova[i]=='.':
           cont=cont+1
           if cont<=1:
               nova[i+2]=nova[i+2].upper()
   nova=''.join(nova)
   return nova

Corrigi-te isso, assim funciona (sendo que apenas coloca em letra maiúscula a primeira letra depois do primeiro ponto, independentemente dos pontos que haja na frase). Se não perceberes alguma coisa, diz e eu explico.

 

O problema no teu código era isto:

 

 

Provavelmente haverá formas mais eficientes de obter o mesmo resultado, mas funciona. :mrgreen:

eu percebi tudo o que tu ai tens... o problema é que no teste em que saiu esta pergunta nao é suposto usar listas pq elas nao saiam para o teste

Compartilhar este post


Link para o post

Ah, então aí o caso muda de figura. :mrgreen:

 

Por exemplo, se fizeres isto:

 

str='casa'

E depois isto:

 

str[3]='o'

Ou seja, para ficar 'caso' em vez de 'casa', vai dar um erro:

 

TypeError: 'str' object does not support item assignment

Assim de repente não me lembro de outra forma de fazer isso.

 

E o mesmo se aplica para:

 

str[3]=str[3].upper()

Vais ter o mesmo erro.

Editado por Ghelthon

Compartilhar este post


Link para o post

Crie uma conta ou entre para comentar

Você precisa de ser membro desta comunidade para poder comentar

Criar uma conta

Registe-se na nossa comunidade. É fácil!

Criar nova conta

Entrar

Já tem uma conta? Faça o login.

Autentique-se agora
Entre para seguir isso  

×
×
  • Criar Novo...