Pour reprendre les deux posts précédents:
1. Le code est fait pour les humains. L'ordinateur peut lire plein de trucs, ce n'est pas le cas des humains, donc la simplicité et la clarté est importante (tout du moins dans un premier temps, et dans la majorité des cas). Viser la clarté, et viser la simplicité
2. Rien ne sert de courir tout ça. Avoir le code le plus rapide possible n'est que rarement intéressant, ce qu'il faut c'est avoir un code suffisament rapide.
3. Tes impressions sont toujours fausses, même les meilleurs codeurs se plantent 9 fois sur 10 quand ils estiment l'utilisation de ressources de leur appli (c'est pas une blague, ça revient en permanence dans les livres et les posts), si il y a besoin d'optimiser (parce que l'appli est clairement insuffisament rapide) il faut des données, et récupérer ces données est le rôle d'un profiler. Ne jamais rien optimiser sans avoir profilé auparavent.
Naturellement ces conseils tiennent pour de la prog classique, pas du temps réel.
Et pour ton problème, je choisis 3: je crée une fonction/méthode avec un nom bien clair (genre "dans_tableau" ou "in_table" ) qui prend une paire de coordonnées et ça me donne:
if( not in_table(ligne, colonne) ) then
print "En dehors du tableau" |
En bonus, si ce test est souvent répêté changer les conditions (si tu veux agrandir le tableau) ne sera effectué qu'en un seul point et non une demi douzaine (avec autant d'oublis et donc de bugs).
Ensuite, en fonction de l'expréssivité de ton langage tu peux aller encore plus loin.
Par exemple en Python je pourrais écrire un truc du style
Code :
if (ligne, colonne) not in my_table: print "En dehors du tableau"
|
Et pour être un peu plus propre je peux aussi créer un objet Point de coordonnées (ligne, colonne) qui permet de clarifier mon intention.
Code :
if Point(ligne, colonne) not in my_table: print "En dehors du tableau"
|
Note: en Ruby on écrira plutôt
Code :
if not table.include?(ligne, colonne) puts "En dehors du tableau" end
|
ou encore
Code :
if not table.include? Point.new(ligne, colonne) puts "En dehors du tableau" end
|
il n'y a pas qu'une manière d'écrire quelque chose de lisible, et la "meilleure manière" diffère en fonction du langage, de sa culture et de ses idiômes
Message édité par masklinn le 10-04-2006 à 22:55:36
---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?