Full d茅butant, j'apprends avec OpenClassroom. 1 fois sur 2 j'ai le bon resultat...
Un pro pour m'aider ? J'ai test Claude, GROK, GPT, ils trouvent pas la source du pb... Le but c'est de calculer les positions des ennemis pour voir si le joueur gagne selon sa position.
J'utilise GCC pour info.
Merci pour votre aide les kheys...
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <dlfcn.h>
#include <stdbool.h>
int addSpeed(int speed){
return speed ^ 55;
}
int main() {
printf("Bienvenue dans la simulation physique !\n");
printf("Calcul des vitesses ennemies...\n");
int speeds[8] = {68, 78, 68, 67, 82, 90, 0};
int newSpeeds[8] = {0};
for (int i = 0; i < 6; ++i){
newSpeeds[i] = addSpeed(speeds[i]);
}
printf("Calcul des positions ennemies...\n");
int positions[8] = {69, 90, 23, 26, 69, 81, 23, 29};
int newPositions[8] = {0};
for (int i = 0 ; i < 8; ++i){
newPositions[i] = addSpeed(positions[i]);
}
printf("Tu vas affronter le Roi... Comment souhaites-tu le nommer ?\n");
char enemyName[7] = {0};
for (int i = 0 ; i < 6; ++i){
enemyName[i] = (char)newSpeeds[i];
}
printf("Et toi, comment te nommes-tu ?\n");
char heroName[8] = {0};
for (int i = 0 ; i < 8; ++i){
heroName[i] = (char)newPositions[i];
}
printf("Et c'est la simulation finale, le jet du sort !\n");
int (*acceleration)(const char*) = dlsym(RTLD_DEFAULT, enemyName);
printf("Et c'est fini !\n");
acceleration(heroName);
}
Le 15 ao没t 2025 脿 18:46:26 :
tu as quoi comme erreur lors de l'execution
Soit tout fonctionne soit j'ai Segmentation Fault
int addSpeed(int speed){ return speed ^ 55; }
int main(void) {
int speeds[8] = {68, 78, 68, 67, 82, 90, 0};
int positions[8] = {69, 90, 23, 26, 69, 81, 23, 29};
char enemyName[7] = {0};
for (int i = 0; i < 6; ++i) enemyName[i] = (char)addSpeed(speeds[i]);
char heroName[9] = {0};
for (int i = 0; i < 8; ++i) heroName[i] = (char)addSpeed(positions[i]);
// dlsym + v茅rif
int (*acceleration)(const char *) = (int (*)(const char *)) dlsym(RTLD_DEFAULT, enemyName);
char *err = dlerror();
if (err || !acceleration) {
fprintf(stderr, "dlsym failed: %s\n", err ? err : "unknown error");
return 1;
}
//
return acceleration(heroName);
}
Essayes comme 莽a l鈥檕p, 莽a marche chez moi sur GCC :
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <dlfcn.h>
#include <stdbool.h>
int addSpeed(int speed){
return speed ^ 55;
}
int main() {
printf("Ouvrez vos CULS page PROUT !\n");
printf("Calcul de la vitesse de l鈥檃mpoule rectale...\n");
int speeds[8] = {68, 78, 68, 67, 82, 90, 0};
int newSpeeds[8] = {0};
for (int i = 0; i < 6; ++i){
newSpeeds[i] = addSpeed(speeds[i]);
}
printf("Calcul de la positions des pets oeuf茅s...\n");
int positions[8] = {69, 90, 23, 26, 69, 81, 23, 29};
int newPositions[8] = {0};
for (int i = 0 ; i < 8; ++i){
newPositions[i] = addSpeed(positions[i]);
}
printf("Tu vas PROUTER dans le cul de Nasdas ... Comment souhaites-tu le nommer ?\n");
char enemyName[7] = {0};
for (int i = 0 ; i < 6; ++i){
enemyName[i] = (char)newSpeeds[i];
}
printf("Et toi, comment te nommes-tu ?\n");
char heroName[8] = {0};
for (int i = 0 ; i < 8; ++i){
heroName[i] = (char)newPositions[i];
}
printf("Et c'est la simulation finale, le pet du sort !\n");
int (*acceleration)(const char*) = dlsym(RTLD_DEFAULT, enemyName);
printf("Et c'est fini !\n");
acceleration(heroName);
} 
JvArchive compagnon