-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfunciones.c
150 lines (114 loc) · 3.82 KB
/
funciones.c
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <stdio.h>
#include <stdlib.h>
#include "funciones.h"
int aleatorioEntre(int mini, int maxi)
{
return mini + rand()%(maxi-mini+1);
}
void cargarVectorConAleatorios(int v[], int tam, int mini, int maxi)
{
int aleatorio = 0;
for (int i = 0; i < tam; i++)
{
aleatorio = aleatorioEntre(mini, maxi);
v[i] = aleatorio;
}
}
void cargarVectorConAleatoriosSinRepetir(int v[], int tam, int mini, int maxi)
{
int aleatorio = 0;
for (int i = 0; i < tam; i++)
{//antes de asignar el numero aleatorio pasamos por los numeros ya generados para comprobar que no se repitan
aleatorio = aleatorioEntre(mini, maxi);
for(int j = 0; j < i; j++)
{
if (v[j] == aleatorio)
{//si se encontro un numero repetido volvemos a generar un numero aleatorio y volvemos a comprobar el vector
aleatorio = aleatorioEntre(mini, maxi);
j = 0;
}
}
v[i] = aleatorio;
}
}
//---------------------------bolitas------------------------------------------------
void generarBolitas(int v[]){
for(int i = 0; i < BOLITAS; i++){
cargarVectorConAleatoriosSinRepetir(v,BOLITAS,1,BOLITAS);
}
}
void mostrarBolitas(int v[])
{
for(int i = 0; i < BOLITAS; i++)
{
mostrarBolita(v, i);
}
}
void mostrarBolita(int v[], int bolita)
{
printf(" SALIO EL NUMERO:\n");
printf(" ___________ \n");
printf(" | | \n");
printf(" | | \n");
printf(" | ");
if (v[bolita]< 10) printf("0");
printf("%d | \n",v[bolita]);
printf(" | | \n");
printf(" |___________| \n");
printf("\n\n\n");
}
//Funciones y procedimientos para el menú
int pedirCantidadDeCartones()
{
int cantidad = MAXCARTONES + 1;//cantidad inicial invalida para evitar problemas en caso de que falle el scanf
do
{
printf("Escribe 1 para solo usar un carton\n");
for (int i = 2; i <= MAXCARTONES; i++)
{
printf("Escribe %d para usar %d cartones\n", i, i);
}
scanf("%d",&cantidad);
if (cantidad < 0 || cantidad > MAXCARTONES)//detectamos si es un numero invalido de cartones
{
system("cls");
printf("La cantidad de cartones ingresada es invalida, escriba un numero del 1 al %d \n", MAXCARTONES);
}
}while(cantidad < 0 || cantidad > MAXCARTONES);//hasta que no se ingrese u numero correcto de cartones este menu se repetira
return cantidad;
}
int pedirMetodoDeGeneracionDeCarton()
{
int metodo = 3;
do
{
printf("\nComo quieres general los cartones?\n\n");
printf("Ingrese 1 para general el/los cartones automaticamente\n");
printf("Ingrese 2 para personalizar su/s cartones\n");
scanf("%d",&metodo);
if (metodo < 0 || metodo > 2)
{
system("cls");
printf("La opcion ingresada es invalida, intentalo de nuevo.");
}
}while(metodo < 0 || metodo > 2);
return metodo;
}
void mostrarRanking()
{
FILE * punteroAUnArchivo;
punteroAUnArchivo = fopen("ranking.txt", "r");
printf("Puntuaciones anteriores: \n\n");
while (!feof(punteroAUnArchivo))//feof devuelve si ya se llego al final del archivo (eof)
{
char aux[50] = " ";
fgets(aux, 50, punteroAUnArchivo);
char aux2[50] = " ";
fgets(aux2, 50, punteroAUnArchivo);
//solo mostramos si el nombre no esta vacio
if (aux[0] != ' ') printf("Jugador: %s -- Puntaje: %s\n", aux, aux2);
}
printf("GRACIAS POR JUGAR!\n");
//cerrar
fclose(punteroAUnArchivo);
}