Jump to content
o0ONoaHO0o

Dúvidas no Jogo do Galo

Recommended Posts

o0ONoaHO0o

Boas pessoal, é o meu primeiro post aqui e já venho com duvidas. Continuando, eu tenho um trabalho a fazer em C# estou aqui com 2 problemas, 1º os submenus não retorna ao menu inicial, 2º problema não sei como fazer como fazer o seguinte:

1. Jogar

Ao iniciar o jogo os jogadores deverão preencher os seus nomes. Caso seja implementado a opção de jogar contra o Computador, o programa deverá pedir para selecionar o modo do jogo. No fim do jogo deve ser possível voltar a jogar com os mesmos intervenientes, iniciar com novos ou simplesmente sair da aplicação. Durante o jogo deve estar sempre visível a seguinte informação:

 O tabuleiro de jogo (feito)

 O nome e nível de maturidade dos jogadores ( O problema está aqui, tenho de guardar isto num .txt para futura consulta e utilizam destes dados, antes do inicio do jogo e nao sei como fazer :/ )

....

O submenu tem:

3. Rankings

a. Pontuação – Top 5

b. Geral

Rankings

Pontuação – apresenta a lista dos jogadores com as 5 melhores pontuações de cada nível de maturidade (opção a) ou o ranking global dos jogadores (opção b).

a. Níveis de maturidade do jogador:

i. Nível 1 - NEWBIE (< 10 pontos)

ii. Nível 2 - AVERAGE (10-20 pontos)

iii. Nível 3 - EXPERT (> 20 pontos)

b. Cálculo dos pontos:

i. Cada jogador começa por ter 0 pontos e não pode ter pontos negativos

ii. No fim de cada jogo o nível de pontos de cada jogador aumenta ou reduz, consoante ele ganhe ou perca, da seguinte forma:

1. Vitória/Derrota com adversário do mesmo nível: 1 ponto

2. Vitória com adversário de nível acima: diferença de níveis * 2

3. Vitória com adversário de nível abaixo: 1/(diferença de níveis * 2)

4. Derrota com adversário de nível acima: 1/(diferença de níveis * 2)

5. Derrota com adversário de nível abaixo: diferença de níveis * 2

c. Persistência dos dados:

Deve ser utilizado um ficheiro para guardar o registo das pontuações dos jogadores. O ficheiro deve ter as seguintes características:

i. Nome: pontuacoes.txt

ii. Formato: código;nome;nºjogos;pontuação

iii. Exemplo da estrutura do ficheiro de texto:

0001;mbastos;12;34

0002;maria;45;123

0003;rafaelSilva;11;74 …

Os pontos a) e b) sei como fazer mas não sei como associar a um ficheiro como .txt.

O que eu fiz está aqui:

http://pastebin.com/3qxKNdew

Se me poderem ajudar com isto agradecia.

Cumps

Share this post


Link to post
Share on other sites
thoga31

Para a questão de voltar ao menu, em vez de utilizares o Default na estrutura Switch, coloca o próprio texto do menu dentro do While. Assim, se for seleccionada a opção 1, 2 ou 3, no fim da sua execução o menu volta a ser apresentado.


Knowledge is free!

Share this post


Link to post
Share on other sites
thoga31

Fiz isso, volta ao menu, mas não permite voltar a escolher uma das opções :/

Como assim? O que é que o programa faz que não permite escolher?


Knowledge is free!

Share this post


Link to post
Share on other sites
o0ONoaHO0o

O programa volta ao menu principal, com o método que disseste, mas o comando que redirecciona do menu inicial para os outros, não dá após voltar ao menu principal

Share this post


Link to post
Share on other sites
o0ONoaHO0o


case "2":
					{
						Console.WriteLine("1) Top 5");
						Console.WriteLine("2) Geral");
						Console.WriteLine("3) Voltar");
						Console.WriteLine("Introduza a opção pretendida: ");
						GlobalVars.opcao1 = Console.ReadLine();

						while (GlobalVars.opcao1 != "3")
						{
							switch (GlobalVars.opcao1)
							{
								case "1":
								{
									Console.WriteLine("Em Desenvolvimento");
									Console.ReadKey();
								}
								break;

								case "2":
								{
									Console.WriteLine("Em Desenvolvimento");
									Console.ReadKey();
								break;
								}
							}


							Console.Clear();
							cabecalho();
							Console.WriteLine();
							Console.WriteLine("1 - Começar novo jogo");
							Console.WriteLine("2 - Rankings");
							Console.WriteLine("3 - Configurações");
							Console.WriteLine("4 - Sair do Programa");
							Console.WriteLine("Introduza a opção pretendida: ");
							GlobalVars.opcao = Console.ReadLine();
						}
					}
					break;

Ficou assim, na consola ao carregar 3 após o "Introduza a opção pretendida:" Volta a apresentar o mesmo menu, pondo algo diferente de 1,2 ou 3, Apaga tudo e volta a apresentar o menu principal, Mas inserindo qualquer numero após o "Introduza a opção pretendida:" no menu principal não realiza acção nenhuma.

Edited by apocsantos
geshi

Share this post


Link to post
Share on other sites
apocsantos

Boa noite,

Pode ser uma questão de limpeza do buffer de teclado. Experimenta com o Console.ReadLine()


//Dó sustenido rocks!
case "2":
					{
						Console.WriteLine("1) Top 5");
						Console.WriteLine("2) Geral");
						Console.WriteLine("3) Voltar");
						Console.WriteLine("Introduza a opção pretendida: ");
						GlobalVars.opcao1 = Console.ReadLine();
						while (GlobalVars.opcao1 != "3")
						{
							switch (GlobalVars.opcao1)
							{
								case "1":
								{
									Console.WriteLine("Em Desenvolvimento");
									Console.ReadLine(); //ler linha
								    break;
								}
								case "2":
								{
									Console.WriteLine("Em Desenvolvimento");
									Console.ReadLine(); //ler linha
								    break;
								}
							}

							Console.Clear();
							cabecalho();
							Console.WriteLine();
							Console.WriteLine("1 - Começar novo jogo");
							Console.WriteLine("2 - Rankings");
							Console.WriteLine("3 - Configurações");
							Console.WriteLine("4 - Sair do Programa");
							Console.WriteLine("Introduza a opção pretendida: ");
							GlobalVars.opcao = Console.ReadLine();
						}
					}
					break;

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
apocsantos

Boa tarde,

O código que disponibilizas-te está imcompleto. Além disso o bug de que te queixas-te foi "3 após o "Introduza a opção pretendida:" Volta a apresentar o mesmo menu, pondo algo diferente de 1,2 ou 3, Apaga tudo e volta a apresentar o menu principal, Mas inserindo qualquer numero após o "Introduza a opção pretendida:" no menu principal não realiza acção nenhuma." , o que me levou a pensar que fosse uma questão relacionada com o buffer de teclado, que seria lógico neste caso, pois estavas a ler qualquer tecla.

A alteração que fiz, foi para testares e verificares que erro dava em concreto ou se o comportamento se mantinha. Sem o código, e sem testar, é mais dificil saber o que está a acontecer, com a tua aplicação.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
o0ONoaHO0o

Antes demais não quero parecer mal agradecido, assim sendo agradeço desde já o apoio prestado por todos que me têm respondido a este tópico.

Continuando apocsantos no início do tópico tem um link para o pastebin com o código completo, mas vou voltar a colocar aqui:

http://pastebin.com/3qxKNdew

Edited by o0ONoaHO0o

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


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