Ayuda, no me aparece un dato en este programa!
Publicado por Sekon (1 intervención) el 13/11/2017 12:05:52
Hola, estaba haciendo un programa de cara o cruz, donde puedes apostar pero al compilar y comenzar a introducir lo que pide en pantalla, no me sale la cantidad que he apostado.
Si alguien puede decirme donde está el error se lo agradecería!!
Un saludo.
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <cstdlib>
using namespace std;
int cuantoApostar(int saldo){
int cantidadApostado;
cout << "Tienes " << saldo << " monedas" << endl;
do{
cout << "¿cuanto quieres apostar? ";
cin >> cantidadApostado;
if(cantidadApostado > saldo){
cout << "No puedes apostar " << cantidadApostado << ", solo tienes " << saldo << endl;
}
}while(cantidadApostado > saldo);
}
int cuantoApostar2(int saldo){
int cantidadApostado;
cout << "Tienes " << saldo << "monedas" << endl;
cout << "¿cuanto quieres apostar? ";
cin >> cantidadApostado;
while(cantidadApostado > saldo){
cout << "No puedes apostar " << cantidadApostado << ", solo tienes " << saldo << endl;
cout << "¿cuanto quieres apostar? ";
cin >> cantidadApostado;
}
}
/*
¿cara o cruz? (c/x): r
¿cara o cruz? (c/x): c
Apuesta realizada. Has apostado 10 monedas a cara. >> Debería salir eso, pero no , sale todo el rato 0
*/
char caraOcruz(int cantidadApostada){
char mander;
do{
cout << "¿Cara o cruz? (c/x): ";
cin >> mander;
if(mander != 'c' && mander != 'x'){
cout << "Debes escribir c para cara y x para cruz" << endl;
}
}while(mander != 'c' && mander != 'x');
cout << "Apuesta realizada. Has apostado " << cantidadApostada << " monedas a ";
if(mander == 'c'){
cout << "cara" << endl;
}
else{
cout << "cruz" << endl;
}
return mander;
}
// el modulo devuelve 0 o 1
char lanzarMoneda(){
int valor;
char resultado;
valor = rand() % 2;
if(valor == 0){
cout << "Ha salido cara" << endl;
resultado = 'c';
}
else{
cout << "Ha salido cruz" << endl;
resultado = 'x';
}
return resultado;
}
// devuelve si ha ganado o ha perdido.
bool comprobarApuesta(char eleccion, char salido, int &saldo, int cantidadApostada){
bool gana;
if(eleccion == salido){
cout << "Has ganado" << endl;
saldo = saldo + cantidadApostada*2;
gana = true;
}
else{
cout << "Has perdido" << endl;
saldo = saldo - cantidadApostada;
gana = false;
}
return gana;
}
int main(){
int saldo = 100, capostada, ganadas = 0;
bool gana;
char seleccion, salido, respuesta;
do{
cout << "¿quieres jugar? (s/n) ";
cin >> respuesta;
}while(respuesta != 's' && respuesta != 'n');
while(respuesta == 's' && saldo > 0){
capostada = cuantoApostar(saldo);
seleccion = caraOcruz(capostada);
salido = lanzarMoneda();
gana = comprobarApuesta(seleccion, salido, saldo, capostada);
if(gana == true){
ganadas++;
}
if(saldo > 0){
do{
cout << "¿quieres jugar? (s/n) ";
cin >> respuesta;
}while(respuesta != 's' && respuesta != 'n');
}
}
cout << "Has ganado " << ganadas << " veces" << endl;
}
Un saludo.
Valora esta pregunta


0