Aller au menu - Aller au contenu

Profil du membre : Megaz

Informations générales | Communiquer | Activité sur le site | En savoir plus | Signature | Biographie

Informations générales


Avatar
  • Pseudo : Megaz
  • Groupe : Membres
  • Date d'inscription : Le 02/04/2009
  • Dernière visite : Hier à 01:30:05
Hors ligne Megaz est hors ligne
 

Communiquer


Voir les informations masquées

Activité sur le site

Nombre de messages : 54
Nombre de tutoriels : 1
Nombre de news : 0

Profil

  • Date de naissance : Le 25/11/1992
  • Age : 19 ans
  • Son travail : Etudiant (Université Libre de Bruxelles : Faculté Polytechnique)
  • Ses passions : Programmation (C++, Flash), Basket, Karaoké
  • Sa localisation :

Signature

Megaz, un Zér0 du Nord du Nord de la francophonie européenne :p

Mes tutos :
 

Biographie

Bonjour,

il est évident qu'ici je n'écrirai pas de biographie sentimentale ou autre mais bien de mon apprentissage à la programmation (cela va de soi, sur le siteDuZero..) et je trouve intéressant d'en parler car je n'ai -il me semble- pas appris de manière classique.

En effet, voyez par vous-mêmes : :D

Depuis toujours, j'ai toujours aimé créé des jeux de société, inventer des règles etc.
Vers la deuxième humanité (8ème année donc depuis la première primaire : CP), j'ai commencé à créer des petits jeux vidéos via un programme fait pour ça. Celui-ci datait bien de 1992 je pense. :D
Celui-ci permmetait de créer des petits jeux graphiques en incluant certaines instructions sous forme de tableaux, celles-ci étaient choisies avec la souris comme par exemple entre deux objets "Personnage" et "Bombe" inclure l'instruction "Si ils se touchent, donner deux points au J1 et supprimer la bombe". Ces instructions étaient donc en quelques sorte des outils que l'on pouvait utiliser pour donner vie au jeu.
ensuite j'ai fait un peu de HTML avec un vieux tutoriel d'un vieux suite. Sympa car on écrivait du code qui donnait un résultat !
Ainsi, pas de code présent directement. Cependant ceci m'avait déjà un peu forgé à la manière de penser d'un programmeur. :)
J'avais déjà envie d'écrire toutes ces interactions sur le clavier et non plus sélectionner des cases dans une grille.
En troisème, un cours de création de jeux vidéos était proposé à l'école (extra-scolaire bien entendu). Ceci était en fait un cours de création de jeux vidéos en Flash. Et c'est là que je trouve que je n'ai pas appris de manière classique. Le cours commençait par le dessin en flash, et ensuite on nous proposait quelques lignes de codes permettant de donner un peu de vie à notre animation. Par exemple

Citation : Le prof de Flash : Damien W.
Là tu écris stop(); avec bien deux parenthèses et un point virgule et ça arrêtera l'animation à cette image là, ou encore tu peux écrire gotoAndStop(5) ou encore gotoAndPlay(5) pour changer d'image.


