suzy Posted November 6, 2007 at 03:48 PM Report Share #145660 Posted November 6, 2007 at 03:48 PM 🙂 ora viva! tenho de simular um jogo de futebol em c++ ? a prof diz que e ara fazer um simulador, com campo e tudo ? metodo grafico. tenho uma guarda redes, defesas , atacantes. nunca fiz um trabalho assim. que materia hei-de estudar para fazer um jogo em c++? os guarda redes e defesas a atacantes, vao ser objectos?? tenho de ter 3 classes? uma para o guarda redes, outra para as defesas, e outro para os atacantes?? ? Link to comment Share on other sites More sharing options...
TheDark Posted November 6, 2007 at 07:27 PM Report Share #145716 Posted November 6, 2007 at 07:27 PM Aconselho-te a leres o Programação em C++ - Conceitos Básicos e Algoritmos, tem lá explicações básicas (mas muito boas) de como utilizar POO para construir jogos simples. Desaparecido. Link to comment Share on other sites More sharing options...
Warrior Posted November 6, 2007 at 10:22 PM Report Share #145762 Posted November 6, 2007 at 10:22 PM Isso é tão relativo.. Não deste informação quase nenhuma. Pode passar por um simples "trivial pursuit", em que os jogadores fazem um passe com sucesso quando uma pergunta é acertada, a um Football Manager, ou um jogo que consegues controlar os jogadores tipo Fifa. E depois depende se vais implementar a inteligência artificial deles ou não. Tudo se faz, mas dizer "um jogo de futebol com guarda redes, defesas , atacantes" é no mínimo limitado.. Link to comment Share on other sites More sharing options...
suzy Posted November 7, 2007 at 10:02 PM Author Report Share #146010 Posted November 7, 2007 at 10:02 PM :)mais uma vez:) eu colocava o enunciado, para voçes ter mais o menos um ideia, mas tem 3 paginas 😁 ora bem, os jogadores tem de jogar com uma bola, a bola vai ser uma classe? estão 2 equipas em campo, cada uma com 5 jogadores, supoe-se que a bola esta sempre na posse de um jogador. o campo faz a entrada das duas equipas,( o campo tem o mecanismo para as equipas entrarem em jogo), atribuindo um meio campo a cada uma. como faço isto??? relativamente a cada equipa, o campo e responsavel por responder a questões como " uma determinada posiçao está na grande area?", " na area de defesa? ou na área de ataque?? uma posição esta livre? o conceito de posiçao corresponde a um determinado lugar dentro do campo. ideias? Link to comment Share on other sites More sharing options...
suzy Posted November 7, 2007 at 10:10 PM Author Report Share #146012 Posted November 7, 2007 at 10:10 PM ja agora! como e que o campo sabe que o jogador tem a bola? ? Link to comment Share on other sites More sharing options...
TheDark Posted November 7, 2007 at 10:44 PM Report Share #146025 Posted November 7, 2007 at 10:44 PM os jogadores tem de jogar com uma bola, a bola vai ser uma classe? Neste momento, só consigo imaginar a bola como classe se tiveres que armazenar as suas coordenadas. Mesmo assim pode ser implementada dentro do campo, já que o campo só tem uma bola. Mas isto deve ser má ideia 😄 o campo faz a entrada das duas equipas,( o campo tem o mecanismo para as equipas entrarem em jogo), atribuindo um meio campo a cada uma. como faço isto??? rand()? Ou atribuis sempre a 1ª metade à 1ª equipa. Ou depende do que for pedido... relativamente a cada equipa, o campo e responsavel por responder a questões como " uma determinada posiçao está na grande area?", " na area de defesa? ou na área de ataque?? uma posição esta livre? o conceito de posiçao corresponde a um determinado lugar dentro do campo. ideias? Não sei como vais implementar o movimento dos jogadores, passes de bola, remates, etc, mas definires as áreas é só definires as coordenadas que pertencem a determinada área. Depois comparas a posição pretendida com as coordenadas de cada área. ja agora! como e que o campo sabe que o jogador tem a bola? ? Eu responderia assim: Um campo tem uma bola (ou não), e duas equipas; Cada equipa tem 5 jogadores; Se o campo tem que saber qual o jogador que tem a bola, pode ter um apontador para o jogador que tem a posse da bola. Ou a própria bola pode ter esse apontador. Por outro lado, podes ter nos jogadores um campo bool que diz se cada jogador está com a posse da bola (embora não faça muito sentido porque vai desperdiçar espaço em memória). Ainda assim não respondeste às questões do Warrior. Tens que fazer representação gráfica do jogo? Ou uma descrição textual? Ou o quê? Como funcionam os passes? Controlas algum jogador? Dizes mais geralmente se a equipa ataca ou defende? Etc, etc... Desaparecido. Link to comment Share on other sites More sharing options...
suzy Posted November 8, 2007 at 12:44 AM Author Report Share #146057 Posted November 8, 2007 at 12:44 AM aqui vai o trabalho 🙂 , Pretende-se um programa em C++ para fazer uma simulação de uma das partes de um jogo de futebol de 5. Esta simulação representa uma simplificação do um jogo real, podendo alguns pormenores (inclusive algumas regras) não corresponder à realidade. Os elementos principais do simulador são o campo, as equipas e os jogadores. O estado da simulação deverá ser representada no écran de uma forma simples e clara, de acordo com as regras detalhadas mais adiante. Recomenda-se fortemente uma representação como a da figura abaixo. O evoluir do jogo deve ser dependente do utilizador (por exemplo, a introdução de uma tecla), para que se possa acompanhar a simulação. Como o jogo é fictício, a parte do jogo termina quando o utilizador pretender. O campo tem dimensões e áreas demarcadas que variam dentro de limites que as regras desta modalidade determinam. Por exemplo, um campo inspirado nestas regras (numa versão mais simples) poderia ter dimensões 36mx20, balizas de 6m e as linhas da grande área serem paralelas à baliza, a uma distância de 6m. Benfica: 0 Porto: 0 P4 p2 b2 b4 b1 p1 b3 b5 p5 p3 Grande Grande Área de defesa do Benfica Área de defesa do Porto área do área do Benfica Porto Área de ataque do Porto Área de ataque do Benfica 6m 1 Elementos constituintes do simulador Os conceitos com que o simulador lida devem ser representados adequadamente através de classes. Cada classe deverá possuir os mecanismos necessários à interacção necessária ao funcionamento do jogo (por exemplo, o campo precisará de possuir métodos para lidar com as equipas ou de saber qual o jogador que tem a bola). Estão duas equipas em campo, cada uma com 5 jogadores. Supõe-se que a bola está sempre na posse de um jogador. Cada jogador é identificado por dois caracteres, uma letra que identifica o clube e um dígito que representa o seu número. Os jogadores sem bola são representados por uma letra minúscula e um dígito. A bola está na posse do jogador representado exteriormente por uma letra maiúscula e um dígito (esta alteração da representação externa não deve alterar a informação relativa à identificação contida no objecto). Na figura, quem tem a bola é o jogador do Porto, número 4. O campo tem o conhecimento de qual o jogador que tem a bola. O campo faz a entrada das duas equipas (por outras palavras, o campo tem o mecanismo para as equipas entrarem no jogo) atribuindo-lhes um meio campo a cada uma. Relativamente a cada equipa, o campo é responsável por responder a questões como “uma determinada posição está na grande área ?”, “na área de defesa ?” ou “na área de ataque ?”, “uma posição está livre ?”. O conceito de posição corresponde a uma determinado lugar dentro do campo. A simulação avança por turnos. Num turno, todos os jogadores (um de cada vez) fazem um deslocamento aleatório para uma posição adjacente (vagueiam) e jogam (sequencialmente) até a bola mudar de posição. O campo é o responsável pela executa do turno. Uma equipa tem o conhecimento do campo em que joga, o nome, o meio campo que lhe foi atribuído, o número de jogadores, os golos marcados e a colecção de jogadores. Tem as operações normais em relação à colecção de jogadores, como acrescentar, pesquisar. Quando entra em jogo, a equipa faz entrar em campo os seus jogadores (de acordo com o meio campo que lhe foi destinado). O desenrolar da simulação irá necessitar que a equipa possua métodos para: escolher o jogador da equipa mais próximo de uma dada posição, mais próximo de uma posição de entre os que estão mais adiantados, e o jogador mais próximo de uma posição de entre os que estão mais atrasados. Uma equipa deve conseguir obter a indicação de qual é a equipa adversária. Um jogador sabe a que equipa pertence (podendo assim determinar em que campo está, se precisar de informações do campo). Tem um número, uma identificação e uma posição. A identificação é uma string com uma letra minúscula representando o clube e o dígito que representa o número. A posição é constituída pelas coordenadas expressas em metros, representadas por um valor inteiro. Como sugestão, a origem das coordenadas poderia ser o centro do campo, tendo deste modo os dois meios campos representação simétrica o que pode simplificar a identificação das suas diferentes áreas. O número de um jogador dá indicação de qual a sua especialização. O número 1 é guarda-redes, os números 2 e 3 são defesas e os números 4 e 5 são atacantes. Um jogador entra em campo por ordem da sua equipa tendo para isso que pedir ao campo um lugar vago na área para onde deve ir (obviamente, o campo terá que possuir métodos para responder ao jogador). Um 2 jogador consegue, através do campo, saber qual o jogador que tem a bola e passar a bola a outro jogador. Consegue também, através da sua equipa, saber qual a equipa adversária. Um jogador é um conceito abstracto. Em concreto existem os guarda-redes, os defesas e os atacantes, que são jogadores com funções especializadas. Estes jogadores especializados diferem entre si no comportamento, em particular na forma de vaguear e de jogar. De seguida descrevem-se os jogadores especializados, que são os jogadores que irão efectivamente participar na simulação. Guarda-redes: − Entra em campo para a grande área correspondente ao seu meio campo; − Ao vaguear para uma posição livre adjacente não pode sair da sua grande área; − Joga quando tem a bola, passando-a com sucesso garantido para o jogador da sua equipa que estiver mais próximo. Defesa: − Entra em campo para a área de defesa correspondente ao seu meio campo; − Ao vaguear para uma posição livre adjacente não pode sair da sua área de defesa; − Joga quando tem a bola, tentando passá-la para o jogador da sua equipa que estiver mais próximo, de entre os que estão mais adiantados (mais perto da baliza do adversário). Tem probabilidade 0,6 de executar esta operação com sucesso. Em 40% dos casos faz um passe errado para o jogador da equipa adversária que estiver mais próximo, de entre os que estão mais perto da baliza do adversário. Atacante: − Entra em campo para a área de ataque correspondente ao seu meio campo; − Ao vaguear para uma posição livre adjacente não pode sair da sua área de ataque; − Quando tem a bola, se alguns jogadores da sua equipa estiverem mais próximo da baliza do adversário, escolhe de entre estes o mais próximo e passa-lhe a bola com sucesso. Se for o atacante mais adiantado da sua equipa, remata à baliza. Tem probabilidade 0,5 de fazer golo, ficando seguidamente a bola para o jogador número 3 da equipa que sofreu o golo. Em 50% dos casos faz um passe errado para o jogador da equipa adversária que estiver mais próximo, de entre os que estão mais perto da baliza do adversário. A simulação deve mostrar o rectângulo de jogo como mostra a figura com os jogadores colocados de acordo com as suas coordenadas, a indicação do jogador que tem a posse da bola através da inicial da sua identificação, mostrada como maiúscula, e os golos marcados por cada equipa. Após a apresentação deste rectângulo, é perguntado ao utilizador se pretende continuar a ver o jogo. Em caso afirmativo é apresentado o momento de jogo correspondente à nova posição da bola. Para apresentar o rectângulo de jogo, sugere-se uma matriz bidimensional de strings, inicializada com o campo sem jogadores. Percorrendo as colecções de jogadores das duas equipas, determinam-se os elementos da matriz a ser alterados. Link to comment Share on other sites More sharing options...
MROverclock Posted November 22, 2007 at 12:45 AM Report Share #149288 Posted November 22, 2007 at 12:45 AM suzy, faltam 3 dias para entregar o trabalho... como vai isso? eu estou arrasca!!! :s Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now