Topic de ukraini464 :

[PROGRAMMATION] BESOIN D'AIDE

et c'est pas avec chatgpt que je vais progresser en programmation

Le 13 juillet 2023 à 02:48:22 :

Le 13 juillet 2023 à 02:47:38 :

Le 13 juillet 2023 à 02:46:45 :
T'es au courant que dans 1 an grand max t'es GR par l'IA ?

T'es au courant que dans 5 grand max tous les boulots (sauf artisanaux) seront GR? :hap:

Sauf que les boulot sur PC c'est littéralement demain :rire:

Disons que le nombre de programmeur va vraiment diminué mais y'aura une séparation entre 2 groupes: ceux qui vont tirer avantage de l'IA et les autres. 1 personne pourra potentiellement faire beaucoup beaucoup plus de chose tout seul, et donc le nombre (et surtout la taille) des projets seront beaucoup plus importants.

t'as résolu ton problème ou pas du coup ?

Le 13 juillet 2023 à 02:54:16 :
t'as résolu ton problème ou pas du coup ?

oui

Le 13 juillet 2023 à 02:52:22 :
up

Go sur un discord spécialisé en programmation C. L'entraide communautaire c'est vraiment utile pour progresser. C'est pas sur un fofo généraliste comme le 18-25 que tu vas trouver ça :hap:

C'est quoi ta formation ? tu fais en autodidact ? C'est reconnu par l'Etat ?
#include <stdio.h>
#include <stddef.h>
#include <stdbool.h>

int getRandomNumber(int min, int max)
{
  return (rand() % (max - min + 1)) + min;
}

void welcomeMsg(void)
{
  printf("TP6: Les Boucles\n");
}

void instructionsMsg(int min, int max)
{
  printf("Devinez quel est mon nombre mystere. Indice: c'est un nombre entre %d et %d \n", min, max);
}

void initializeRandomSeed(void)
{
  srand(time(NULL));
}

bool guessLoop(int max_attempts, int number_to_guess) {
  int user_input = 0;

  for (int current_attempts_amount = 0; current_attempts_amount < max_attempts; current_attempts_amount++)
  {
    printf("tentative %d > ", current_attempts_amount);
    scanf("%d", &user_input);

    if (user_input < number_to_guess)
    {
      printf("C'est plus\n");
    }
    else if (user_input > number_to_guess)
    {
      printf("c'est moins\n");
    }
    else
    {
      printf("nombre correcte");
      return true;
    }
  }
  return false;
}

bool sceneGame(void)
{
  const int MIN_VALUE = 1;
  const int MAX_VALUE = 100;
  const int MAX_ATTEMPTS = 10;
  const int RANDOM_NUMBER = getRandomNumber(MIN_VALUE, MAX_VALUE);
  bool hasWon = false;

  instructionsMsg(MIN_VALUE, MAX_VALUE);
  hasWon = guessLoop(MAX_ATTEMPTS, RANDOM_NUMBER);
  return hasWon;
}

bool playAgainChoice(void)
{
  int user_input = 0;

  while (true) {
    printf("Rejouer ? [0/1]");
    scanf("%d", &user_input);
    if (user_input == 0) {
      return false;
    }
    else if (user_input == 1) {
      return true;
    }
  }
}

int main(void)
{
  bool hasWon = false;
  bool playAgain = false;

  initializeRandomSeed();
  welcomeMsg();

  while (true) {
    hasWon = sceneGame();
    if (hasWon) {
      break;
    }
    playAgain = playAgainChoice();
    if (!playAgain) {
      break;
    }
  }
  return 0;
}

Quelque chose comme ça j'imagine.
(Flemme de compiler).

Tu as bien de la chance que je sois suffisamment généreux pour t'aider sur ton exo de gosse.

#include <stdio.h>
#include <stddef.h>
#include <stdbool.h>

int get_random_number(const int MIN, const int MAX)
{
  return (rand() % (MAX - MIN + 1)) + MIN;
}

void welcome_msg(void)
{
  printf("TP6: Les Boucles\n");
}

void instructions_msg(const int MIN, const int MAX)
{
  printf("Devinez quel est mon nombre mystere. Indice: c'est un nombre entre %d et %d \n", MIN, MAX);
}

void initialize_random_seed(void)
{
  srand(time(NULL));
}

bool guess_loop(const int MAX_ATTEMPTS, const int NUMBER_TO_GUESS) {
  int user_input = 0;

  for (int current_attempts_amount = 0; current_attempts_amount < MAX_ATTEMPTS; current_attempts_amount++)
  {
    printf("tentative %d > ", current_attempts_amount);
    scanf("%d", &user_input);

    if (user_input < NUMBER_TO_GUESS)
    {
      printf("C'est plus\n");
    }
    else if (user_input > NUMBER_TO_GUESS)
    {
      printf("c'est moins\n");
    }
    else
    {
      printf("nombre correcte");
      return true;
    }
  }
  return false;
}

bool scene_game(void)
{
  const int MIN_VALUE = 1;
  const int MAX_VALUE = 100;
  const int MAX_ATTEMPTS = 10;
  const int RANDOM_NUMBER = get_random_number(MIN_VALUE, MAX_VALUE);
  bool has_won = false;

  instructions_msg(MIN_VALUE, MAX_VALUE);
  has_won = guess_loop(MAX_ATTEMPTS, RANDOM_NUMBER);
  return has_won;
}

bool play_again_choice(void)
{
  int user_input = 0;

  while (true) {
    printf("Rejouer ? [0/1]");
    scanf("%d", &user_input);
    if (user_input == 0) {
      return false;
    }
    else if (user_input == 1) {
      return true;
    }
  }
}

int main(void)
{
  bool has_won = false;
  bool play_again = false;

  initialize_random_seed();
  welcome_msg();

  while (true) {
    has_won = scene_game();
    if (has_won) {
      break;
    }
    play_again = play_again_choice();
    if (!play_again) {
      break;
    }
  }
  return 0;
}

Quelque chose comme ça j'imagine.
(Flemme de compiler).

Tu as bien de la chance que je sois suffisamment généreux pour t'aider sur ton exo de gosse.

J'ai juste édité entre temps parce que j'ai plus l'habitude d'écrire en snake case et il manquait quelques const.

Le 13 juillet 2023 à 02:55:34 :

Le 13 juillet 2023 à 02:52:22 :
up

Go sur un discord spécialisé en programmation C. L'entraide communautaire c'est vraiment utile pour progresser. C'est pas sur un fofo généraliste comme le 18-25 que tu vas trouver ça :hap:

Oh putain j'avais pas lu ça. :rire:
Oh putain. :rire:

Bon, juste, je reposte une dernière fois parce que je n'avais pas correctement formaté mon code (je suis débutant en C, et j'ai horreur de la manière dont vous revenez à la ligne pour rien, tout comme j'ai horreur de votre snake case).

#include <time.h>
#include <stdio.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdlib.h>

void initialize_random_seed(void)
{
  srand(time(NULL));
}

int get_random_number(const int MIN, const int MAX)
{
  return (rand() % (MAX - MIN + 1)) + MIN;
}

void welcome_msg(void)
{
  printf("TP6: Les Boucles\n");
}

void instructions_msg(const int MIN, const int MAX)
{
  printf("Devinez quel est mon nombre mystere. Indice: c'est un nombre entre %d et %d \n", MIN, MAX);
}

bool incorrect_user_input(const int USER_INPUT, const int MIN, const int MAX)
{
  return USER_INPUT < MIN || USER_INPUT > MAX;
}

bool guess_loop(const int MAX_ATTEMPTS, const int NUMBER_TO_GUESS, const int MIN, const int MAX)
{
  int user_input = 0;

  for (int current_attempts_amount = 0; current_attempts_amount <= MAX_ATTEMPTS; current_attempts_amount++)
  {
    user_input = MIN - 1;
    while (incorrect_user_input(user_input, MIN, MAX))
    {
      printf("tentative %d/%d > ", current_attempts_amount, MAX_ATTEMPTS);
      scanf("%d", &user_input);
      if (incorrect_user_input(user_input, MIN, MAX))
      {
        printf("Veuillez entrer un nombre valide entre %d et %d.\n", MIN, MAX);
      }
    }

    if (user_input < NUMBER_TO_GUESS)
    {
      printf("C'est plus\n");
    }
    else if (user_input > NUMBER_TO_GUESS)
    {
      printf("c'est moins\n");
    }
    else
    {
      printf("nombre correcte");
      return true;
    }
  }
  return false;
}

bool scene_game(void)
{
  const int MIN_VALUE = 1;
  const int MAX_VALUE = 100;
  const int MAX_ATTEMPTS = 10;
  const int RANDOM_NUMBER = get_random_number(MIN_VALUE, MAX_VALUE);
  bool has_won = false;

  instructions_msg(MIN_VALUE, MAX_VALUE);
  has_won = guess_loop(MAX_ATTEMPTS, RANDOM_NUMBER, MIN_VALUE, MAX_VALUE);
  return has_won;
}

bool play_again_choice(void)
{
  int user_input = 0;

  while (true)
  {
    printf("Rejouer ? [0/1] > ");
    scanf("%d", &user_input);
    if (user_input == 0)
    {
      return false;
    }
    else if (user_input == 1)
    {
      return true;
    }
  }
}

int main(void)
{
  bool has_won = false;
  bool play_again = false;

  initialize_random_seed();
  welcome_msg();

  while (true)
  {
    has_won = scene_game();
    if (has_won)
    {
      break;
    }
    printf("\nTu sais pas compter, t'es NUL !\n");
    play_again = play_again_choice();
    if (!play_again)
    {
      break;
    }
  }
  return 0;
}

Par contre j'ai la flemme de sécuriser le scanf au cas où le mec appuie juste sur entrée/écrit de la merde "azezaeae". J'ai déjà assez passé de temps au fin fond de mon plumard à écrire cette daube.

Le 13 juillet 2023 à 03:33:27 :

Le 13 juillet 2023 à 02:55:34 :

Le 13 juillet 2023 à 02:52:22 :
up

Go sur un discord spécialisé en programmation C. L'entraide communautaire c'est vraiment utile pour progresser. C'est pas sur un fofo généraliste comme le 18-25 que tu vas trouver ça :hap:

Oh putain j'avais pas lu ça. :rire:
Oh putain. :rire:

Par contre j'ai la flemme de sécuriser le scanf au cas où le mec appuie juste sur entrée/écrit de la merde "azezaeae". J'ai déjà assez passé de temps au fin fond de mon plumard à écrire cette daube.

Y'a quoi de marrant? :hap: Si je prends l'exemple du Discord The Odin Project (pour le dev web), le truc est ultra bien organisé et quand tu poses une question, au lieu de te filer la réponse, ils te guident vers les potentiels solutions pour que tu comprennes et test toi-même. + beaucoup d'entre-aides quand t'es bloqué sur des projets ou autre et c'est un très très gros plus pour progresser

Après si tu veux trouver de bons discord c'est surtout anglophone

Le 13 juillet 2023 à 03:37:54 :

Le 13 juillet 2023 à 03:33:27 :

Le 13 juillet 2023 à 02:55:34 :

Le 13 juillet 2023 à 02:52:22 :
up

Go sur un discord spécialisé en programmation C. L'entraide communautaire c'est vraiment utile pour progresser. C'est pas sur un fofo généraliste comme le 18-25 que tu vas trouver ça :hap:

Oh putain j'avais pas lu ça. :rire:
Oh putain. :rire:

Par contre j'ai la flemme de sécuriser le scanf au cas où le mec appuie juste sur entrée/écrit de la merde "azezaeae". J'ai déjà assez passé de temps au fin fond de mon plumard à écrire cette daube.

Y'a quoi de marrant? :hap: Si je prends l'exemple du Discord The Odin Project (pour le dev web), le truc est ultra bien organisé et quand tu poses une question, au lieu de te filer la réponse, ils te guident vers les potentiels solutions pour que tu comprennes et test toi-même. + beaucoup d'entre-aides quand t'es bloqué sur des projets ou autre et c'est un très très gros plus pour progresser

Après si tu veux trouver de bons discord c'est surtout anglophone

C'est un exo que n'importe qui ayant un minimum codé dans sa vie pourrait résoudre, même sans jamais avoir écrit une ligne de C.

Bon, juste un autre point de détail con :

#include <time.h>
#include <stdio.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdlib.h>

void initialize_random_seed(void)
{
  srand(time(NULL));
}

int get_random_number(const int MIN, const int MAX)
{
  return (rand() % (MAX - MIN + 1)) + MIN;
}

void welcome_msg(void)
{
  printf("TP6: Les Boucles\n");
}

void instructions_msg(const int MIN, const int MAX)
{
  printf("Devinez quel est mon nombre mystere. Indice: c'est un nombre entre %d et %d \n", MIN, MAX);
}

bool incorrect_user_input(const int USER_INPUT, const int MIN, const int MAX)
{
  return USER_INPUT < MIN || USER_INPUT > MAX;
}

bool guess_loop(const int MAX_ATTEMPTS, const int NUMBER_TO_GUESS, const int MIN, const int MAX)
{
  int user_input = 0;

  for (int current_attempts_amount = 0; current_attempts_amount <= MAX_ATTEMPTS; current_attempts_amount++)
  {
    user_input = MIN - 1;
    while (incorrect_user_input(user_input, MIN, MAX))
    {
      printf("tentative %d/%d > ", current_attempts_amount, MAX_ATTEMPTS);
      scanf("%d", &user_input);
      if (incorrect_user_input(user_input, MIN, MAX))
      {
        printf("Veuillez entrer un nombre valide entre %d et %d.\n", MIN, MAX);
      }
    }

    if (user_input < NUMBER_TO_GUESS)
    {
      printf("C'est plus\n");
    }
    else if (user_input > NUMBER_TO_GUESS)
    {
      printf("c'est moins\n");
    }
    else
    {
      printf("nombre correcte");
      return true;
    }
  }
  return false;
}

bool scene_game(void)
{
  const int MIN_VALUE = 1;
  const int MAX_VALUE = 100;
  const int MAX_ATTEMPTS = 10;
  const int RANDOM_NUMBER = get_random_number(MIN_VALUE, MAX_VALUE);
  bool has_won = false;

  instructions_msg(MIN_VALUE, MAX_VALUE);
  has_won = guess_loop(MAX_ATTEMPTS, RANDOM_NUMBER, MIN_VALUE, MAX_VALUE);
  return has_won;
}

bool scene_gameover(void) {
  bool play_again = false;

  while (true) {
    printf("\nTu sais pas compter, t'es NUL !\n");
    play_again = play_again_choice();
    if (!play_again)
    {
      return false;
    }
    return true;
  }
}

bool play_again_choice(void)
{
  int user_input = 0;

  while (true)
  {
    printf("Rejouer ? [0/1] > ");
    scanf("%d", &user_input);
    if (user_input == 0)
    {
      return false;
    }
    else if (user_input == 1)
    {
      return true;
    }
  }
}

int main(void)
{
  bool has_won = false;
  bool play_again = false;

  initialize_random_seed();
  welcome_msg();

  while (true)
  {
    has_won = scene_game();
    if (has_won)
    {
      break;
    }
    play_again = scene_gameover();
    if (!play_again)
    {
      break;
    }
  }
  return 0;
}

Le 13 juillet 2023 à 03:40:13 :

Le 13 juillet 2023 à 03:37:54 :

Le 13 juillet 2023 à 03:33:27 :

Le 13 juillet 2023 à 02:55:34 :

Le 13 juillet 2023 à 02:52:22 :
up

Go sur un discord spécialisé en programmation C. L'entraide communautaire c'est vraiment utile pour progresser. C'est pas sur un fofo généraliste comme le 18-25 que tu vas trouver ça :hap:

Oh putain j'avais pas lu ça. :rire:
Oh putain. :rire:

Par contre j'ai la flemme de sécuriser le scanf au cas où le mec appuie juste sur entrée/écrit de la merde "azezaeae". J'ai déjà assez passé de temps au fin fond de mon plumard à écrire cette daube.

