alpha test

skensken Membre
03:20 modifié dans Vos applications #1
Bonjour à  tous,
Moi, je me permets de soumettre à  votre sagacité une ébauche d'ébauche d'ébauche...
Si ça ne vous ennuie pas, j'aimerais bien que vous me disiez comment je peux optimiser et améliorer cette petite application : c'est un petit jeu tout bête, pour apprendre la géographie, qui commence par l'Afrique, où il faut simplement répondre à  la question de l'ordinateur : où se trouve tel état.?
Vous verrez qu'il y a sûrement plein de choses à  amméliorer dans l'xistant, et évidemment, des choses à  développer ensuite (score, préférences gardant les scores etc...).
Auriez- vous déjà  la
«1

Réponses

  • VeillardVeillard Membre
    03:20 modifié #2
    On peut récupérer l'appli où ?
  • skensken Membre
    03:20 modifié #3
    dans 1110129550:

    On peut récupérer l'appli où ?


    Je suis désolée, mais mon projet fait 8 MO après zip,donc je ne peux pas l'envoyer.
  • VeillardVeillard Membre
    03:20 modifié #4
    En effet...  :o

    Euh, sinon, comment on fait pour le tester  ???
  • skensken Membre
    03:20 modifié #5
    Je pense que là  ça va le faire, j'ai retiré le  dossier Build.

    Donc, si vous avez la gentillesse et la patience de me dépiauter cette petite appli et de me suggérer des optimisations, elles seront bienvenues. Je suis HYPER HYPER DEBUTANTE !!! (et en plus du sexe "faible", ce qui est apparemment très minoritaire dans ce forum !!!!)
    :adios!:
    le fichier s'appelle Pad7 (ne me demandez pas pourquoi  :o ))

    [Fichier joint supprimé par l'administrateur]
  • 03:20 modifié #6
    Si je peux te donner un premier conseil, le mieux serait d'éviter d'avoir du code en trop. Pourquoi faire un dico si les clefs ne sont qu'une suite de nombre ? Tu devrais utiliser un NSArray et récupérer la valeur avec [ton_ns_array objectAtIndex:tonIndex]

    Ensuite, pour éviter d'éventuel problèmes d'encodage et pour faire plus mieux tu devrais ajouter un nouveau fichier vide à  ton projet, fichier que tu nommes par exemple monArray.plist avec comme contenu :

    {
        monArray = (
    Kenya,
    Rwanda,
    Burundi
        );
    }

    Dans le code du charge ensuite l'array avec

    NSString *path=[[NSBundle mainBundle] pathForResource:@monArray ofType:@plist];
    NSLog(@path %@",path);
    NSArray *monArray=[[NSArray alloc] initWithContentsOfFile:path];
    NSLog(@monArray %@",monArray);

    Voilà , je n'ai pas eu le courage de modifier tes sources :p

  • cbrandtcbrandt Membre
    03:20 modifié #7
    ben, j'ai téléchargé le truc 3 fois et à  chaque fois je ne peux pas le dézipper ??? j'ai un message d'erreur...  :'(
  • skensken Membre
    03:20 modifié #8
    dans 1110133622:

    Si je peux te donner un premier conseil, le mieux serait d'éviter d'avoir du code en trop. Pourquoi faire un dico si les clefs ne sont qu'une suite de nombre ? Tu devrais utiliser un NSArray et récupérer la valeur avec [ton_ns_array objectAtIndex:tonIndex]

    C'est exact, c'est ce que j'avais fait au début et puis j'ai voulu ensuite faire en sorte que l'appli ne redemande pas un état déjà  trouvé, alors je suis partie sur un tableau dans lequel je retirais le dico une fois trouvé, mais ça ne marchait pas. Au bout du compte j'ai trouvé la solution en mettant les indices du tableau dans un un autre tableau...

    dans 1110133622:
    Ensuite, pour éviter d'éventuel problèmes d'encodage et pour faire plus mieux tu devrais ajouter un nouveau fichier vide à  ton projet, fichier que tu nommes par exemple monArray.plist avec comme contenu :

    {
        monArray = (
    Kenya,
    Rwanda,
    Burundi
        );
    }

    Dans le code du charge ensuite l'array avec

    NSString *path=[[NSBundle mainBundle] pathForResource:@monArray ofType:@plist];
    NSLog(@path %@",path);
    NSArray *monArray=[[NSArray alloc] initWithContentsOfFile:path];
    NSLog(@monArray %@",monArray);

    Voilà , je n'ai pas eu le courage de modifier tes sources :p




    Je crois comprendre ce que tu veux dire, je vais essayer... mais il est fort possible que je te redemande des explications sur ce point !!!
    Merci en tous cas déjà  !!
  • skensken Membre
    03:20 modifié #9
    dans 1110133831:

    ben, j'ai téléchargé le truc 3 fois et à  chaque fois je ne peux pas le dézipper ??? j'ai un message d'erreur...  :'(

    Je ne sais pas comment faire, veux-tu que je te l'envoie sur ton mail perso ?
  • cbrandtcbrandt Membre
    03:20 modifié #10
    ok, comme ça je pourrais jeter un oeuil ;)
  • fouffouf Membre
    03:20 modifié #11
    Oui, la methode donnée par Michael va te permettre d'économiser des dizaines de lignes.

    Sinon, bravo, c'est sympa comme tout. Juste une question : comment on fait quand ne connait pas sa géographie ??  ::)

    @cbrandt http://versiontracker.com/dyn/moreinfo/macosx/12012
    Et zou, normalement, plus de pb.
  • skensken Membre
    03:20 modifié #12
    merci fouf pour tes compliments, qui me vont droit au coeur, mais n'hésite pas à  me faire aussi des critiques constructives !!!

    Quant à  la géographie, à  force de perdre à  ce jeu, ça devrait finir par entrer, en tous cas, moi c'est l'effet que ça me fait en testant l'appli sken ;)
  • amnesicamnesic Membre
    03:20 modifié #13
    Quelques que suggestions en vrac :

    . L'écriture en marron sur fond bleu ou vert ce n'est pas très lisible ...
    . Je trouve que les Bevel bouton gâche un peu la carte... en attendant de gérer les contours via des polygones, les mettes en transparent peut suffire.
    . Il manque Madagascar ;) 
    .tu devrais ranger l'arborescence de ton projet ;) (applause, carte -> resources , Controleur -> Classes )

    En tout cas, l'idée est bien sympa et permet de me rappeler pourquoi j'ai prit ce pseudo  :'( !

    Bonne continuation !
  • cbrandtcbrandt Membre
    mars 2005 modifié #14
    salut sken,

    bon, ben désolé, mais j'ai fait un peu le ménage dans ton source: j'ai supprimé plein de choses... et j'ai utilisé les tags, c'est vrai qu'on pense rarement à  s'en servir: un bouton et le champ texte associé ont le même tag, et zou, fini les dictionary et array avec les listes des pays...  :o

    sinon c'est sympa et ça permet de se rendre compte que son niveau de géographie est un peu à  la traà®ne... à  quand les autres continents ?

    fouf: merci pourle lien, j'ai téléchargé stuffit... ça va déjà  mieux !

    edit:
    je joins le projet modifié, c'est mieux...

    [Fichier joint supprimé par l'administrateur]
  • VeillardVeillard Membre
    03:20 modifié #15
    Bon, j'ai pu décompacter la version de cbrandt, l'originale ne fonctionne pas.

    Sympa ton appli, je vois que je connais essentiellement l'afrique occidentale (4 ans au Sénégal oblige  :))
    J'ai eu un bug avec la Côte d'Ivoire où je n'avais que "Côte" d'affiché.
    Une fois qu'on a cliqué sur un bouton ce serait bien qu'il apparaisse d'une autre couleur jusqu'à  la question suivante.

    Voilà 
  • skensken Membre
    03:20 modifié #16
    Salut cbrandt,
    C'est vraiment génial ce que tu as fait là , un code nettement plus clean et élégant !!! et ça m'apprend plein de choses, en particulier sur les tags, que je ne savais pas comment utiliser. Vraiment merci d'avoir pris le temps de me refaire ça aux p'tits oignons, c'est trop sympa  <3 <br />sken
  • cbrandtcbrandt Membre
    03:20 modifié #17
    y'a pas de quoi !

    [PUB]
    si tu as un téléphone et un ordinateur équipés de bluetooth, n'hésites pas à  télécharger et à  tester mon CBBlueLock, tout à  la fin de ce fil: http://www.objective-cocoa.org/forum/index.php?topic=695.msg7984#msg7984
    [/PUB]
  • skensken Membre
    03:20 modifié #18
    Ben non, j'ai bien l'ordinateur équipé bluetooth, mais il ne communique qu'avec le clavier et la souris, mon portable est tout ce qu'il y a de plus basique. Sinon, tu penses bien que je me serais fait un plaisir de tester ton appli !

    Sinon, je me permets une question subsidiaire pour mon appli : y a-t-il un autre moyen que les boutons pour détecter le click de souris dans une zone qui n'est pas une forme géométrique régulière ?
  • cbrandtcbrandt Membre
    03:20 modifié #19
    dans 1110221432:

    Ben non, j'ai bien l'ordinateur équipé bluetooth, mais il ne communique qu'avec le clavier et la souris, mon portable est tout ce qu'il y a de plus basique. Sinon, tu penses bien que je me serais fait un plaisir de tester ton appli !

    en principe ça marche avec n'importe quel périphérique bluetooth, mais je n'ai qu'un téléphone... si tu pouvais tester avec ta souris ça serait cool...

    dans 1110221432:

    Sinon, je me permets une question subsidiaire pour mon appli : y a-t-il un autre moyen que les boutons pour détecter le click de souris dans une zone qui n'est pas une forme géométrique régulière ?

    tu pourrais définir un NSArray contenant des NSBezierPath (un par pays), et avec - (BOOL)containsPoint:(NSPoint)aPoint tu peux savoir si un point est inclus dans un path...

  • mpergandmpergand Membre
    03:20 modifié #20

    Sinon, je me permets une question subsidiaire pour mon appli : y a-t-il un autre moyen que les boutons pour détecter le click de souris dans une zone qui n'est pas une forme géométrique régulière ?


    Justement, je réfléchissais à  ça  ;)

    Une solution serait que chaque pays soit d'une couleur unique.

    cbrandt: j'avait penser aussi aux bezierpath, mais c'est très fastidieux !
  • 03:20 modifié #21
  • skensken Membre
    03:20 modifié #22
    dans 1110222335:

    Oui, c'est exactement le sujet qui va m'aider, je vais essayerb
    Merci beaucoup
    sken
  • skensken Membre
    03:20 modifié #23
    Alors, j'ai bien profité de l'enseignement de ce lien. Mais voilà , quand je récupère la couleur d'un pixel cliqué dans une zone, ce n'est jamais exactement la même d'un pixel à  l'autre. J'ai posé la question sur le forum de macfr mais peu de réponse, sauf mpergand qui me dit que mon image n'est probablement pas unie. Mais je ne sais pas comment rendre la couleur unie. Le pb c'est que même si je fais un test avec une image toute neuve, un carré rempli de noir, j'ai bien dans photoshop une info que l'image contient R = 0, G = 0 et B = 0, mais si je clique à  différents endroits dans mon appli, NSLog me donne des infos différentes :
    mon code :
    -(void)mouseDown: (NSEvent *) theEvent{

    NSPoint location = [self convertPoint:[theEvent locationInWindow] fromView:nil];

    NSLog(@location %@", NSStringFromPoint(location));
    couleur = NSReadPixel(location);
    NSLog(@couleur %@", couleur);
    }

    A l'exécution ça me donne ça après trois clics dans l'image :

    [Session started at 2005-03-19 17:30:27 +0100.]
    2005-03-19 17:30:32.749 Oussetydon[1099] location {297, 208}
    2005-03-19 17:30:32.749 Oussetydon[1099] couleur NSCalibratedRGBColorSpace 0.85098 0.94902 0.956863 1
    2005-03-19 17:30:35.134 Oussetydon[1099] location {288, 209}
    2005-03-19 17:30:35.135 Oussetydon[1099] couleur NSCalibratedRGBColorSpace 0.858824 0.952941 0.960784 1
    2005-03-19 17:30:35.909 Oussetydon[1099] location {304, 241}
    2005-03-19 17:30:35.909 Oussetydon[1099] couleur NSCalibratedRGBColorSpace 0.843137 0.92549 0.933333 1

    Il me semble que le problème se situe plutôt dans l'image d'origine, que dans le code, le format jpg ne convient pas peut-être, ou avez-vous d'autres hypothèses ?

    Merci de votre aide

    Sken
  • mpergandmpergand Membre
    03:20 modifié #24
    Salut,

    J'ai peut-être la soluce: il faut que l'écran soit en millions de couleurs.
  • skensken Membre
    03:20 modifié #25
    dans 1111262774:

    Salut,

    J'ai peut-être la soluce: il faut que l'écran soit en millions de couleurs.


    Euh... ben non, ça le fait pas, mon écran est déjà  en millions de couleurs, du coup j'ai essayé de changer vers milliers ou vers 256, ça ne change rien.
  • 03:20 modifié #26
    Le JPEG n'est en effet pas le meilleur choix, vu que c'est un format destructif. Il vaut mieux du TIFF par exemple, ou du PSD.
  • mpergandmpergand Membre
    03:20 modifié #27
    dans 1111268900:

    Le JPEG n'est en effet pas le meilleur choix, vu que c'est un format destructif. Il vaut mieux du TIFF par exemple, ou du PSD.


    D'après mes essais, le format du fichier est sans importance.

    Par contre, que sken n'obtienne pas la VRAIE couleur sur un écran en millions de couleurs est illogique  ???
  • skensken Membre
    03:20 modifié #28
    Je ne sais pas si ce n'est pas la VRAIE couleur, ce qui se passe, c'est qu'alors que je crois que la couleur est unie, la couleur change d'un pixel à  l'autre
  • 03:20 modifié #29
    Je maintiens, si l'image sur laquelle tu te bases est stockée en JPG (surtout avec une compression forte), ce format modifie légèrement les couleurs de manière à  pouvoir alléger le fichier, en particulier autour des zones où les couleurs changent. Si le taux de compression est faible, le phénomène est toujours présent, mais moins visible et peut expliquer les variations que tu as.

    Fais éventuellement des tests avec des images que tu crées toi même, avec un nombre limité de couleurs.
  • cbrandtcbrandt Membre
    mars 2005 modifié #30

    2005-03-19 17:30:32.749 Oussetydon[1099] couleur NSCalibratedRGBColorSpace 0.85098 0.94902 0.956863 1


    si ton image est unie noir, je m'attendrais à  avoir des valeurs proches de 0 plutôt que proches de 1...

    edit:
    teste tes couleurs avec le colorimètre numérique (Digital Color Meter, dans /Applictions/Utilitaires)
  • mpergandmpergand Membre
    mars 2005 modifié #31
    oui, avec l'outil  colorimètre numérique les valeurs sont toujours les mêmes, j'ai fait un prog de test, ça marche pas mal, mais peut-être faudait-il virer l'anti-aliasing ou un truc du genre...

    [edit]
    Renaud a raison, le jpg avec un fort taux de compression, ça va pas.
    Le format TIFF va produit un gros fichier, alors reste le png ?


    [Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.