Jump to content

c# jogo mastermind


cav
 Share

Recommended Posts

Tens de parar, pensar e desenhar o programa antes de escreveres código.

Pensa como o jogo deve funcionar, tipo, o jogo arrancar e... ?

Escreve um caso de uso de um jogo, onde descreves como o utilizador interage e como o programa deve responder.

Depois divide isso em pequenos módulos e implementa um de cada vez.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Como é uma aplicação em C# e é um jogo simples, podes definir uma classe q representa o teu jogo.

Esta classe deve ter:

- Variaveis que guardam os valores (isto pode ser feito com campos ou propriedades, lê o q significam estas 2 coisas.)

- Acções do jogo. (Isto vão ser os métodos q a interface (gráfica ou consola, seja o q for) vai chamar, devem fazer toda a lógica necessária ao jogo de modo a q a apresentação apenas se limite a mostrar dados). Estes métodos devem ser testados um a um assim q são feitos, para evitar complicações mais tarde.

- Construtor q inicia as variaveis do jogo, por exemplo: as cores em q se deve acertar.

Antes de fazeres esta classe não faças nd q tenha a ver com a apresentação, isso é o passo seguinte.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

boas....  ja consegui mais ou menos, mas tem um pequeno problema....


private static bool Verificar(int num, int numA)

        {

            if (num == numA)

            {

                return true;

            }

            else

            {

                return false;

            }

        }

        static void Main(string[] args)

        {

            //Variaveis

            int[] numAle = new int[4];

            char[] numUtilizador = new char[4];

            int contL = 0, num = 0, numA = 0, ContPos = 0;

            bool VerificaFim = true;

            // declarar os numeros random

            Random rnd = new Random();

            for (int i = 0; i < 4; i++)

            {

                numAle = rnd.Next(1, 5);

            }

            //Intru..

            Console.Write("\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒");

            Console.SetCursorPosition(28, 10);

            Console.Write("\t..Master Mind..");

            Console.SetCursorPosition(10, 11);

            Console.Write("Neste Jogo Voce tera de acertar nos 4 numeros aleatorios\n\t\t  e suas posições escolhidos pelo programa\n \t\t\ttera 10 tentativas para  Vencer!! \n \t\t\t\tBom Jogo!!");

            Console.SetCursorPosition(10, 14);

            Console.Write("\t_______________________________________________");

            Console.SetCursorPosition(10, 15);

            Console.Write("\t  Pressione ALGUMA TECLA! para Começar a jogar");

            Console.SetCursorPosition(10, 16);

            Console.Write("\t_______________________________________________");

            Console.Write("\n\n\n\n\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒");

            Console.ReadKey();

            Console.Clear();

            //fim Intru

            //2ºparte

            for (int i = 10; i > 0; i--)

            {

                int cont = 0;

                Console.Write("\n▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒");

                Console.SetCursorPosition(15, 4);

                Console.Write("_______________________________________________");

                Console.SetCursorPosition(28, 5);

                Console.Write("Tem {0} tentativas", i);// Ira mudar conforme vao pondo as tentativas

                Console.SetCursorPosition(15, 6);

                Console.Write("_______________________________________________");

                Console.SetCursorPosition(15, 7);

                Console.Write("\t\t????\t -> Os numeros são somente de 1 a 4");

                //melhorar

                for (int J = 0; J < 4; J++)

                {

                    //escreve os numeros digitalizados, e muda de linha de 4 em 4 digitos

                    Console.SetCursorPosition(15 + cont, 8 + contL);

                    numUtilizador[J] = char.Parse(Console.ReadLine());

                    cont++;

                }

                ContPos = 0;

                for (int J = 0; J < 4; J++)

                {

                    num = numAle[J];

                    numA = numUtilizador[J];

                    if (Verificar(num, numA))

                    {

                        ContPos++;

                    }

                }

                // escrever as possiões correctas

                if (ContPos == 4)

                {

                    Console.Clear();

                    Console.SetCursorPosition(15, 15);

                    Console.Write("VENCESTE");

                    Console.SetCursorPosition(15, 16);

                    Console.Write("PARABENS!! preciona ALGUMA TECLA para sair!");

                    i = 0;

                    VerificaFim = false;

                }

                else

                {

                    Console.SetCursorPosition(50, 22);

                    Console.Write("Posiçoes correctas:|||| {0} |||", ContPos);

                    contL++;

                }

            }

            if (VerificaFim)

            {

                Console.Clear();

                Console.SetCursorPosition(15, 15);

                Console.Write("PERDESTE!!!");

                Console.SetCursorPosition(15, 16);

                Console.Write("Talvez para a proxima!! preciona ALGUMA TECLA para sair!");

            }

            Console.ReadKey();

o programa roda, so que enves de poder-mos introduzir os quatro numeros seguidos e carregar enter depois para confirmar, temos que introduzir um numero de cada ves e enter em cada um....

será que me podem dizer u que esta mal, ou que parte do codigo tenho que alterar???

😁

esta feito em modo consola

Link to comment
Share on other sites

nao está a rodar correctamente, serve mais para o jogo ficar melhorado, se alguem souber onde esta o erro digam sff. tou farto de ver em varios foruns e nada.

Em vez de pedires para ler 4 números, faz a leitura de uma linha inteira, e depois fazes o parse dos 4 números tu própria, usando Regex (Regular Expressions), ou os métodos Int.TryParse e string.Substring.

<3 life

Link to comment
Share on other sites

Em vez de leres um número, lês uma string, ou seja, se o utilizador inserir 1 2 3 4, recebes algo como "1 2 3 4" no programa. Depois o método Substring vai devolver-te "1", "2", "3", e "4". Usas o Int.TryParse em cada um desses ("1", "2", "3", e "4") e ele vai devolver-te os números 1, 2, 3, 4.

Tens é de ter cuidado quando o utilizador introduz coisas inválidas, como "a b c d". Ou só insere 1, 2, ou 3 números.

<3 life

Link to comment
Share on other sites

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
 Share

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