Erro em throw new NotImplementedException();

13/01/2018

0

C#

Boa Noite, pessoal!

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

Robson Amaral

Responder

Post mais votado

13/01/2018

Noite. Não é um erro. ExisteNum() e ContaAcertos() você os chama em:

 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

Wilson Neto
Responder

Mais Posts

13/01/2018

Robson Amaral

Realizei algumas mudanças, porém eu não estou conseguindo fazer com que o sistema passa a gerar os numeros sorteados randomicamente sem que eles se repetem. Você poderia me dá uma norte ou uma sugestão.

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


}
}
}



Responder

14/01/2018

Wilson Neto

Para não gerar valores iguais, eu faria algo nesse estilo, veja se te ajuda.


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();



        }



:)
Responder

14/01/2018

Robson Amaral

No caso vc encaixaria esse código em qual linha, joguei o código aqui Wilson, e não compilou :(
Responder

14/01/2018

Wilson Neto

No caso vc encaixaria esse código em qual linha, joguei o código aqui Wilson, e não compilou :(
<br />
<br />
Eu fiz num Console Application separado.<br />
<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 />
<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 />
<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 />
<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 />
<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 />
Responder

14/01/2018

Wilson Neto

Vix, o editor do Devmedia pegou os brs depois que o Captcha falhou...

Ficou meio sujo, mas aqui não tem opção de Editar. :/
Responder

14/01/2018

Wilson Neto

Só um detalhe;

O ".Contains()" faz parte do Linq, logo será necessário adicionar

using System.Linq;


no inicio. :) Caso contrário não compila.
Responder

14/01/2018

Robson Amaral

Tranquilo rsrs, cara não estou conseguindo gerar os numeros dp sorteio randomicamente não, tá foids hahaha, usei seu código aqui, mas ele está gerando os numeros que eu estou apostando, coisa de doido hahaha, tipo quando o usuario escolher o primeiro numero até o sexto numero tem como colocar uma mensagem para o usuário impossibilitando ele digitar o mesmo numero? 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. :(
Responder

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?
Responder

14/01/2018

Robson Amaral

Opa Wilson, entendi sim, mas acontece que não aparece na forma correta quando eu vou executar, vc teria um email para a gente conversar e te enviar minha tela?
Responder

14/01/2018

Robson Amaral

Oh Wilson o orelha seca aqui conseguiu kkkk, você é crânio, dica valiosa para quem está começando, vale a pena se esforçar e aprender, vc teria whatasap, skype ou e- mail?
Responder

14/01/2018

Robson Amaral

Wilson, eu estou criando essa aplicação no Console application do c#, e tive a segunda duvida, no menu eu tenho a opção do usuário escolher a opção 3 que é visualizar todos os resultados que o sistema rondomico gera, que irei criar uma tabela no banco de dados chamado tb_Resultados, gostaria de saber uma maneira mais prática e claro se é possível quando o usuário escolher a opção 3 e dá um enter chamar um console application separado? Existe essa possibilidade? Outra pergunta, no meu código após o usuário realizar a aposta, eu queria tipo pegar e disparar uma mensagem em seguida "REALIZAR APOSTA", tipo como uma função salvar, porque a minha idéia é de armazenar esses dados no banco que eu irei criar.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar