• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

jogo de futebol em c++

8 mensagens neste tópico

:) ora viva! tenho de simular um jogo de futebol em c++ :eek: a prof diz que e ara fazer um simulador, com campo e tudo :thumbdown: 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?? :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:)mais uma vez:)

eu colocava o enunciado, para voçes ter mais o menos um ideia, mas tem 3 paginas :cheesygrin:

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :D

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? :eek:

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

suzy, faltam 3 dias para entregar o trabalho... como vai isso? eu estou arrasca!!! :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora