CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

[arthur78]
[arthur78]
Niveau 2
04 juillet 2008 à 22:38:16

Bonjour à tous j'aimerais savoir si SDL_HWSURFACE ou SDL_DOUBLEBUF peuvent faire buguer certaines cartes graphiques parceque pour un programme tout simple programmé avec SDL j'ai deux personnes sur des pc différents qui reboot après écran bleu.
Ou sinon est ce que certains ordis ne supportent pas SDL ?

[arthur78]
[arthur78]
Niveau 2
04 juillet 2008 à 22:45:40

C'est vraiment un bout de code tout simple, il passe bien chez moi. Je comprends pas pourquoi l'exe saute sur les autres ordis.
Le vilain en question :
http://rafb.net/p/d0XLiu14.html

Lapintade
Lapintade
Niveau 30
04 juillet 2008 à 23:17:09

ajoute un peu de code pour verifier que les images sont bien chargée. Possible que le programme plante parcque les images sont pas la et que ca manipule ensuite des pointeurs nuls.

[arthur78]
[arthur78]
Niveau 2
05 juillet 2008 à 00:38:47

Ben si, les images sont présentes. Le programme marche sur mon ordi et ne fonctionne pas sur les ordis de ceux qui le telechargent (à quelques exceptions près). C'est un problème de carte graphique je crois donc ça se rapporte surement à la configuration de SDL.
Enfin je pense. J'en sais rien pour l'instant je patauge.

truly
truly
Niveau 8
14 juillet 2008 à 01:14:25

Voila je recherche un ou plusieurs programmeur (expérimente) a pour un projet de survival horror en 3d.nous somme deja une quinzaine dans notre team dont artiste 2d ,3d scénariste,chef de projet...mais on est en pénurie de programmeur.

PAD_of-REvO
PAD_of-REvO
Niveau 8
14 juillet 2008 à 01:52:33

Bonjour à tous!

Il y a peur j'ai décider d'essayer d'apprendre le langage c c++!

En me servant du tutoriel du site du zéro ! Je connais pour l'instant que les choses les plus simples uniquement sur les création de programme par la console d'appliation. Je connais donc les ligne simple comme "printf" "scanf" "les variables" "les conditions if else" etc

Donc j'essaye ici de faire un premier programme basique, un calculatrice J'ai rentrer toutes les lignes tu programme mais sa ne fonctionne pas comme je veux!
je vous montre le code:

  1. include <stdio.h>
  2. include <stdlib.h>

int main(int argc, char *argv[])
{ long choix = 0 ;
long chiffre1 = 0;
long chiffre2 = 0;
long resultat = 0;
printf("====calculatrice==== \n");

printf(" quelle calucule voulez vous faire ?\n");
printf(" 1 une mutliplication\n");
printf(" 2 une soustraction \n");
printf(" 3 une addition ?\n");
printf(" 4 une division \n");

scanf("%ld", &choix);

switch (choix)
{
case 1:
resultat = (chiffre1 * chiffre2);
printf("une multiplication\n");
printf("rentrez le chiffres1!\n");
scanf("%ld", &chiffre1);
printf(" rentrez le chiffre 2\n");
scanf("%ld", &chiffre2);
printf("donc %ld multiplier par %ld est egal a %ld\n", chiffre1, chiffre2, resultat);
break;
case 2:
resultat = (chiffre1 - chiffre2);
printf(" 2 une soustraction \n");
printf("rentrez le chiffres1!\n");
scanf("%ld", &chiffre1);
printf(" rentrez le chiffre 2\n");
scanf("%ld", &chiffre2);
printf("donc %ld moin %ld est egal a %ld\n", chiffre1, chiffre2, resultat);
break;
case 3:
resultat = (chiffre1 + chiffre2);
printf(" une addition ?\n");
printf("rentrez le chiffres1!\n");
scanf("%ld", &chiffre1);
printf(" rentrez le chiffre 2\n");
scanf("%ld", &chiffre2);
printf("donc %ld plus %ld est egal a %ld\n",chiffre1, chiffre2, resultat);
break;
case 4:
resultat = (chiffre1 / chiffre2);
printf(" 4 une division \n");
printf("rentrez le chiffres1!\n");
scanf("%ld", &chiffre1);
printf(" rentrez le chiffre 2\n");
scanf("%ld", &chiffre2);
printf("donc %ld diviser par %ld est egal a %ld \n",chiffre1, chiffre2, resultat);
break;
default:
printf(" Comprend pas :) \n");
break;
}

system("PAUSE");
return 0;
}

alors voila le premier probleme c'est que lorsque que je veux choisir la division (donc 4) le programme bug (envoyer ne pas envoyer)

mais ensuite c'est que peut importe les chiffre que je rentre le résultat sera toujours 0 :(
par exemple je choisi l'addition
je rentre 1 en chiffre 1, je rentre 2 en chiffre 2.
et la sa me met le resultat de 1 plus 2 est 0

je voix pourtant vraiment pas ou sa cloche si quelqu'un pourrait m'expliquer merci :D

guyver2
guyver2
Niveau 10
14 juillet 2008 à 23:00:01

tous tes problèmes viennent du meme endroit :
tu fais le calcul AVANT de récupérer les chiffres de l'utilisateur.

Au moment ou tu fais les calculs, c'est a dire les lignes suivantes :
resultat = (chiffre1 * chiffre2);
resultat = (chiffre1 + chiffre2);
resultat = (chiffre1 - chiffre2);
resultat = (chiffre1 / chiffre2);

chiffre1 et chiffre2 valent toutes les deux 0

Il faut donc que tu déplace ces lignes APRES les scanf.

Le bug de la division vient du fait qu'il est impossible de diviser par 0 -> bug
sinon pour le resultat qui est toujours 0 c'est parce que :
0*0 = 0+0 = 0-0 = 0

Bon courage pour la suite de ton apprentissage

toupine
toupine
Niveau 32
15 juillet 2008 à 13:19:46

:salut:

J'ai enfin reçu le livre de K&R :content:

:fete:

elywood01
elywood01
Niveau 10
11 décembre 2010 à 22:40:26

Je ressuscite le topic pour savoir si quelqu'un a une idée de comment faire un nombre aléatoire en C, sur un long int ou un long long int (la fonction rand() n'allongeant que jusqu'à 32767) ?

Merci :) !

godrik
godrik
Niveau 30
11 décembre 2010 à 22:50:05

Je ne sias pas de combien de bit de precision tu as besoin par ce que la taille de long int depend des machines et des compilateur.

la fonction drand48 (et derive, voir man 3 drand48 ) te rends 32 aleatoires.
si tu as besoin de 64 bits, tu peux combiner plusieurs appel a drand48 du genre:

u32 a = lrand48();
u32 b = lrand48();
u64 res = ((u64)a)<<32 & b;

Note, je ne pense pas que tu ais de garanti statistique sur res.

elywood01
elywood01
Niveau 10
11 décembre 2010 à 23:01:11

Merci de ta réponse.

Mais cette fonction est dans stdlib.h ?

Là je suis sous windows donc j'utilise le compilateur de Code::Blocks, et il ne la reconnaît pas ?

godrik
godrik
Niveau 30
11 décembre 2010 à 23:10:40

extrait de man drand48:
CONFORMING TO
SVr4, POSIX.1-2001.

NOTES
These functions are declared obsolete by SVID 3, which states that rand(3) should be used instead.

Tu peux hacker de la meme facon a partir de rand, verifie le nombre de bit aleatoire genere par rand.

elywood01
elywood01
Niveau 10
11 décembre 2010 à 23:55:45

Oui en fait le plus simple c'est de faire cette fonction :

long long int randl32 ()
{
long long int i,tmp,tot;
tot=rand()%2;
tmp=1;
for(i=0;i<31;i++)
{
tot+=(rand()%2 * (tmp *= 2));
}
return tot;
}

(génère 32 zéro ou un avec rand(), et les recolle en un décimal)

Pas sûr que ça ait le coût le plus faible mais pour le coup c'est pas grave.

elywood01
elywood01
Niveau 10
12 décembre 2010 à 00:44:21

Raaaah, cette fonction semble légèrement défectueuse...

Sur un panel de 1000 nombres (de 0 à 999), il en manque toujours une dizaine (jamais les mêmes) qui ne sont pas trouvés, que ce soit en appelant la fonction cent mille fois ou cent millions de fois, une dizaine ne seront pas retournées par " randl32()%1000 "

Autrement dit la distribution de ma fonction est tout sauf équitable :/

Curieux car j'ai fait un essai sur la répartition d'un rand()%2 et c'était très équitable.

Je vais voir ce que donne 1 000 000 appels à randl32()%2, voir si on a déjà du 500 000 zéro et 500 000 un, sinon ça sentirait vraiment le roussi...

:d) Bon ben celle-ci a l'air correcte, à une dizaine près on est à 500 000 un et 500 000 zéro... du coup je sèche complètement ^^

Nvidia16
Nvidia16
Niveau 6
14 décembre 2010 à 18:48:47

Salut,

Je code en SDL/C++
Moi j'ai une fonction qui me permet de selectionner un rectangle et de faire un blit surface de façon à ce que ce rectangle après appuis de la souris en continue suive la souris, et lorsqu'on relache, que ça lache, du drag and drop en fait ...

Le soucis est que lorsque je déplace mon rectangle tous les blits associés à chaque nouvelles coordonnées s'additionnent sur mon jeux, et c'est horrible. Je n'arrive pas à trouver comment supprimer ces trainées de mon image ... Merci !

godrik
godrik
Niveau 30
14 décembre 2010 à 19:09:44

elywood01, c'est un probleme connu des generateurs a base de congruence lineaire. La generation de nombre est bien distribue mais la generation de pair ne l'est pas.
Il est preferable de ne pas utilsier l'operateur % sur ces generateur.

pour plus d'information, voir, les algo de generation aleatoire dans "the art of computer programming" et leurs empreintes spectrales.

godrik
godrik
Niveau 30
14 décembre 2010 à 19:10:35

Nvidia16, J'imagine que tu devrais invalider la position precedente du rectangle de facon a la redessiner.

[Diable]
[Diable]
Niveau 8
15 décembre 2010 à 17:53:15

quelqun peu m'aider je sais pas comment on mes dinamytes ou des pièges merci de m'aider
https://www.jeuxvideo.com/forums/1-31-8593230-1-0-1-0-nouveau.htm
:hap:

Cinematique
Cinematique
Niveau 10
17 décembre 2010 à 21:41:58

J'ai une question simple et rapide :

SDL ou SFML ?

Je connais déjà la SDL mais je vois de plus en plus de gens passer à SFML

caelacanthe
caelacanthe
Niveau 10
17 décembre 2010 à 23:08:05

tout dépend de tes besoins, la SDL permet de faire des jeux en C tandis que la SFML serait apparament plus orientée objet :(

dans mon dernier projet, j'ai choisi la SDL pour une histoire de taille des fichiers exécutables, et parce que le rendu fait plus oldschool :oui:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment