Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

o0ONoaHO0o

Dúvidas no Jogo do Galo

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Editado por o0ONoaHO0o

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.