C sharp - Crear un programa en C# que simule el juego "Tragamonedas"

 
Vista:

Crear un programa en C# que simule el juego "Tragamonedas"

Publicado por María (2 intervenciones) el 09/12/2020 20:30:02
Crear un programa en C# que simule el juego "Tragamonedas" con las siguientes características:
* La máquina inicia con una bolsa de 100 monedas de manera interna
* El usuario inicia con 20 monedas
* Cada apuesta tendrá un costo de 1 moneda
* La ruleta constará de 3 números enteros positivos y cada número va desde el 0 (cero) al 9 (nueve) y estos deben generarse de manera aleatoria
* Para poder ganar, existen las siguientes posibilidades:
+ En caso de tener 3 números diferentes, pierde la apuesta
+ 2 números iguales, gana una moneda
+ 3 numero iguales, gana 3 monedas
+ 3 ceros (0), gana 7 moneda
+ 3 sietes (7), gana todo la bolsa que tenga la máquina tragamonedas
* El juego puede terminar por 3 situaciones:
+ El usuario se queda sin monedas
+ La máquina tragamonedas se queda sin monedas en su bolsa
+ El usuario se retira del juego
Nota: Recuerda ponerle sonido a tu juego
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 326
Plata
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Crear un programa en C# que simule el juego "Tragamonedas"

Publicado por Miguel (143 intervenciones) el 10/12/2020 06:21:54
Agrega el codigo que lleves hasta el momento
y cual es tu duda en especifico.


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear un programa en C# que simule el juego "Tragamonedas"

Publicado por María (2 intervenciones) el 10/12/2020 07:33:42
Bueno en sí mi duda es como empezar todo. Solo tengo reservado el archivo pero no he escrito nada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 326
Plata
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Crear un programa en C# que simule el juego "Tragamonedas"

Publicado por Miguel (143 intervenciones) el 30/12/2020 20:58:41
Pues no se cual sea tu plan que tanto sabes de C# sabes como ingresar datos,
sentencias de decision o como quieres que te ayuden, o quien te escriba
todo el programa.


saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 88
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Crear un programa en C# que simule el juego "Tragamonedas"

Publicado por Kabuto (16 intervenciones) el 17/01/2021 02:19:29
Aquí una solución para quien pueda servirle de ayuda.

He creado una clase llamada Maquina que simula una máquina tragamonedas, o tragaperras como solemos llamarlas en España.

Es muy sencilla, una atributo bolsa que empieza con valor 100.
Y tres enteros de tipo byte (por supuesto, sirve también el tipo int) para representar los tres números que muestra la máquina.

Un método público llamado JugarMoneda() que modela lo que ocurre cuando se apuesta una moneda.
La bolsa de la máquina se incrementa.
Se generan tres enteros al azar.
Se muestra el resultado, mediante otro método privado.
Y por último se analiza el resultado, también mediante otro método privado, que retornará las monedas que se han ganado, según el resultado.

Este método comprueba los posibles resultados: obtener tres 7, obtener tres 0, obtener tres iguales, dos iguales o no obtener nada.
Para cada caso, modifica el valor de la bolsa y retorna el premio obtenido.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using System;
 
namespace Tragaperras
{
    class Maquina
    {
        private byte bolsa;
        private byte cifra1;
        private byte cifra2;
        private byte cifra3;
 
        public Maquina()
        {
            bolsa = 100;
            cifra1 = 0;
            cifra2 = 0;
            cifra3 = 0;
        }
 
        public byte GetBolsa() => bolsa;
 
        public byte JugarMoneda()
        {
            bolsa++;
            Random azar = new Random();
            cifra1 = (byte)azar.Next(0, 10);
            cifra2 = (byte)azar.Next(0, 10);
            cifra3 = (byte)azar.Next(0, 10);
            MostrarResultado();
            return AnalizarResultado();
        }
 
        private void MostrarResultado()
        {
            Console.Write("Números obtenidos: ");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("[{0}] [{1}] [{2}]", cifra1, cifra2 ,cifra3);
            Console.ResetColor();
        }
 
        private byte AnalizarResultado()
        {
            //Premio GORDO
            if (cifra1 == 7 && cifra2 == 7 && cifra3 == 7)
            {
                byte premio = bolsa;
                bolsa = 0;
                return premio;
            }
            //Gana 7 monedas, si hay suficientes
            if (cifra1 == 0 && cifra2 == 0 && cifra3 == 0)
            {
                if (bolsa >= 7)
                {
                    bolsa -= 7;
                    return 7;
                }
                else
                {
                    byte premio = bolsa;
                    bolsa = 0;
                    return premio;
                }
            }
            //Tres iguales, tres monedas
            if (cifra1 == cifra2 && cifra1 == cifra3)
            {
                if (bolsa >= 3)
                {
                    bolsa -= 3;
                    return 3;
                }
                else
                {
                    byte premio = bolsa;
                    bolsa = 0;
                    return premio;
                }
            }
            //Dos iguales, dos monedas
            if (cifra1 == cifra2 || cifra1 == cifra3 || cifra2 == cifra3)
            {
                if (bolsa >= 2)
                {
                    bolsa -= 2;
                    return 2;
                }
                else
                {
                    byte premio = bolsa;
                    bolsa = 0;
                    return premio;
                }
            }
            //No hay premio
            return 0;
        }
    }
}

