Projet langagec

Fermé
thomas.b - 7 janv. 2021 à 11:54
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 - 9 janv. 2021 à 01:57
Bonjour, j'ai un devoir et je ne sais pas quoi faire pour les codes. La maquette j'ai réussi

La règle du jeu est simple : l’ordinateur va faire écouter au joueur une suite de sons choisis aléatoirement parmi les catégories proposées. Le joueur doit mémoriser l’ordre des sons pendant
l’écoute. L’objectif pour le joueur est de proposer un classement de sons, afin de retrouver exactement l’ordre dans lequel il avait écouter ces sons.
Pour choisir le son correspondant à un élément, il suffit de saisir son numéro puis taper la touche
entrée pour que l’élément s’ajoute au classement. Vous pouvez aussi modifier votre classement
en cours dans le cas où vous souhaiteriez replacer/supprimer le son d’un élément.
Une fois votre classement donné, l’ordinateur indiquera les bonnes et les mauvaises cases

c'est urgent svp
A voir également:

7 réponses

yg_be Messages postés 23421 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 janvier 2025 Ambassadeur 1 557
7 janv. 2021 à 12:38
0
comment faire jouer aléatoirement les sons ? quel est le code ? je ne sais pas
0
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 1 097
Modifié le 7 janv. 2021 à 14:24
Pour jouer aléatoirement des sons, ont peut par exemple :
  • stocker les N fichiers sons concernés dans un répertoire
  • stocker les chemins des fichiers sons dans un tableau de dimension N
  • tirer au sort, avec ou sans répétitions selon ce que l'énoncé demande en utilisant rand() préalablement initialisée
  • utiliser une fonction de l'API du système d'exploitation pour jouer le fichier son (le C ne contient pas, dans la spécification du langage, des fonctions permettant de jouer des sons)


Pour faire cela, sous Windows, on peut utiliser la fonction de l'API Windows PlaySound() par exemple : https://docs.microsoft.com/en-us/previous-versions/dd743680(v=vs.85)

Si on veut faire du code portable, on peut aussi installer une bibliothèque supportant ce type de fonctionnalités. Par exemple la SDL2, et ses fonctions Mix_LoadWAV() ou Mix_LoadMUS ()

https://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer_19.html
https://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer_55.html

Dal
0
merci ! comment faire stocker les fichiers sons dans le repertoires ?
ca m'affiche impossible
0
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 1 097
8 janv. 2021 à 14:09
Bonjour Thomas,

Malheureusement, nous ne sommes pas voyants extralucides et nous ne sommes pas dans ta tête (heureusement).

Si ta question a un lien avec la programmation en langage C, alors poste le code qui génère une erreur en indiquant précisément le contexte d'exécution dans le lequel cette erreur se déclenche, en indiquant où cette erreur s'affiche et comment.

Si ta question n'a pas de lien avec la programmation en langage C et concerne juste l'utilisation de son système d'exploitation pour copier des fichiers à un certain endroit (lequel ?), alors tu n'est pas sur le bon forum.

Dans les deux cas, tu n'as pas fourni assez d'explications sur ce que tu essayes de faire, comment, dans quel répertoire, quand est-ce que le message d'erreur s'affiche (en faisant quoi très exactement), et tu ne donnes d'ailleurs pas le message d'erreur exact.

En bref, pour nous aussi il est "impossible" de te répondre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je devais taper le code sudo apt install libsox* dans le terminal pour installer des sons mais ca ne fonctionne pas j'ai meme essaye sudo pat install sox et ca affiche play fail
0
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 1 097
Modifié le 8 janv. 2021 à 17:52
Tu es donc sous Linux. Peux-tu préciser :
  • quelle est ta version de Linux (type Ubuntu, Debian, etc. et numéro ou nom de version) ?
  • est-ce que le son fonctionne sur ton système (ouvre une vidéo Youtube avec ton navigateur, etc.), entends tu le son ? Dans la négative, est-ce un PC dont tu disposes ou un ordinateur portable ? Est-il doté d'une carte son et la sortie son est-elle reliée à des hauts parleurs ou des écouteurs ?
  • quel est le format des fichiers sons que tu veux jouer à partir de ton programme .c (.wav, .ogg, .mp3, etc.) ?
0
j'ai ubuntu
oui le son fonctionne
je voudrais jouer le format mp3
0
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 1 097
Modifié le 9 janv. 2021 à 02:09
OK, alors sous Linux Ubuntu, avec SDL2_mixer préalablement installée

sudo apt-get install libsdl2-mixer 


en supposant que tu as un fichier "signal.mp3" dans le même répertoire où se trouve le fichier playsound.c suivant :

#include "SDL2/SDL.h"
#include "SDL2/SDL_mixer.h"

int main(int argc, char **argv) {
    int result = 0;
    int flags = MIX_INIT_MP3;

    /* init SDL */
    if (SDL_Init(SDL_INIT_AUDIO) < 0) {
        printf("Failed to init SDL\n");
        exit(1);
    }

    /* init SDL_mixer */
    if (flags != (result = Mix_Init(flags))) {
        printf("Could not initialize mixer (result: %d).\n", result);
        printf("Mix_Init: %s\n", Mix_GetError());
        exit(1);
    }
    Mix_OpenAudio(22050, AUDIO_S16SYS, 2, 640);

    /* open a mp3 file and play it one time until the end */
    Mix_Music *music = Mix_LoadMUS("signal.mp3");
    Mix_PlayMusic(music, 1);
    while (Mix_PlayingMusic()) {
        SDL_Delay(100);
    }
    Mix_FreeMusic(music);

    /* done using SDL */
    SDL_Quit();
    return 0;
}

on compile playsound.c et on l'exécute :

$ gcc -oplaysound playsound.c `pkg-config --cflags --libs SDL2_mixer`
$ ./playsound 


Ce code devrait fonctionner exactement de la même manière sous Windows et les autres systèmes d'exploitation supportés par la SDL2. Il suffit d'installer la bibliothèque et de compiler avec les bonnes options.

La SDL2 permet de faire d'autres choses (gestion de l'écran, clavier, souris, etc.).

Si tu préfères une bibliothèque portable dédiée à la gestion du son, tu peux aussi voir du côté de FMOD, qui est plus complète.

Dal
0