Erro em throw new NotImplementedException();
13/01/2018
0
Estou realizando um projeto que nele eu tenho que desenvolver uma aplicação que simule o sorteio da mega sena, e a aplicação deverá permitir que o usuário possa cadastrar as apostas e sorteios e consultar o numero de acertos dessas apostas realizadas, e cadastrar aposta do tipo surpresinha também.
Comecei a fazer esse projeto no console application porém, ao executar o meu código, o mesmo não funcionou, pois estou fazendo em partes. Alguém poderia me dá uma luz rsrs, um norte para saber aonde estou errando. Pois ao executar somente é apresentado a tela do prompt com os números randômicos na tela, já as demais informações não apresenta na tela. Porém apresenta erro na linha throw new NotImplementedException();
Segue o código:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MegaDemo
{
class Program
{
public static int NUMERO_DEZENAS = 6;
private static int[] SorteaSena()
{
int[] dezenas = new int[6];
Random numero = new Random();
for (int i = 0; i < 6; i++)
{
dezenas[i] = numero.Next(1, 60);
}
return dezenas;
}
public static void Main(String[] args)
{
TextReader teclado = System.Console.In;
int[] sorteio = SorteaSena();
int[] aposta = new int[NUMERO_DEZENAS];
//PROCESSANDO A APOSTA
Console.WriteLine("Realize sua aposta: ");
for (int i = 0; i < NUMERO_DEZENAS; i++)
{
int numAposta;
Boolean repetido = false;
do
{
Console.WriteLine($"Informe a dezena: {(i + 1)}");
numAposta = teclado.Read();
if (numAposta <= 0)
{
Console.WriteLine("Número Invalido, aposta recusada!");
return;
}
repetido = ExisteNumero(aposta, numAposta);
if (repetido)
{
Console.WriteLine("Existem números repetidos!");
}
}
while (repetido); //evita repetições de numeros
aposta[i] = numAposta;
}
Console.WriteLine("Confire por favor a sua aposta: ");
for (int i = 0; i < aposta.Length; i++)
{
Console.WriteLine(aposta[i] + " ");
}
Console.WriteLine("Resultado do Sorteio: ");
for (int i = 0; i < sorteio.Length; i++)
{
Console.WriteLine(sorteio[i] + " ");
}
int numAcertos = ContaAcertos(sorteio, aposta);
Console.WriteLine("O numero de acertos foram: " + numAcertos);
switch (numAcertos)
{
case 4:
Console.WriteLine("Parabéns! Você acabou de acertar a quadra.");
break;
case 5:
Console.WriteLine("Parabéns! Você acabou de acertar a quina.");
break;
case 6:
Console.WriteLine("Parabéns! Você acabou de acertar a sena.");
break;
default:
Console.WriteLine("Infelizmente você não ganhou! Tente novamente.");
break;
}
}
private static bool ExisteNumero(int[] aposta, int numAposta)
{
throw new NotImplementedException();
}
private static int ContaAcertos(int[] sorteio, int[] aposta)
{
throw new NotImplementedException();
}
//Função retorna uma array com 6 números gerados randomicamente, sem duplicidade, representando o sorteio da megasena.
static void Megasena(int min, int max)
{
Random numero = new Random();
for (int i = 0; i < 6; i++)
{
Console.WriteLine(numero.Next(min, max));
}
Console.ReadLine();
}
}
}
Robson Amaral
Post mais votado
13/01/2018
int numAcertos = ContaAcertos(sorteio, aposta);
E
repetido = ExisteNumero(aposta, numAposta);
Porém não está implementado, a única coisa que eles fazem é lançar a exception dizendo que não está implementado. :)
Precisa implementá-los. :)
Wilson Neto
Mais Posts
13/01/2018
Robson Amaral
segue o código.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Teste
{
class Program
{
public class Megasena
{
}
static void Main(string[] args)
{
//Aposta do usuário
int[] aposta = new int[6];
int[] sorteio = new int[6];
int certos = 0;
int op = 0;
int somaacertos = 0;
Random rnd = new Random();
do
{
Console.Clear();
int numero = rnd.Next(1, 1000);
//Capturar hora
string hora = DateTime.Now.ToShortTimeString();
//Capturar data
string data = DateTime.Now.ToShortDateString();
//Exibindo modo console
Console.Write("Sorteio número: ", numero);
Console.WriteLine("Data: " + data + " Hora: " + hora);
Console.WriteLine("Número de acertos ", somaacertos);
Console.WriteLine("-----------------");
Console.WriteLine("----Mega Sena---- ");
Console.WriteLine("-----------------");
Console.WriteLine("[1] Jogar ");
Console.WriteLine("[2] Sair");
Console.WriteLine("[3] Resultado");
Console.WriteLine();
Console.WriteLine("Escolha a opção");
op = Convert.ToInt32(Console.ReadLine());
switch (op)
{
case 1:
for (int i = 0; i < aposta.Length; i++)
{
Console.WriteLine("Realize sua aposta, digitando o numero.");
Console.Write("Digite sua aposta: ");
aposta[i] = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine();
Console.WriteLine("Números apostados");
Console.WriteLine();
Array.Sort(aposta);
Array.Reverse(aposta);
for (int i = 0; i < aposta.Length; i++)
{
Console.Write(" ", aposta[i]);
}
for (int i = 0; i < sorteio.Length; i++)
{
sorteio[i] = rnd.Next(1, 5);
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Números sorteados");
Console.WriteLine();
Array.Sort(sorteio);
Array.Reverse(sorteio);
for (int i = 0; i < sorteio.Length; i++)
{
Console.Write(" ", sorteio[i]);
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
for (int i = 0; i < aposta.Length; i++)
{
if (aposta[i] == sorteio[0] || aposta[i] == sorteio[1] || aposta[i] == sorteio[2] || aposta[i] == sorteio[3] || aposta[i] == sorteio[4] || aposta[i] == sorteio[5])
{
certos++;
Console.WriteLine("Você acertou o número: ", aposta[i]);
}
if (certos == 0)
Console.WriteLine("Nenhum Acerto");
}
Console.WriteLine();
switch (certos)
{
case 4: Console.WriteLine("Parabéns! Você acabou de acertar a quadra."); break;
case 5: Console.WriteLine("Parabéns! Você acabou de acertar a quina."); break;
case 6: Console.WriteLine("Parabéns! Você acabou de acertar a sena."); break;
default: Console.WriteLine("Infelizmente você não ganhou! Tente novamente."); break;
}
somaacertos += certos;
Console.ReadKey();
break;
default:
Console.Clear();
Console.WriteLine();
Console.WriteLine("Saindo do programa");
break;
}
} while (op != 2);
}
}
}
14/01/2018
Wilson Neto
static void Main(string[] args) { Console.WriteLine("Start"); Random RandonNumbers = new Random(); int[] MyNumbers = new int[6]; for ( int i = 0; i < 6; i++ ) { var number = RandonNumbers.Next(1, 10); //Aqui a probabilidade de pegar repetidos é grande, fácil de testar :) //Verifica se já contém o numero no Array MyNumbers. //using System.Linq; <- Adicione esse Namespace caso não tenha adicionado ainda :) if ( !MyNumbers.Contains(number) ) { MyNumbers[i] = number; } else { //Coloquei só para poder exibir quais repitiram Console.WriteLine($"Number already exist!"); //Decrementa (i--) i para poder pegar um novo valor i--; } } Array.Sort(MyNumbers); //Apenas listando :) foreach ( var numbers in MyNumbers ) { Console.WriteLine($"Numbers -> "); } Console.ReadKey(); }
:)
14/01/2018
Robson Amaral
14/01/2018
Wilson Neto
<br />
Eu fiz num Console Application separado.<br />
...porém eu não estou conseguindo fazer com que o sistema passa a gerar os numeros sorteados randomicamente sem que eles se repetem...<br />
<br />
Com base no que comentou acima, eu acreditei que fosse nesse bloco abaixo (ou qualquer ponto que tenha um .Next(min, max) ).<br />
<br />
<br /> for (int i = 0; i < sorteio.Length; i++)<br /> {<br /> sorteio[i] = rnd.Next(1, 5);<br /> <br /> }<br />
<br />
O Highlight do que eu faria está nessa bloco:<br />
<br />
<br /> <br /> if ( !MyNumbers.Contains(number) )<br /> {<br /> MyNumbers[i] = number;<br /> }<br /> else<br /> {<br /> //Coloquei só para poder exibir quais repitiram<br /> Console.WriteLine($"Number already exist!");<br /> <br /> //Decrementa (i--) i para poder pegar um novo valor <br /> i--;<br /> }<br /> <br />
<br />
Substituindo ficaria assim:<br />
<br />
<br /> for ( int i = 0; i < sorteio.Length; i++ )<br /> {<br /> //sorteio[i] = rnd.Next(1, 5);<br /> int sorteado = rnd.Next(1, 5);<br /> if ( !sorteio.Contains(sorteado) )<br /> {<br /> sorteio[ i ] = sorteado;<br /> }<br /> else<br /> {<br /> //Coloquei só para poder exibir quais repitiram<br /> Console.WriteLine($"Sortado já existe!"); //Linha pode ser omitida :)<br /> <br /> //Decrementa (i--) i para poder pegar um novo valor <br /> i--;<br /> }<br /> }<br />
<br />
<br />
(O anterior se colocar num console application e substituir todo o conteúdo do "static void Main(string[] args)" e adicionar o namespace system.Linq, deveria funcionar. Eu fiz no Console App .Net Core, mas não daria pra usar no Framework tranquilo :) )<br />
<br />
<br />
14/01/2018
Wilson Neto
Ficou meio sujo, mas aqui não tem opção de Editar. :/
14/01/2018
Wilson Neto
O ".Contains()" faz parte do Linq, logo será necessário adicionar
no inicio. :) Caso contrário não compila.
14/01/2018
Robson Amaral
14/01/2018
Wilson Neto
Tem alguma dica para isso, porque se vc executar o meu código vc percebe que vc pode digitar o mesmo numeros até 6 vezes, e isso não podia acontecer. :(
Você pode verificar se existe da mesma forma do random. Saca só:
for ( int i = 0; i < aposta.Length; i++ ) { Console.WriteLine("Realize sua aposta, digitando o numero."); Console.Write("Digite sua aposta: "); int inputuser = Convert.ToInt32(Console.ReadLine()); if ( !aposta.Contains(inputuser) ) { aposta[ i ] = inputuser; } else { Console.WriteLine("Número já apostado tente novamente."); i--; //Você decrementa para que possa fazer uma nova tentativa de um novo número. } }
Compreende?
14/01/2018
Robson Amaral
14/01/2018
Robson Amaral
14/01/2018
Robson Amaral
Clique aqui para fazer login e interagir na Comunidade :)