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

Snake en C

godrik
godrik
Niveau 30
05 janvier 2011 à 00:19:18

Si tu nous disais plutot ce que c'est que ta machine mystique qui est SMP et surlaquelle prendre 60 lock par seconde represente un ralentissement serieux des performances ?

Parceque sur mon dual core qui a 4 ans, un code bete comme ses pieds passe de l'ordre de 3000 jetons par millisecondes. Sur un atom de premiere generation (donc pas SMP), j'en passe de l'ordre de 1000 par millisecondes.

Donc bon... je ne vois pas bien le probleme de prendre 60 locks par seconde.

Pour sortir des considerations techniques et rentrer un peu plus dans le pedagogique. OP est evidement debuttant et tu lui dis de ne pas faire de liste chaine mais plutot des tableau parceque comme ca tu n'as pas besoin de prendre de verrou quand tu fais de la programmation parallele parceque les tableaux sont plus rapide. Est ce que tu te rends compte que ce n'est:
1/ pas de son niveau
2/ catastrophique dans 99% des cas d'utilisation
?

astraldice
astraldice
Niveau 7
05 janvier 2011 à 02:16:11

On est en C les mecs! :-d

</retour au sujet

OP parlais de C, les Linked Lists sont implémentées ici avec des pointeur et sont très performantes pour précisément ce type d'application : ajout au début, suppression à la fin.
Les implémentations déjà existantes sont ultra optimisée et nécessitent au maximum trois ou quatre fonction à utiliser.
Les pointeurs sont l'épine dorsale du C et de l'assembleur, il y a des pointeurs absolument partout, leur manipulation est très rapide. :)

Comme je le disais, on a un gros problème avec le tableau 2D dans ce type de cas qui se réalise à chaque partie: http://lsd4people.org/serpent.png.
Même si on connait la tête et la queue, c'est impossible de trouver le vrai chemin à moins de complexifier énormément la structure de donnée des cases du tableau et l'algorithme de base. :-)

godrik
godrik
Niveau 30
05 janvier 2011 à 02:18:28

astraldice, pour etre pointilleux, j'ai envie de dire qu'un buffer circulaire sera probablement beaucoup efficace qu'une liste chaine (comme la taille du serpent est borne, on peut allouer un tableau suffisament grand facilement). Mais c'est un peu plus chiant a implementer.

Ca me fait penser a une comparaison de structure de donnee que j'avais ecris il y a un an: http://godrik.mandragor.org/drsauleintheus/post_detail.php?post=2009-11-08-20-00

alex5513
alex5513
Niveau 7
05 janvier 2011 à 23:58:26

Voila j'ai deux fonctions, 1'une qui calcule le meilleur score et l'autre qui l'affiche mais je n'arrive pas a faire coïncider hscore1 de l'affichage avec le hscore1 calculé a la fin de la fonction de calcul. je suppose qu'il faut utiliser les pointeurs mais comme j'ai été absent au cours sur les pointeurs je n'arrive a rien, cela fait 2h que j'essaie :'(
help

void CalculHighScore(void){

int hscore1=0, hscore2=0;

hscore2=score;

if(hscore2>hscore1){
hscore1=hscore2;
}
AffichageHighScore(&hscore1);
}

void AffichageHighScore(int* pointeurHscore1){

char hs[50];

ChoisirCouleurDessin(CouleurParNom("Black"));
RemplirRectangle(712,154,76,44);
sprintf(hs,"%d", *pointeurHscore1);
ChoisirCouleurDessin(CouleurParNom("Green"));
EcrireTexte(760,179,hs,0);

}

ps: pour les déplacements (grâce a vos aides) et l'affichage des pommes et du score on a réussi avec mon binôme merci :D

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