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

printf("blabla");

godrik
godrik
Niveau 30
12 août 2013 à 06:33:09

Faire un traitement special pour une chaine vide? Genre si la chaine est vide tu ne fait rien (ou retourne NULL ou un truc du genre.

Pseudo supprimé
Pseudo supprimé 12 août 2013 à 07:03:12

Ca parait logique en plus, je crois que j'ai tellement buté dessus que je n'ai même pas pensé à ça...

Merci à toi :o)) J'essayerai demain de mettre une condition pour ça.

Je vais peut être changer ma fonction aussi, pour qu'elle libère la mémoire d'elle même (je le faisais en dehors avant)

Pseudo supprimé
Pseudo supprimé 12 août 2013 à 07:12:12

Edit :

Je viens de tester maintenant et ça marche.

if(p_player->a_name[0] == '\0')
{
SDL_UpdateRect(p_window, 0, 0, 0, 0);
}

C'est tout bête en plus. Me reste plus qu'à faire une autre condition pour empêcher de saisir + de 11 caractères et je peux passer à une autre fonction :o)

Pseudo supprimé
Pseudo supprimé 16 août 2013 à 22:25:48

John Carmack's keynote at Quakecon 2013

part 1: http://www.youtube.com/watch?v=eNWAcEu1jpU
part 2: http://www.youtube.com/watch?v=w1sjRD7NSec
part 3: http://www.youtube.com/watch?v=93GwwNLEBFg
part 4: http://www.youtube.com/watch?v=1PhArSujR_A
part 5: http://www.youtube.com/watch?v=cWA_9L70moE
part 6: http://www.youtube.com/watch?v=CcnsJMMsRYk
part 7: http://www.youtube.com/watch?v=-93gUpROf9o

Part 1:
    new console cycle
    AMD hardware
    game controllers

Part 2:
    Kinnect
    Digital distribution
    Portable consoles
    Andriod and iOS
    Cloud gaming
    Creative vision vs technology
    Unified memory
    PowerVR and tiled rendering

Part 3:
    displays
    head mounted display
    movement tracking
    sound
    large scale software development
    optimization
    OpenGL

Part 4:
    OpenGL
    functional programming
    Haskell
    Lisp
    Scheme
    strong and weak typing
    multithreading
    events
    garbage collection
    QuakeC vs Scheme

Part 5:
    programming
    Q&A:
        space
        AMD vs Nvidia vs Intel GPUs
        CPU architectures
        GPU computing
        id Tech 5
        id Software company

Part 6 Q&A:
    PC and upcoming console hardware
    MegaTexture
    virtual reality, augmented reality and Google Glass
    voxel, ray tracing
    AMDs virtual texturing
    console cycle beyond Xbox One and PS4
    SSD
    strobe lighting in LCD technology
    control devices advancement
    when single person can do a AAA game like MW3?

Part 7 Q&A:
    id Tech5 and Tango Gameworks

Pseudo supprimé
Pseudo supprimé 17 août 2013 à 03:37:30

Salut ! C'est re moi. Je souhaiterais vous poser une question au niveau C.

Est-ce qu'un programme qui ne fini pas par la fonction main() est mal conçu ?

Ma fonction main() fait appel à une fonction qui initialise le menu, si on clique sur New Game ça fait appel à un autre menu de sélection de nom.

Dans ce menu de sélection, on peut cliquer pour jouer ou pour revenir au menu principal. Pour se faire, je refait appel à ma fonction mainMenu pour appeler le menu principal.

Je ne peux donc pas jongler avec les boucles pour les fermer. Du coup je fais appel à ma fonction exitProgram() qui libère la mémoire et fait un exit(EXIT_SUCCESS).

Est-ce correct de faire ça ?

chris_27
chris_27
Niveau 10
17 août 2013 à 14:08:55

VampireGirl : Quand tu lances un programme, il faut bien commencer quelque part... et ce quelque part, c'est la fonction « main ». Donc si tu veux un programme valide, il faut que tu définisses une fonction main (où tu veux dans ton code, même si je te suggère de la mettre à la fin du fichier source principal).

Maintenant, parlons de la fin du programme. Normalement, quand tu appelles une fonction (y compris « main »), tout le code de la fonction est excécuté et ça se finit par un « return ». Si on arrive au return de la fonction main, le système sait qu'il n'y a plus rien à exécuter, donc le programme s'arrête.
Ça, c'est la situation normale. Seulement parfois, on veut arrêter le programme en plein milieu du code (cf ta situation). Dans ces cas là, on peut faire un appel à la fonction « exit » déclaée dans « stdlib.h ». Si on appelle cette fonction, le système se charge d'arrêter le programme proprement.

PS : j'ai répondu en faisant abstraction des astuces de gourous.

Pseudo supprimé
Pseudo supprimé 17 août 2013 à 22:00:39

comme la dit Chris_27, exit n'est pas une sortie catastrophe du programme c'est d'ailleurs la fonction appelée en sortie de main (fait implicitement par le compilateur).

dans le fond ta question c'est si il vaut mieux n'avoir qu'un seul chemin de sortie. plusieurs livres le conseille pour les fonctions (un seul return), perso jmen tape.

Pseudo supprimé
Pseudo supprimé 18 août 2013 à 05:15:03

Ok merci à vous deux ! :o)

"dans le fond ta question c'est si il vaut mieux n'avoir qu'un seul chemin de sortie."

J'avoue que j'aurai pu poser la question sous cet angla :oui:

chris_27
chris_27
Niveau 10
18 août 2013 à 13:58:57

Perso, je préfère n'avoir qu'une sortie... mais en C, ça peut être casse-pied à faire. Dans ces cas là, mieux vaut utiliser exit que de rendre le code illisible.

Pseudo supprimé
Pseudo supprimé 19 août 2013 à 00:51:06

Simple question, pourquoi préfères-tu n'avoir qu'une seule sortie ? Juste question de goût ou autre ?

dark_drow
dark_drow
Niveau 15
20 août 2013 à 11:12:01

petite question comme ça, je dois manipuler des grands nombres en C (avec virgules en plus)
Du genre j'ai un uint32 à multiplier par 10^3 puis à diviser par 2^32. Dans le pire des cas j'aimerai avoir un résultat entier. Même si je suppose qu'il existe des types qui permettent des nombres sur 128bits je me demande s'il n'existe pas des astuces pour feinter...

chris_27
chris_27
Niveau 10
20 août 2013 à 13:29:51

Définis exactement le résultat que tu veux en fonction de l'entrée n de type uint32. Là, ce n'est pas proprement défini. :(

Pour le reste, je te suggère un cast en double. Tant que tu as moins de 52 bits significatifs, les calculs seront exacts.

dark_drow
dark_drow
Niveau 15
20 août 2013 à 15:18:55

erf en fait je me suis complètement planté, je voulais soustraire deux timestamps ntp (sous la forme [ secondes depuis 1900 (32bit) ][ fractions de seconde (32bits) ] alors que deux bêtes soustractions d'uint32 suffisaient :hap:

Pseudo supprimé
Pseudo supprimé 21 août 2013 à 00:48:31

J'ai une petite question concernant les FPS, voici ma fonction du menu principal :

http://pastebin.com/9fcg5xiT

(Certaines phrases s'affichent sur deux lignes, c'est du à pastebin)

Est-ce que je gère correctement les FPS ? Le programme consomme moins, 9 % du CPU contre 25 % avant sur ma tour.

Mais j'ai bien peur de faire un peu n'importe quoi concernant les FPS.

C'est à la ligne 23, mainMenuButton c'est pour gérer les touches, à la ligne 26 il y a la condition (que je transformerai en fonction après) pour les fps.

Ca a l'air d'être ça, par contre vu que c'est en temps réel ça passe de 14 à 59 en quelque millisecondes seulement.

Pseudo supprimé
Pseudo supprimé 21 août 2013 à 00:52:32

Je remarque aussi que je devrais faire ça :

fps = (actualTime - previousTime);
sprintf(fpsText, "FPS : %d", fps);

En dehors de la condidition...

Paulop
Paulop
Niveau 12
21 août 2013 à 15:11:26

Je te conseille de compter le nombre de frame dans une seconde.
Grosso modo à chaque tour de boucle tu ajoutes 1 dans un compteur de frame, et au bout d'une seconde tu affiches ça.

Ton compteur se mettra a jour moins souvent mais sera plus précis.

Pour un max de précision il faut utiliser les compteur comme QueryPerformanceCounter sur Windows. Après c'est à toi de voir ce que tu préfères.

Pseudo supprimé
Pseudo supprimé 21 août 2013 à 22:59:21

Je ne connais pas trop le C++ mais getline m'a l'air d'être une fonction faite pour les informations déjà formatées (je peux me tromper).

Je me demande si elle ne conserve pas le caractère \n quand tu fais enter après l'âge. Ca expliquerait pourquoi ça ne te laisse pas le temps de demander taper le nom, elle rentre le caractère "\n" dans le nom.

Mais il vaut mieux attendre quelqu'un qui connait le C++ :oui:

Pseudo supprimé
Pseudo supprimé 21 août 2013 à 23:00:36

Oups j'oubliais de répondre à Paulop :o))

Je vais faire ça alors, c'est vrai que ça sera moins déroutant :o))

Pseudo supprimé
Pseudo supprimé 21 août 2013 à 23:10:53

Quand tu appuies sur la touche entrée, tu demandes de passer à la ligne. Il faut bien l'indiquer à l'ordinateur, et ça se fait via le caractère \n qui est invisible.

C'est la caractère qui dit qu'il faut "passer" à la ligne suivante pour mettre en forme un texte. Ne pas le confondre avec \0 qui est le caractère de fin de chaîne (mais tu n'as pas encore vu ça je pense).

Mais je préfère attendre que quelqu'un dise si c'est bien ça :o))

Pseudo supprimé
Pseudo supprimé 21 août 2013 à 23:35:51

Justement, tu dis que seul il fonctionne, c'est parce que tu n'aurais pas entré le fameux \n avant :o)) C'est possible :oui:

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