À cette époque, je ne savais pas que c'était une fonction! :D
Donc on nous fournissait quelques outils assez propres à Flash (Actionscript 2, le 3 étant beaucoup plus formel). Et ces outils me permettaient d'avancer dans de petits jeux :) J'ai donc appris en pratiquant et dans le besoin. :)
Cela veut dire que j'ai toujours été dans la pratique, je n'ai pas suivi un tutoriel et ensuite pratiqué, mais pratiquer et quand je suis bloqué, on m'apprend un nouvel élément pour que je puisses continuer. :)
Voici quelques exemples frappant pour quiconque ayant fait de la programmation :
  • Après avoir appris un peu d'HTML, je me suis dis "hum, ce serait bien si je pouvais enregistrer une couleur dans par exemple "c1" et après de devoir écrire que "c1" et au début "c1 = 0xFF0000" afin de changer facilement cette couleur". Hé oui sans le savoir, j'avais besoin d'une variable en HTML, j'ai "senti" son utilité, je me suis dis "ce serait bien pratique si j'avais quelque chose qui pouvait faire ça". (Et voilà j'ai dû attendre le php pour ce cas précis xD)
  • À propos de flash, au début, je faisais des jeux sans variables. En fait j'utilisais des variables par défaut de flash comme _x,_y,_xscale etc. C'est à un moment je me suis dit "Oh j'aimerais bien pouvoir stocker des informations sans les afficher, Damien comment faire cela ? Je vais t'expliquer, ça s'appelle les variables ;) "
  • Ensuite, je codais sans tableaux, le jour où j'ai voulu mélanger 4 nombres par exemple 25, 32, 77 et 64, le prof a bien voulu m'expliquer mais je ne voulais pas entendre. Bon j'ai évidemment appris cela plus tard. :p
  • Les fonctions bah j'ai remarqué que c'était un truc qui permettait d'utiliser plusieurs fois le même code en une ligne :p (fonctions renvoyant void), c'est plus tard que j'ai vu qu'on pouvait renvoyer une valeur ! :p
  • J'utilisais des Classes et des objets sans le savoir. En effet j'avais cherché à pouvoir écrire moi aussi des codes comme lumiere.gotoAndStop(5) "Toi le ballon de basket tu as ces 3 variable, et tu as une fonction rebondir" C'est bien plus tard que j'ai vu comment créer une classe, une vraie.
  • J'ai compris tout seul ce qu'était une référence (sans connaître le nom biensûr) le jour où je suis tomber sur un problème, j'avai écris tableau1 = tableau2 et en modifiant tableau1 ben finalement j'avais remarqué que ça modifiait aussi tableau2! :o "Pourtant quand j'ai deux variables nombres il ne se passe pas cela quand j'écris n1 = n2 ! Aaa ça veut dire alors que cette ligne veut dire "le nom tableau1 est le tableau2, et non est une copie." "
    Biensûr, ceci n'était qu'une approche, de bonnes définitions, de bonnes bases sont venues par la suite.

Et plein d'autres, et plein d'autres...
Je tiens à signaler que apprendre par tuto, apprendre puis pratiquer, est une très bonne manière de faire, car avec la manière dont j'ai appris, je partais beaucoup de fois dans des directions compliquées alors qu'avec un peu de théorie en plus j'aurais fait cela bien plus facilement. L'avantege d'apprendre par la pratique est qu'on voit tout de suite l'utilité des éléments appris, mais ça prend du temps, il peut arriver beaucoup de temps avant qu'on se dise "Oh, j'aurais bien besoin de *nouvel élément*" (voire on n'aurait pas pu l'inventer soi-même :p ).

D'ailleurs, je trouve que le cours de C de M@teo21 fait un bon mélange entre "apprendre et puis pratiquer" et "pratiquer et ensuite apprendre dans le besoin". La première pédagogie est quand même la plus utilisée, c'est normal, c'est un cours :)
Un exemple de l'autre pédagogie, au chapitre où les superZéros ne sont plus motivés à apprendre le C : les pointeurs, l'auteur commence par "Hum, mais comment ferait-on pour renvoyer plusieurs valeurs à une fonction ?"


Mais, à partir d'un moment, on peut déjà "tout faire" avec les outils que l'on a appris, alors on n'apprend plus dans le besoin mais pour structurer le code, optimiser les performances,écrire plus rapidement et s'y retrouver dans son code etc.
Et c'est là que j'ai voulu apprendre d'autres langages, j'ai donc dévoré rapidement le cours de C, en faisant comme TP un petit jeux d'échec en console (haha :p avec du graphisme sisi !) dans lequel ben j'ai dû relire tous les chapitres du tuto ! Ensuite C++ de M@teo21 et bien entendu la suite avec le celui de Nanoc. Un petit TP, le jeu "Carcassonne" en console (que j'ai commencé à faire en graphique mais j'ai arrêté). Là, même chose, j'ai dû relire tous le tutoriel théorique de M@teo21 et de Nanoc (car sans celui-là je pense qu'il me manquerait quelques choses). En effet, héritages, classes abstraites, polymorphisme, il y avait de tout dans mon petit jeux. Pour un TP sur les templates, j'ai écrit une classe Matrice. :p
Rapidement car en fait, dans le besoin, en faisant des petits jeux en flash, j'avais vu la majeure partie du cours. Alors ce n'était plus qu'une formalité de voir ça en un autre langage. :)
Dans mon jeu Carcassonne j'avais besoin par exemple de faire un tableau associatif (j'en faisais depuis toujours en flash sans savoir leur nom), il n'y avait pas ça sur le SDZ, dommage, recherches sur Internet... std::map !
Ensuite, après avoir bien manipulé cet objet, j'ai trouvé que je pouvais en faire un tuto :D , et puisque il n'y en avait pas un qui traitait du sujet, j'en ai écrit un vite fait ! :)
(Ensuite j'ai vu que c'était prévu dans le tutoriel de Nanoc et qu'on en parlait... Mais bon, au pire j'aurais perdu 4-5 jours d'écrit du tuto)
En effet, le sujet est maintenant traité dans le tutoriel principal mais je ne trouve pas mon tutoriel obsolète pour autant. :)
Vous verrez à la manière dont j'ai écrit ce tutoriel que l'on retrouve des éléments de mon apprentissage :)
Par exemple, l'erreur que je montre dans le tutoriel est une erreur qui m'est arrivée! :p Alors que si on m'avait appris "normalement" le sujet, j'aurais déjà su que ceci aurait provoqué une erreur. :)

Sinon, pour info, j'ai écrit un autre tutoriel qui parle de Coordonnées hexagonales en utilisant des vecteurs. Il est en validation. :)

C'était Megaz, un Zéro du Nord du Nord de la francophonie européenne :D

PS : Mon pseudo a été créé en 2005, il signifie "Mega-biZarre" :p

PS #2 : Il y a beaucoup de smileys.. Et alors ? :p