Jump to content

jogo de futebol em c++


suzy

Recommended Posts

ūüôā 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

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

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

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

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

  • 2 weeks later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.