Después, en la clase Program, tenemos tres atributos.
Un objeto Maquina, un byte para la bolsa del jugador que comienza con 20 monedas y un bool para controlar si el juego continua o ha de finalizar.

Al comenzar se muestra al usuario el valor de su bolsa y se le pregunta si quiere apostar moneda.
En caso afirmativo, invocamos al método JugarMoneda() del objeto Maquina y se actualizará la bolsa del jugador según premio obtenido.
Si el jugador, o la máquina, se quedan sin monedas, el juego termina.

En cada ciclo el jugador elige seguir apostando o no.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
 
namespace Tragaperras
{
    class Program
    {
        private static Maquina maquina = new Maquina();
        private static byte bolsaJugador = 20;
        private static bool seguirJugando = true;
 
        static void Main(string[] args)
        {
            while(seguirJugando)
            {
                Console.WriteLine("Bolsa del Jugador: {0} monedas", bolsaJugador);
                Console.WriteLine("¿Jugar una moneda? [s/n]");
                string opcion = Console.ReadLine().ToLower();
                if (opcion.Equals("s"))
                {
                    Console.Clear();
                    bolsaJugador--;
                    Console.WriteLine("Bolsa del Jugador: {0} monedas\n", bolsaJugador);
                    byte premio = maquina.JugarMoneda();
                    Console.WriteLine("\nGanas {0} monedas", premio);
                    bolsaJugador += premio;
 
                    seguirJugando = (maquina.GetBolsa() != 0 && bolsaJugador != 0);
 
                    Console.WriteLine("Pulse una tecla para seguir...");
                    Console.ReadKey();
                }
                else if (opcion.Equals("n"))
                    seguirJugando = false;
 
                Console.Clear();
            }
 
            if (maquina.GetBolsa() == 0) Console.WriteLine("¡La máquina Tragaperras se ha quedado sin monedas!");
 
            Console.WriteLine("Te vas con {0} monedas en la bolsa", bolsaJugador);
            Console.WriteLine("\t\tFIN DEL JUEGO\n");
        }
    }
}

Adjunto un zip con el proyecto (Visual Studio)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 88
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Crear un programa en C# que simule el juego "Tragamonedas"

Publicado por Kabuto (16 intervenciones) el 17/01/2021 02:41:53
Y esta es una versión con un par de sonidos, cuando se inserta moneda y cuando se obtiene algún premio.
Solo cambia el código de la clase Program.
A parte, en el Explorador de Soluciones (Visual Studio) hay que "Agregar referencia COM" y seleccionar "Windows Media Player".
De ese modo, se pueden reproducir archivos MP3, añadiendo las líneas de código que marco en negrita.

Adjunto un nuevo zip con el proyecto, incluyendo los dos sonidos MP3 que he utilizado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using WMPLib;
using System.Threading;
 
namespace Tragaperras
{
    class Program
    {
        private static Maquina maquina = new Maquina();
        private static byte bolsaJugador = 20;
        private static bool seguirJugando = true;
        private static WindowsMediaPlayer sonido = new WindowsMediaPlayer();
 
        static void Main(string[] args)
        {
            while(seguirJugando)
            {
                Console.WriteLine("Bolsa del Jugador: {0} monedas", bolsaJugador);
                Console.WriteLine("¿Jugar una moneda? [s/n]");
                string opcion = Console.ReadLine().ToLower();
                if (opcion.Equals("s"))
                {
                    Console.Clear();
                    sonido.URL = @"sonidos\moneda.mp3";
                    bolsaJugador--;
                    Console.WriteLine("Bolsa del Jugador: {0} monedas\n", bolsaJugador);
                    Thread.Sleep(2000);
                    byte premio = maquina.JugarMoneda();
                    Console.WriteLine("\nGanas {0} monedas", premio);
                    if (premio != 0)
                    {
                        sonido.URL = @"sonidos\premio.mp3";
                        bolsaJugador += premio;
                    }
 
 
                    seguirJugando = (maquina.GetBolsa() != 0 && bolsaJugador != 0);
 
                    Console.WriteLine("Pulse una tecla para seguir...");
                    Console.ReadKey();
                }
                else if (opcion.Equals("n"))
                    seguirJugando = false;
 
                Console.Clear();
            }
 
            if (maquina.GetBolsa() == 0) Console.WriteLine("¡La máquina Tragaperras se ha quedado sin monedas!");
 
            Console.WriteLine("Te vas con {0} monedas en la bolsa", bolsaJugador);
            Console.WriteLine("\t\tFIN DEL JUEGO\n");
        }
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar