Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

30 commentaire(s) de Chouchou182 sur des sources sur tout CodeS-SourceS

Le : 03/02/2005 17:56:49
Source : PONG EN SDL
Oula

en effet, j'ai fumé quoi moi ??

Il faut donc utiliser le type de donnée dont la taille en mémoire correspond à la capacité recherchée (256 octets est trop et 1 octet est effectivement insuffisant).

Merci Kirua pour ta présence d'esprit.


Le : 02/02/2005 22:18:06
Source : PONG EN SDL
Salut

Shenron666, pour mapper l'état (appuyé ou non) de 256 touches, un octet suffit : 1 bit par touche et on utilise des and et or bit à bit pour faire les tests.

Ce sera plus rapide et l'utilisation de la mémoire sera moindre.

Personnellement j'intercepte les appuis des touches via SDL_KEYDOWN et SDL_KEYUP et j'ajuste par des opérations logiques l'état des bits de ma variable contenant l'état des inputs de mon jeu.

Ensuite pour déplacer, je teste successivement l'état de chaque touche et agis en conséquence.

Bonne prog

Chouchou



Le : 30/07/2004 11:55:48
Source : GALERIE D'IMAGE AVEC RÉATION DE MINIATURE ET COMPRESSION DES ORIGINAUX
Salut

Je poste l'ensemble corrigé, il est disponible à cette adresse :
http://www.phpcs.com/code.aspx?ID=25025

A++

Chouchou


Le : 25/07/2004 23:51:51
Source : COMPTE À REBOUR EN C++
Bonjour.

Tu es sûrement débutant ; il ne faut pas se décourager mais tu as encore quelques progrès à faire.

Tout d'abord ton compte à rebours n'a rien de "très simple". Il est totalement illisible.

Il y a trop d'includes : <iostream> et <ctime> auraient suffi.
L'ordinateur sait faire des calculs sur des nombres plus grand que 10, il n'est donc pas nécessaire de traiter chiffre par chiffre.
cout c'est du C++, getch() c'est pas standard. Alterner n'est pas l'idéal d'un point de vue logique du programme.
L'utilisation de goto ainsi que celle de l'opérateur virgule sont plutôt à bannir. Dans certains cas ils peuvent être utiles mais pas dans ton programme.

La méthode aussi a des lacunes, tu attends 1000 millisecondes mais tu ne mesures pas le temps nécessaire à l'affichage et aux calculs. Donc tes secondes sont un peu trop longues.

Nous allons donc refaire un compte à rebours en C ansi lisible :

[Code]
/* rebours.c */

/* Includes */
#include <stdio.h> /* Pour les entrées / sorties */
#include <time.h>  /* Pour mesurer le temps qui passe */

/* main */
int main(int argc, char** argv)
{
    /* Variables */
    /* Durées entrées par l'utilisateur */
    time_t heures = 0, minutes = 0, secondes = 0 ;
    /* Temps à patienter en secondes, déduit de la saisie de l'utilisateur */
    time_t temps = 0 ;
    /* Heure du début du compte à rebours */
    time_t debut = 0 ;
    /* Temps écoulé et temps écoulé précédant */
    time_t temps_ecoule = 0, precedant = 0 ;

    /* On affiche un petit message de bienvenue */
    puts("-- Compte \205 rebours --\n") ;

/*
* On commence par demander à l'utilisateur
* la durée du compte à rebours
*/
    /* On lit le nombre d'heures... */
    puts("Entrez le nombre d\'heures \205 attendre : ") ;
    scanf("%d", &heures) ;
    /* ...puis le nombre de minutes... */
    puts("Entrez le nombre de minutes \205 attendre : ") ;
    scanf("%d", &minutes) ;
    /* ...et enfin le nombre de secondes */
    puts("Entrez le nombre de secondes \205 attendre : ") ;
    scanf("%d", &secondes) ;

/*
* On convertit la saisie de l'utilisateur en un nombre de secondes
*/
    temps = secondes + minutes * 60 + heures * 3600 ;

/*
* Maintenant on boucle tant que le temps n'est pas écoulé.
* C'est une boucle infinie qui utilise toute la puissance de calcul
* du CPU.
*/
    /* On récupère l'heure de début du compte à rebours */
    time(&debut) ;
    while ( temps > (temps_ecoule = time(0) - debut) )
    {
        /* Seulement lorsque le temps écoulé change : */
        if ( precedant == temps_ecoule )
            continue ;

        /* On convertit le temps restant au format h-m-s */
        secondes = (temps-temps_ecoule) % 60 ;
        minutes  = ( ((temps-temps_ecoule) - secondes) / 60 ) % 60 ;
        heures   = (((temps-temps_ecoule) - secondes) / 60 - minutes) / 60 ;
        /* On affiche le temps restant */
        printf("\r%02ih%02im%02is soit %06is", heures, minutes, secondes, (temps-temps_ecoule)) ;

        /* On sauve le temps écoulé */
        precedant = temps_ecoule ;
    }

/*
* Un petit message d'adieu pour que le programme
* ne se ferme pas avant que l'utilisateur ne l'ai vu
* en entier
*/
    puts("\nC\'est fini !!\nEntrez une valeur pour terminer\n") ;
    getchar() ;

    return 0 ;
}

[/Code]

Cette méthode n'est toujours pas idéale. En effet elle consomme toutes les resources disponibles et n'est fiable qu'à la seconde près.

J'espère que ce code te servira.

Et si tu as des questions, surtout, n'hésite pas.

A++

Chouchou


Le : 08/07/2004 16:28:53
Source : GALERIE D'IMAGE AVEC RÉATION DE MINIATURE ET COMPRESSION DES ORIGINAUX
Salut à vous, belle compagnie !!

Puisque Mr Aramiil est allé passer ces vacances dans un pays peuplé d'ostrogoths sans PC, j'ai résolu le problème.
Je ne sais pas si tu avais fait des tests avant de poster parce que réussi à inclure un fichier qui n'existe pas, chapeau.
compress.php existe mais compres.php?file_to.... lui, n'existe pas !!

Donc la ligne avec l'include défaillant (46 si je ne m'abuse) est à remplacer par :
compress($image, $title) ;

la fonction compress est la copie presque conforme du fichier compress. Il y a tout de même quelques modifications à faire donc je donne tout le début du fichier compress_dir.php :

&lt;?
//on inclu la fonction de miniaturisaton
include('mini.php');
include('param.php');

// Fonction de compression
function compress ($file, $__title)
{
global $directory, $login, $serveur, $pass, $base ;
// On se protège contre les apostrophes dans le noms de fichier. Le KHANARD qui a inventé ça ...
$file = addslashes($file) ;
// On se protège aussi des utilisateurs qui savent pas que les guillemets, ça passe mal
$title = addslashes($__title) ;
//on determine le fichier à compresser
$file_to_c_whithout_path = $file;
$file_to_c = $directory.$file_to_c_whithout_path;



//on l'ouvre
if ($file_open = @fopen($file_to_c, "r+"))
{

//on lit les données
$data = fread($file_open, filesize($file_to_c));

//on ferme le fichier
fclose($file_open);

//on compress les données
$compress = bzcompress($data, 9);

//on ouvre le fichier de sauvegarde
if ($file_open = @fopen($file_to_c.'.bz', "w+"))
{

//on inscrit les données
fwrite($file_open, $compress);

//on ferme le fichier
fclose($file_open);

} else {

//on affiche l'erreur
echo 'Impossible d\'ouvrir le fichier compréssé';
exit;
}

//on recupere les infos
$info = pathinfo($file_to_c);

//on lance la miniaturisation
miniature($file_to_c, $file_to_c_whithout_path, strtolower($info["extension"]));
unlink($file_to_c);

//on créé le titre
$connection = MySQL_connect($serveur, $login, $pass) or die(mysql_error());
mysql_select_db($base, $connection) or die(mysql_error());
MySQL_query("INSERT INTO titres (image, titre) VALUES ('$file_to_c_whithout_path', '$title')", $connection) or die(mysql_error());
MySQL_close($connection);

//on affiche confirmation
echo 'L\'image '.$file_to_c.' à bien été compréssée.&lt;br&gt;';
} else {

//affichage de l'erreur
echo 'Impossible d\'ouvrir le fichier à compresser.';

}
}
//on regarde l'action
$act = $_POST['act'];

//....

Le reste, vous l'avez déjà

Bonnes vacances à ceux qui en ont et bonne prog à tous !

A++

Chouchou


Le : 04/07/2004 22:14:10
Source : WARHAMMER CALCUL
Salut

Le coup des \202 ne sort pas de nulle part et s'explique :
Pour tous les caractères codés sur 8bits (et pas 7), c'est à dire qui font partie de la table ASCII étendue, on remarque qu'ils ne s'affichent pas correctement à l'écran.
On les remplace donc par une séquence d'échappement composée d'un backslash (\) suivi du code ASCII du caractère à afficher en base octale (8).

Cette astuce fonctionne sous MS-DOS mais pas sous Linux (ailleurs je n'ai pas testé).

Etrange mais c'est une habitude qui se prend.

A++

Chouchou


Le : 04/07/2004 12:54:56
Source : COLORATION SYNTAXIQUE D'UN FICHIER SOURCE EN C/C++ (DEV-C++)
Salut

C'est sympa comme source

Je pense que tu aurais pu programmer une routine de comparaison du mot en cours avec un tableau contenant tous les mots-clés. Parce que là c'est plutôt long ce gros switch suivi de pas mal de if...

En utilisant strncmp ce serait également allé plus vite (à programmer)

Sinon il manquait effectivement string.h (et pas strings.h) mais ce n'est pas dramatique

A++

Chouchou



Le : 23/06/2004 23:30:14
Source : BIJECTION EXPLICITE ENTRE N ET Q+
Salut

Je pense avoir résolu le problème lié à cin provoquant un affichage ininterrompu en cas de saisie maladroite de la part de l'utilisateur. Voila les modifications :
  -Saisie de 'choix' pour le menu :
      fflush(stdin) ;
      choix = getchar() - 48 ;
  -Saisie de 'valeur' pour la case 1:
            char val[50] ;
            cin &gt;&gt; val;
            valeur = atoi(val) ;
  -Méthode de saisie d'une fraction:
istream & operator &gt;&gt; (istream & in, fraction &b)
{
   char val[50] ;
   in &gt;&gt; val ;
   b.numerateur = atoi(val) ;
   in &gt;&gt; val ;
   b.denominateur = atoi(val) ;
   b.simplifier();
   return in;
}

Le principe est simple : on récupère la saisie de l'utilisateur comme une chaîne de caractères et transforme à l'aide de atoi. En cas d'erreur, atoi renvoie 0 donc le programme continue sans problème.

Bonne Prog !

Chouchou.


Le : 23/06/2004 16:49:19
Source : REMPLACE DANS TOUTE UNE CHAINE
Salut

Je ne voudrais pas critiquer mais si cette source est un exemple, c'est pas vraiment très clair.
Certes on apprend mieux en essayant de comprendre seul mais quelques commentaires seraient bienvenus parce que certaines lignes peuvent rester obscures pour le programmeur peu averti.

Merci.

Chouchou


Le : 05/06/2004 21:35:35
Source : QUELQUES AIDES MATHÉMATIQUES
Salut

T'aurais pu utiliser switch (choix) plutot que if (choix == ...)

A++

Chouchou



1 2 3


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.