Y'a quoi de marrant? :hap: Si je prends l'exemple du Discord The Odin Project (pour le dev web), le truc est ultra bien organisé et quand tu poses une question, au lieu de te filer la réponse, ils te guident vers les potentiels solutions pour que tu comprennes et test toi-même. + beaucoup d'entre-aides quand t'es bloqué sur des projets ou autre et c'est un très très gros plus pour progresser

Après si tu veux trouver de bons discord c'est surtout anglophone

C'est un exo que n'importe qui ayant un minimum codé dans sa vie pourrait résoudre, même sans jamais avoir écrit une ligne de C.

Bon, juste un autre point de détail con :

#include <time.h>
#include <stdio.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdlib.h>

void initialize_random_seed(void)
{
  srand(time(NULL));
}

int get_random_number(const int MIN, const int MAX)
{
  return (rand() % (MAX - MIN + 1)) + MIN;
}

void welcome_msg(void)
{
  printf("TP6: Les Boucles\n");
}

void instructions_msg(const int MIN, const int MAX)
{
  printf("Devinez quel est mon nombre mystere. Indice: c'est un nombre entre %d et %d \n", MIN, MAX);
}

bool incorrect_user_input(const int USER_INPUT, const int MIN, const int MAX)
{
  return USER_INPUT < MIN || USER_INPUT > MAX;
}

bool guess_loop(const int MAX_ATTEMPTS, const int NUMBER_TO_GUESS, const int MIN, const int MAX)
{
  int user_input = 0;

  for (int current_attempts_amount = 0; current_attempts_amount <= MAX_ATTEMPTS; current_attempts_amount++)
  {
    user_input = MIN - 1;
    while (incorrect_user_input(user_input, MIN, MAX))
    {
      printf("tentative %d/%d > ", current_attempts_amount, MAX_ATTEMPTS);
      scanf("%d", &user_input);
      if (incorrect_user_input(user_input, MIN, MAX))
      {
        printf("Veuillez entrer un nombre valide entre %d et %d.\n", MIN, MAX);
      }
    }

    if (user_input < NUMBER_TO_GUESS)
    {
      printf("C'est plus\n");
    }
    else if (user_input > NUMBER_TO_GUESS)
    {
      printf("c'est moins\n");
    }
    else
    {
      printf("nombre correcte");
      return true;
    }
  }
  return false;
}

bool scene_game(void)
{
  const int MIN_VALUE = 1;
  const int MAX_VALUE = 100;
  const int MAX_ATTEMPTS = 10;
  const int RANDOM_NUMBER = get_random_number(MIN_VALUE, MAX_VALUE);
  bool has_won = false;

  instructions_msg(MIN_VALUE, MAX_VALUE);
  has_won = guess_loop(MAX_ATTEMPTS, RANDOM_NUMBER, MIN_VALUE, MAX_VALUE);
  return has_won;
}

bool scene_gameover(void) {
  bool play_again = false;

  while (true) {
    printf("\nTu sais pas compter, t'es NUL !\n");
    play_again = play_again_choice();
    if (!play_again)
    {
      return false;
    }
    return true;
  }
}

bool play_again_choice(void)
{
  int user_input = 0;

  while (true)
  {
    printf("Rejouer ? [0/1] > ");
    scanf("%d", &user_input);
    if (user_input == 0)
    {
      return false;
    }
    else if (user_input == 1)
    {
      return true;
    }
  }
}

int main(void)
{
  bool has_won = false;
  bool play_again = false;

  initialize_random_seed();
  welcome_msg();

  while (true)
  {
    has_won = scene_game();
    if (has_won)
    {
      break;
    }
    play_again = scene_gameover();
    if (!play_again)
    {
      break;
    }
  }
  return 0;
}

Bah c'est très similaire oui, la structure des loops est quasi la même par rapport à JS par exemple (avec une syntaxe différente en C que je ne connais pas). Mais étant que je ne connais pas d'autres langages j'ai préféré laisser ceux qui connaissent le C réppondre pour pas induire en erreur. Je vois comprends pas l'intérêt de ta réponse à part pour rigoler :hap:

Le 13 juillet 2023 à 03:43:05 :

Le 13 juillet 2023 à 03:40:13 :

Le 13 juillet 2023 à 03:37:54 :

Le 13 juillet 2023 à 03:33:27 :

Le 13 juillet 2023 à 02:55:34 :

> Le 13 juillet 2023 à 02:52:22 :

>up

Go sur un discord spécialisé en programmation C. L'entraide communautaire c'est vraiment utile pour progresser. C'est pas sur un fofo généraliste comme le 18-25 que tu vas trouver ça :hap:

Oh putain j'avais pas lu ça. :rire:
Oh putain. :rire:

Par contre j'ai la flemme de sécuriser le scanf au cas où le mec appuie juste sur entrée/écrit de la merde "azezaeae". J'ai déjà assez passé de temps au fin fond de mon plumard à écrire cette daube.

Y'a quoi de marrant? :hap: Si je prends l'exemple du Discord The Odin Project (pour le dev web), le truc est ultra bien organisé et quand tu poses une question, au lieu de te filer la réponse, ils te guident vers les potentiels solutions pour que tu comprennes et test toi-même. + beaucoup d'entre-aides quand t'es bloqué sur des projets ou autre et c'est un très très gros plus pour progresser

Après si tu veux trouver de bons discord c'est surtout anglophone

C'est un exo que n'importe qui ayant un minimum codé dans sa vie pourrait résoudre, même sans jamais avoir écrit une ligne de C.

Bon, juste un autre point de détail con :

#include <time.h>
#include <stdio.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdlib.h>

void initialize_random_seed(void)
{
  srand(time(NULL));
}

int get_random_number(const int MIN, const int MAX)
{
  return (rand() % (MAX - MIN + 1)) + MIN;
}

void welcome_msg(void)
{
  printf("TP6: Les Boucles\n");
}

void instructions_msg(const int MIN, const int MAX)
{
  printf("Devinez quel est mon nombre mystere. Indice: c'est un nombre entre %d et %d \n", MIN, MAX);
}

bool incorrect_user_input(const int USER_INPUT, const int MIN, const int MAX)
{
  return USER_INPUT < MIN || USER_INPUT > MAX;
}

bool guess_loop(const int MAX_ATTEMPTS, const int NUMBER_TO_GUESS, const int MIN, const int MAX)
{
  int user_input = 0;

  for (int current_attempts_amount = 0; current_attempts_amount <= MAX_ATTEMPTS; current_attempts_amount++)
  {
    user_input = MIN - 1;
    while (incorrect_user_input(user_input, MIN, MAX))
    {
      printf("tentative %d/%d > ", current_attempts_amount, MAX_ATTEMPTS);
      scanf("%d", &user_input);
      if (incorrect_user_input(user_input, MIN, MAX))
      {
        printf("Veuillez entrer un nombre valide entre %d et %d.\n", MIN, MAX);
      }
    }

    if (user_input < NUMBER_TO_GUESS)
    {
      printf("C'est plus\n");
    }
    else if (user_input > NUMBER_TO_GUESS)
    {
      printf("c'est moins\n");
    }
    else
    {
      printf("nombre correcte");
      return true;
    }
  }
  return false;
}

bool scene_game(void)
{
  const int MIN_VALUE = 1;
  const int MAX_VALUE = 100;
  const int MAX_ATTEMPTS = 10;
  const int RANDOM_NUMBER = get_random_number(MIN_VALUE, MAX_VALUE);
  bool has_won = false;

  instructions_msg(MIN_VALUE, MAX_VALUE);
  has_won = guess_loop(MAX_ATTEMPTS, RANDOM_NUMBER, MIN_VALUE, MAX_VALUE);
  return has_won;
}

bool scene_gameover(void) {
  bool play_again = false;

  while (true) {
    printf("\nTu sais pas compter, t'es NUL !\n");
    play_again = play_again_choice();
    if (!play_again)
    {
      return false;
    }
    return true;
  }
}

bool play_again_choice(void)
{
  int user_input = 0;

  while (true)
  {
    printf("Rejouer ? [0/1] > ");
    scanf("%d", &user_input);
    if (user_input == 0)
    {
      return false;
    }
    else if (user_input == 1)
    {
      return true;
    }
  }
}

