Hola!
Si me informaron bien, hoy vimos pasaje de parámetros por referencia en la clase teórica ✨.
Por lo que vale la pena revisar el código de la clase práctica pasada, para el ejercicio de jugar al siete y medio:
#include <stdio.h>
#include <stdbool.h>
const char OPCION_SEGUIR = 's';
int main(){
bool sigue_manuel = true;
bool sigue_andres = true;
float puntos_manuel = 0;
float puntos_andres = 0;
char opcion;
int carta;
printf("Manuel: \n");
printf("Queres una carta? %c/n \n", OPCION_SEGUIR);
scanf(" %c", &opcion);
if (opcion == OPCION_SEGUIR){
printf("psst! necesito un numero aleatorio 1-10");
scanf("%i", &carta);
if(carta > 7){
puntos_manuel += 0.5;
} else {
puntos_manuel += carta;
}
}
printf("manuel tiene %f puntos\n", puntos_manuel);
return 0;
}
Y el que llevé como resolución tentativa, con dos jugadores y modularizado hasta donde podríamos haber llegado esa clase:
#include<stdio.h>
#include<stdbool.h>
const double LIMITE_PUNTOS_JUEGO = 7.5;
const char OPCION_SEGUIR='y';
bool seguir_jugando(){
char opcion;
puts("Queres una carta?");
scanf(" %c",&opcion);
return opcion == OPCION_SEGUIR;
}
double obtener_valor_a_sumar(){
int numero_aleatorio;
puts("psst! necesito un numero aleatorio 1-10");
scanf(" %i", &numero_aleatorio);
if(numero_aleatorio>7){
return 0.5;
} else{
return numero_aleatorio;
}
}
int main(){
double puntos_jugador_1=0, puntos_jugador_2=0;
bool sigue_jugador_1 = true, sigue_jugador_2 = true;
while (sigue_jugador_1 || sigue_jugador_2){
puts("Jugador 1");
if(seguir_jugando()){
puntos_jugador_1 += obtener_valor_a_sumar();
printf("Tenes %lf puntos\n", puntos_jugador_1);
if (puntos_jugador_1 > LIMITE_PUNTOS_JUEGO) {
puts("Te pasaste! Perdiste!");
sigue_jugador_1 = false;
}
} else {
sigue_jugador_1 = false;
}
puts("Jugador 2");
if(seguir_jugando()){
puntos_jugador_2 += obtener_valor_a_sumar();
printf("Tenes %lf puntos\n", puntos_jugador_2);
if (puntos_jugador_2 > LIMITE_PUNTOS_JUEGO) {
puts("Te pasaste! Perdiste!");
sigue_jugador_2 = false;
}
} else {
sigue_jugador_2 = false;
}
}
printf("El juego termino. \nEl jugador 1 tiene %lf, y el 2 %lf", puntos_jugador_1, puntos_jugador_2);
return 0;
}
En la siguiente clase, 13/11/2018, vamos a, durante la primer mitad de la misma, seguir con la modularización de ese mismo ejercicio, pero ahora pudiendo hacer uso de pasaje de variables por referencia.
Puntos a pensar:
Nos vemos el jueves!
Saludos, Juan Pablo >^.^<.