int main(void)
{
  bool has_won = false;
  bool play_again = false;

  initialize_random_seed();
  welcome_msg();

  while (true)
  {
    has_won = scene_game();
    if (has_won)
    {
      break;
    }
    play_again = scene_gameover();
    if (!play_again)
    {
      break;
    }
  }
  return 0;
}

Bah c'est très similaire oui, la structure des loops est quasi la même par rapport à JS par exemple. Mais étant que je ne connais pas d'autres langages j'ai préféré laisser ceux qui connaissent le C réppondre pour pas induire en erreur. Je vois comprends pas l'intérêt de ta réponse à part pour rigoler :hap:

Je ne connais pas le C non plus et il n'y a rien à connaître en C pour résoudre son exo. La "Structure des loops" n'est ni propre à C, ni propre à JS.

C'est juste commun à absolument tous les langages, comme absolument tout ce qui est présent dans ce code d'ailleurs, à l'exception de l'horrible scanf.

EDIT : oops, j'ai déclaré une fonction au mauvais endroit dans mon dernier snippet. Il corrigera s'il sait un minimum ce qu'il fait... Sinon...
#include <time.h> #include <stdio.h> #include <stddef.h> #include <stdbool.h> #include <stdlib.h> void initialize_random_seed(void) { srand(time(NULL)); } int get_random_number(const int MIN, const int MAX) { return (rand() % (MAX - MIN + 1)) + MIN; } void welcome_msg(void) { printf("TP6: Les Boucles\n"); } void instructions_msg(const int MIN, const int MAX) { printf("Devinez quel est mon nombre mystere. Indice: c'est un nombre entre %d et %d \n", MIN, MAX); } bool incorrect_user_input(const int USER_INPUT, const int MIN, const int MAX) { return USER_INPUT < MIN || USER_INPUT > MAX; } bool guess_loop(const int MAX_ATTEMPTS, const int NUMBER_TO_GUESS, const int MIN, const int MAX) { int user_input = 0; for (int current_attempts_amount = 0; current_attempts_amount <= MAX_ATTEMPTS; current_attempts_amount++) { user_input = MIN - 1; while (incorrect_user_input(user_input, MIN, MAX)) { printf("tentative %d/%d > ", current_attempts_amount, MAX_ATTEMPTS); scanf("%d", &user_input); if (incorrect_user_input(user_input, MIN, MAX)) { printf("Veuillez entrer un nombre valide entre %d et %d.\n", MIN, MAX); } } if (user_input < NUMBER_TO_GUESS) { printf("C'est plus\n"); } else if (user_input > NUMBER_TO_GUESS) { printf("c'est moins\n"); } else { printf("nombre correcte"); return true; } } return false; } bool play_again_choice(void) { int user_input = 0; while (true) { printf("Rejouer ? [0/1] > "); scanf("%d", &user_input); if (user_input == 0) { return false; } else if (user_input == 1) { return true; } } } bool scene_game(void) { const int MIN_VALUE = 1; const int MAX_VALUE = 100; const int MAX_ATTEMPTS = 10; const int RANDOM_NUMBER = get_random_number(MIN_VALUE, MAX_VALUE); bool has_won = false; instructions_msg(MIN_VALUE, MAX_VALUE); has_won = guess_loop(MAX_ATTEMPTS, RANDOM_NUMBER, MIN_VALUE, MAX_VALUE); return has_won; } bool scene_gameover(void) { bool play_again = false; printf("\nTu sais pas compter, t'es NUL !\n"); play_again = play_again_choice(); return play_again; } int main(void) { bool has_won = false; bool play_again = false; initialize_random_seed(); welcome_msg(); while (true) { has_won = scene_game(); if (has_won) { break; } play_again = scene_gameover(); if (!play_again) { break; } } return 0; }

Ha, et j'ai doublement off-by-one (un vrai champion) :

for (int current_attempts_amount = 1; current_attempts_amount <= MAX_ATTEMPTS; current_attempts_amount++)

pas current_attempts_amount = 0...
Bon, il est temps de dormir là. :pf:

Données du topic

Auteur
ukraini464
Date de création
13 juillet 2023 à 02:39:53
Nb. messages archivés
35
Nb. messages JVC
33
En ligne sur JvArchive 196