Академический Документы
Профессиональный Документы
Культура Документы
D
n u m r o 2
PRSK a mp3 ag La s
der Blen are guit une e d bas pt 3 La scri ts on Acti cemen pla et d s C++ ition d do Con u vi Je
The Flying Ship
t_abw
EDITo
InTErvIEw
Jrome Baudoux ................................................. 3 | Jeune dveloppeur logiciel
par Spoke44
projET
RSKP-2172 .......................................................... 7 | La saga mp3 de D6-BL
arTIclES
Le monde dUNIX ................................................ 11 | Un peu dhistoire
Dveloppement web ........................................... 13 | Facilitez la cration web
TuTorIElS
Blender 3D .......................................................... 17 | Modlisez la base dune guitare
ExErcIcES
Calendrier en Javascript ...................................... 34 | Plusieurs exercices de niveaux diffrents
ESpacE mEmbrES
Les Novendiales ................................................... 35 | Concours du GNC
Les Speeds Mods ................................................. 36 | Rcapitulatif des sessions du mois
Les tutoriels du mois ........................................... 37 | Petit retour en arrire sur les sorties du mois Les projets des membres .................................... 40 | Ce quil ne faut pas manquer
Spoke44.
InTErvIEw
jEromE bauDoux
Dveloppeur logiciel frachement sorti de luniversit dinformatique
Salut jrme, une prsentation rapide ? Salut, et bien je mappelle Jrme Baudoux a.k.a. leonsulivan, jai 24 ans et comme vous vous en doutez je suis passionn par linformatique et en particulier le dveloppement de logiciels. Jai commenc faire mes premiers programmes il y a environ une dizaine dannes. Il sagissait alors de petits programmes en BASIC pour la plupart, puis avec la monte dInternet je me suis mis au HTML/PHP. Enfin grce mes tudes jai pu apprendre de magnifiques langages comme le C++ ou le Java. Pour finir cette brve prsentation, je mentionnerai le fait que je suis rest trs fan des bons vieux jeux Old School en 2D comme on en faisait sur NES ou Megadrive. rien appris de dterminant pour la suite de mes tudes, toutefois il faut avouer que les coles et universits ont tendance prfrer ce genre de Baccalaurat. Il a ensuite fallu choisir une formation parmi les nombreuses disponibles dans le suprieur. Personnellement, je me suis dirig vers un IUT (Institut Universitaire de Technologie) afin de commencer directement la pratique, ce qui nest pas le cas durant les premires annes de Licence, o les notions restent assez gnrales. Une fois mon DUT (Bac+2) en poche, jai repris la formation universitaire directement la dernire anne de Licence (Bac+3). Certains de mes camarades ont choisi darrter l leur cursus, et ont commenc travailler. De mon ct, jai prfr embrayer sur un Master (Bac+5) du nom de Dveloppement des Applications Rparties.
le master que vous avez obtenu se nomme Dveloppement des applications rparties (Dar) , que se cache-t-il derrire ce nom trange ? Derrire ce nom un peu trange se cache un Master ax sur le dveloppement dapplications dites complexes . Il faut savoir que lorsque lon souhaite raliser un programme traitant des donnes trs vastes ou demandant deffectuer des calculs trs complexes, il est rarement possible de le faire fonctionner sur une machine unique. Pour faire simple, il faut donc raliser une application (ou un ensemble dapplications) qui pourra tre installe sur plusieurs machines collaborant entre elles au travers de moyens divers dans le but deffectuer le traitement. Pour ceux qui veulent plus dinformations
pouvez-vous nous prsenter rapidement votre cursus depuis le bac Comme beaucoup, jai t dirig vers un Baccalaurat scientifique lorsque jai mentionn le fait que je voulais travailler dans le dveloppement de logiciels. Je ny ai
page 3
Jerome Baudoux
sur ce Master, je vous encourage consulter la plaquette de la formation ladresse suivante : http://www.master-informatique. net/m2prodar.html
InTErvIEw
Ce nest par exemple qu partir du Bac+5 que luniversit dans laquelle jai tudi commence proposer un parcours Imagerie Numrique destin aux mtiers du jeu vido.
IuT, bTS, universits ou coles dingnieurs l informatique est enseigne un peu partout et tous les niveaux (bac+2, +3, +5 et plus) ; quel est votre avis sur ces diffrents cursus ? une formation a favoriser devant les autres ? Je ne pense pas quune formation est privilgier par rapport une autre. Elles apportent toutes des comptences diffrentes qui vont permettre de sorienter dans un domaine professionnel diffrent. De manire schmatique, on peut sparer ces formations en deux types. Les formations dites courtes (Bac+2, Bac+3), et les formations dites longues (Bac+5, Bac+8). Les personnes en possession dun Bac+2 ou Bac+3 seront de manire gnrale plus recherches pour travailler dans les mtiers lis au Web. Au contraire, il sera plus facile pour vous de postuler un poste de dveloppeur logiciel (ou jeux vidos) si vous avez un Bac+5. Pour ce qui est du choix entre le parcours universitaire et Ingnieur, je nai pas toutes les cls en ma possession pour vous noncer les diffrences, cela dit je peux vous dire quen rgle gnrale un Ingnieur sera mieux pay quun Universitaire comptences gales.
Des conseils concernant les tudes dans linformatique ? De manire gnrale, travailler sur des projets personnels en dehors de vos tudes est un plus non ngligeable pour progresser, cest en plus un point positif lorsque vous chercherez un emploi (cela prouve votre motivation). Concernant le jeu vido, il ne reprsente quune infime partie de linformatique et est par ailleurs lun des domaines les plus exigeants, donc il vaut mieux ne pas baser tous ses espoirs sur ce dernier si jamais vous souhaitez vous diriger vers des tudes dans linformatique.
vous venez de trouver un emploi paris, moins de 2 mois aprs la fin de votre stage. Est-il facile de trouver un emploi aussi rapidement en sortie de formation ? Je pense que la rponse cette question dpend de nombreux facteurs. Il est par exemple plus difficile de trouver un emploi dans le jeu vido que dans le dveloppement Web, tout comme il est plus difficile de trouver un emploi en Province quen le de France. Cependant, je dirais que si lon nest pas trop regardant sur le poste, on peut trouver du travail assez facilement. Cest dailleurs assez tonnant lorsque tout le monde dit que linformatique est un march bouch . Par contre, il est peut-tre intressant de prciser quil y a plusieurs sortes dentreprises recrutant des Ingnieurs dveloppeurs (vous pouvez tre ingnieur dveloppeur sans avoir une formation Ingnieur, ne vous laissez pas avoir par le titre) : les diteurs de logiciels En intgrant ce genre dentreprise, vous allez travailler sur un projet dvelopp par lentreprise. Vous travaillerez donc avec la mme quipe (donc les mmes collgues) tant que vous ne changez pas de poste. o Les + : Ambiance dquipe, avantages CE. o Les - : Vous restez souvent cantonn un produit et quelques technologies.
le monde informatique ne cesse de stendre, pensez-vous quil soit important de se spcialiser dans un domaine particulier pour sortir du lot ? (ou linverse, essayer de toucher tout et faire valoir ses multicomptences ?) Cela dpend en fait des mtiers recherchs. En gnral, les entreprises qui recherchent des personnes polyvalentes ne requirent pas de comptences pousses et vont chercher dans les candidats ayant fait des formations courtes. Comme je lai dit avant, cest surtout du dveloppement web. Pour la majorit des cas, il me semble important de se spcialiser, car la plupart des entreprises recherchent des profils prcis pour rpondre des besoins spcifiques. Dans ce cas-l, il faut se diriger vers des formations longues, car ce sont elles qui apportent la spcialisation dans un domaine.
page 4
les SSII (majorit des offres demploi) En intgrant ce genre dentreprise, vous effectuerez des missions au titre de consultant chez des clients de votre entreprise. Vos comptences seront donc en quelque sorte loues . Ces missions peuvent tre assez loignes de chez vous et il est possible que certaines de vos missions ne correspondent pas vraiment votre profil ou ne vous plaisent pas. o Les + : Vous apprendrez beaucoup plus que chez un diteur de logiciel et vous prendrez des responsabilits plus rapidement. o Les - : Les salaires sont souvent moindres que chez les diteurs de logiciels. Les missions peuvent tre trs loignes de vos comptences. Vous changez souvent dentreprise et de collgues.
qui de crer ses propres niveaux grce lditeur fourni et de les partager avec la communaut. Il est aussi possible de joueur deux sur le mme PC, aussi bien en partageant le clavier, quen utilisant deux joysticks (depuis la dernire version).
Jerome Baudoux
InTErvIEw
Pour ma part, le plus dur dans ma recherche demploi a t de trouver un poste chez un diteur de logiciel. En effet, ceux-ci exigent souvent plusieurs annes dexpriences, chose que je navais pas. Les SSII tant beaucoup moins regardantes sur lexprience lembauche, beaucoup de personnes prfrent commencer par travailler pour ces dernires quelques annes, puis chercher un poste chez un diteur de logiciel par la suite. Jai cependant eu la chance de trouver exactement ce que je recherchais sans passer par une SSII.
Le jeu est loin dtre termin, beaucoup est encore faire, comme lajout de fantmes pour sauvegarder les meilleurs temps, la gestion des mods
battle jump est cod en java, tait-ce une volont particulire de favoriser les applications multiplateformes ? Une partie du jeu est en effet code en Java (mon langage de prdilection), il sagit des outils externes au jeu, comme lditeur, le lanceur et le gestionnaire de niveaux. Cependant, le jeu lui-mme est ralis en C++ / OpenGL. Ceci nempche cependant pas le jeu dtre multiplateforme, car toutes les bibliothques choisies pour le dveloppement du jeu existent aussi bien sous Windows, Linux que Mac OS. Le fait de faire un jeu multiplateforme est bien sr quelque chose de voulu. Je comprends tout fait quun studio de dveloppement dcide dignorer une plateforme, car elle napportera aucun profit. Cela dit, les jeux amateurs sont trs peu connus du grand public, il est donc important dlargir au maximum son public. De plus, il faut avouer quen utilisant les bonnes bibliothques, raliser un jeu multiplateforme nest pas plus compliqu que de raliser un jeu fonctionnant uniquement sous Windows. Il serait donc bte de sen priver.
vous tes connu dans le monde amateur du jeu vido avec votre projet Battle Jump. Quelques mots pour nous le prsenter, les objectifs ? Battle Jump est un petit jeu en 3D trs orient arcade. Le but du jeu est de tester votre dextrit en dplaant votre personnage au travers de plateaux truffs de piges. (Acclrateurs, blocs mobiles, trappes, trous) Le jeu a beaucoup volu durant ses deux annes de dveloppement, notamment grce aux membres du SdZ qui proposent de nombreuses amliorations, et mme traduisent le jeu dans dautres langues). Il est possible lheure actuelle nimporte
page 5
vous projetez-vous dans lavenir vers le monde professionnel du jeu vido, ou cela reste-t-il uniquement un loisir personnel ?
Jerome Baudoux
InTErvIEw
Je pense qu partir du moment o lon fait de sa passion son mtier on perd le plus important : la libert. Ce qui me plait dans la cration de jeux vido est de faire le jeu auquel jai envie de jouer. Ceci devient impossible dans un contexte professionnel, o le plus important est de faire un jeu qui plaira au plus grand nombre dans le but de le vendre. Je pense donc que le jeu vido restera pour moi un loisir personnel.
Dans le domaine amateur, cela me semble plus nfaste quautre chose, car il est trs difficile de maintenir du monde sur un seul projet pendant des mois (voir des annes). Le mieux est encore davoir un groupe de 23 personnes maximum, trs soud, qui travaille de manire proche, voire de travailler seul si vous avez la motivation suffisante pour mener bien le projet. Dernier conseil pour la route, le plus important dans la ralisation dun jeu amateur est de prendre du plaisir le faire. Si pour vous cela constitue une corve qui doit tre faite afin de gagner de largent (Jeux par navigateur avec micro paiement, MMO free to play, ), alors je pense que vous tes sur le mauvais chemin. Propos reccueillis par Spoke44.
De nouveaux projets en perspective ? Jai pas mal dides en tte, mais il y a encore tellement faire avec Battle Jump que je pense que je vais attendre un peu avant de me lancer. Cela dit, je peux vous avouer que jai vraiment envie de me lancer dans un Manic Shooter en 3D. Jaimerais aussi faire quelques jeux sur tlphones portables (iPhone, Android, ). Bref, les ides ne manquent pas !
les zros sont toujours avides de conseils pour voluer, pouvez-vous nous donner vos astuces pour mener bien un projet ? Le premier point important est dessayer de ne pas viser trop haut. On voit beaucoup de projets qui ne finissent pas car les objectifs sont dmesurs. Il vaut mieux partir sur un petit projet et le finir, quitte le faire voluer plus tard, que de se lancer tte baisse sur quelque chose qui ne sera jamais fini.
page 6
projET
rSKp-2172
Dcouvrez la saga mp3 futuriste de D6-bl
Ce nest que quelques annes plus tard que jai finalement dcid de me lancer dans laventure et de crer ma propre Saga MP3, baptise RSKP2172.
prSEnTaTIon DE l auTEur
Je profite de cet article pour saluer tous les Zros ! Jespre que vous prendrez plaisir dcouvrir mon projet. Alors que dire sur moi Je suis un jeune comme les autres, avec ses 23 annes dexistence sur cette plante. Actuellement, je suis en Master 1 International Business sur Toulouse, domaine qui me plat particulirement tant donn mon got prononc pour les voyages. Et oui, jaime bouger ! Mis part cela, jai plusieurs passions dans la vie, dont le sport (football amricain, muscu), linformatique et les Sagas MP3. Jai dcouvert ces dernires au lyce, lge de 15 ans, aprs quun ami mait fait couter quelques pisodes du Donjon de Naheulbeuk. Le concept mavait totalement sduit et trs rapidement jai cherch en dcouvrir dautres.
page 7
montage. Vous laurez compris, contrairement aux livres audio, une Saga MP3 nest pas lue mais interprte.
imagin
RSKP-2172
projET
rSKp-2172 lE projET
Comme je vous lai dit plus haut, ce nest que trs rcemment que jai dcid de sauter le pas et de crer ma propre saga MP3 : RSKP-2172. (Je tiens rappeler que les pisodes sont tlchargeables gratuitement sur le site : www.rskp-2172.fr) Bref, je voulais tre original et ne pas raliser quelque chose de vu et revu. Jai donc opt pour une aventure srieuse , chose plutt rare dans la saga-sphre mais qui tend se dvelopper de plus en plus. Aprs quelques jours de rflexion, mon scnario voyait enfin le jour. Ayant toujours t un grand fan des films Post-Apocalyptiques, cest tout naturellement que jai dcid dutiliser le film 2012 comme point de dpart pour ma saga. Cependant mon aventure se passe bien plus tard, en 2172, sur une Terre encore bien meurtrie par les catastrophes naturelles passes. Plus rien nest comme avant ! Des pays sont aujourdhui engloutis par les eaux, des continents ce sont fragments, le climat a chang et la vgtation recouvre la quasi-totalit de la plante. Cest sur cette Terre mconnaissable que les rares survivants ce sont regroups dans une mme ville et ont commenc la reconstruire. Mais trs vite, la soif de pouvoir encre dans le cur des hommes cra des divisions et une lutte acharne dbuta. Des annes plus tard, un tyran, le Haut-Commandeur, russit finalement imposer sa domination et rduisit les tres humains ltat desclaves et de cobayes pour ses expriences. Cependant, cach dans les gouts de lancienne ville, un groupe de rsistants lutte contre le nouveau gouvernement. Mais ce combat pour la libert les conduira bien plus loin quils ne lauraient
page 8
RSKP-2172
projET
selon moi, la partie la plus intressante. Cest l que lon va donner une vraie dimension lpisode en plaant les bruitages gauche ou droite, en donnant un effet de mouvement (et de spatialisation) aux personnages, en rglant lensemble des sons grce lgaliseur, en purant les voix Le tout pour arriver un pisode peu prt potable et qui ne dtruira pas les oreilles sensibles de nos auditeurs bien aims ! Bref, pour vous donner une petite ide, entre la sortie de lpisode 02 et la sortie de lpisode 03 il y a eu un laps de temps dun mois environ.
descriptifs dpisodes ou des sujets quelconques que je souhaiterais aborder Voil pour les grosses lignes. Aujourdhui, plusieurs objectifs sont lordre du jour ! Tout dabord, finir lpisode 04 et le mettre en ligne (ce qui ne devrait pas tre trop compliqu). Deuximement, je souhaiterais dvelopper une partie Tutoriel (qui a dj commenc voir le jour) dans laquelle jexpliquerai de A Z comment crer sa propre saga mp3. Quand je dis de A Z, je veux parler de lcriture du script jusqu la mise en ligne de lpisode. Jaborderai srement les solutions existantes au niveau des sites internet pour les dbutants. Dautre part, un projet important pour moi (et que lon ma fait remarquer sur le forum) serait dadapter le site pour les personnes nonvoyantes. Il me parat logique que ces dernires reprsentent une cible privilgie pour les sagas MP3. Jai donc lintention de me pencher sur la question et, pourquoi pas, faire connatre RSKP2172 sur des sites, forums et associations de nonvoyants. Article rdig par D6-BL.
EpISoDE 04 SpoIlEr
Lpisode 04 nest pas encore sorti (ni mme fini) mais - Car il y a un mais - je vais quand mme vous rvler quelques informations indites sur cet opus. Aprs stre fait attaquer la fin de lpisode 02, le capitaine Roy Griffins et le sergent Ryley se rveilleront dans une base subaquatique, dlaisse depuis bien longtemps. Je vous laisse donc imaginer ltat du lieu : sombre, des bruits de grincements mtalliques Nos deux personnages vont donc essayer, sans armes, de sortir de cet endroit et retrouver matre Darius Malheureusement pour eux, a ne sera pas si facile ! Ils ne sont pas seuls Quelque chose dautre est dans la base De son ct matre Darius va lui aussi se faire capturer et ramener au sein dune ville, en pleine fort. Il dcouvrira alors quil y a dautres tres humains et en apprendra davantage sur le terrible secret que renferme la cit de Dagmra Mais je ne vais pas tout dvoiler maintenant, sinon il ny aura plus de suspens !
page 9
RSKP-2172
Nous sommes en lan 2172 Je mappelle Roy Griffins et je suis le capitaine dun groupe de rsistants qui sopposent au nouveau systme. Mais avant daller plus loin, je dois vous raconter comment tout a commenc Ctait il y a 160 ans, bien avant ma naissance, en 2012 A cette poque, des catastrophes naturelles sans prcdents vinrent bouleverser la face de la Terre. Le calendrier Maya avait annonc ce jour des milliers dannes auparavant mais nous ne voulions pas y croire. Lapocalypse ne pouvait arriver si tt ! Malheureusement, nous avions tort Des raz-de-mare, tremblements de terre et ruptions volcaniques frapprent le monde de toute part, comme si la nature essayait de prendre sa revanche sur lhomme. Certains voyaient en ces catastrophes naturelles une rsultante du rchauffement climatique. Dautres, quant eux, y voyaient la Main de Dieu La suite sur le site de lauteur :
http://www.rskp-2172.fr
projET
page 10
arTIclE
par R@f
lE monDE DunIx
Un rsum dhistoire...
UNIX est un sujet invitable dans le monde de linformatique. On entend parler dAIX, de Solaris, dHP-UX ou encore dUnix-like comme GNU/Linux mais beaucoup de gens ne savent mme pas ce que cest. A travers des petits rsums vous allez apprendre comment Unix et ses drivs sont ns et ont volus jusqu aujourdhui.
la naISSancE DunIx 60
A la fin des annes 60, un chercheur amricain travaillant pour les laboratoires Bell, Ken Thomspon (ci-contre), dcida de dvelopper un systme dexploitation mono-utilisateur appel New Kens System. Un peu plus tard, le nom Unics fut propos qui a t contract en Unix par la suite. En 1972, Ken Thompson voulait rcrire UNIX car il tait difficile de maintenir ce systme dexploitation crit en assembleur. Ken voulait utiliser le langage B pour rcrire UNIX mais finalement il sest dcid dutiliser le langage C que Denis Ritchie (ci-contre) avait cr. Denis a aid Ken pour le dveloppement dUNIX. Bell Labs, dpendant dAT&T, ne pouvait pas commercialiser Unix car loprateur amricain (AT&T) avait linterdiction de vendre autre chose que des quipements tlphoniques ou tlgraphiques. Une dcision prise en 1975 fut de distribuer le code source dUnix des universits des fins ducatives, mais une licence, peu coteuse, devait tre achete.
SySTEm v 1983
La premire version de System V (V comme le chiffre romain, donc prononcer cinq) a t publie en dbut danne 1983 par AT&T. System V est, avec BSD, un des deux drivs majeurs dUNIX sur lesquels sont bass des systmes dexploitation comme AIX ou HP-UX par exemple. Il y a au total quatre release de System V dont la dernire (System V Release 4) est sortie en 1989.
page 11
Software Distribution, aussi appel BSD. Il existe aujourdhui plusieurs BSD OpenSource tel que FreeBSD, OpenBSD et NetBSD.
aIx 1986
En 1986, les chercheurs dIBM lancrent la premire version de leur systme dexploitation de type UNIX (bas sur System V Release 2) nomm Advanced Interactive eXecutive mais plus couramment appel AIX. Ce systme dexploitation supporte des plateformes telles que le ROMP, lIBM Power, le PowerPC, lIBM PS/2, le System/370 et lESA/390. On retrouve habituellement AIX sur des System P de IBM.
hp-ux hEwlETT-pacKarD
Publi par Hewlett-Packard en 1984, le systme dexploitation propritaire HP-UX, bas sur System V Release 4, est un concurrent direct dOracle Solaris (Sun Solaris auparavant). Les plateformes supportes par HP-UX sont le PA-RISC et le IA-64. Quasiment tous les HP 9000 sont compatibles avec HP-UX.
Certainement le systme dexploitation le plus connu de la famille UNIX, bien que le noyau Linux ne soit pas bas sur UNIX. Le projet GNU a t commenc en 1983 par Richard Stallman (ci-contre) ayant comme but de faire un OS qui nest pas bas sur UNIX mais qui fonctionne de la mme manire que ce dernier et qui soit totalement libre. Par la suite, le projet ayant bien avanc, il leur manquait quune seule pice pour finir leur travail, le noyau. Cest l, en 1991, que le noyau Linux, dvelopp par Linus Torvalds (cicontre), entre en jeu pour complter le puzzle. Aujourdhui, il existe de nombreuses distributions GNU/ Linux comme Debian, Ubuntu, SuSe, Fedora pour en citer quelquesunes. La plupart sont tlchargeables gratuitement.
Le monde dUNIX
arTIclE
SolarIS SunoS
La premire version de Solaris, nomme SunOS au dbut, fut publie en 1981 et tait bas sur 4.1BSD. Par la suite, en 1991, le systme dexploitation complet a t renomm en Solaris et le nom SunOS tait alors donn au noyau de Solaris. Plus tard, en 1992, la deuxime version de Solaris voit le jour mais celle-ci est base sur System V Release 4 dUNIX. En janvier 2010, aprs le rachat de Sun Microsystems par Oracle, Sun Solaris devient Oracle Solaris. Solaris supporte des plateformes que lon trouve assez couramment et peut donc sans problme tre install sur une machine toute simple. Voici les plateformes actuellement supportes : SPARC, IA-32, x86-64. Il existe galement un Solaris Open Source nomm OpenSolaris.
gnu/lInux lE lIbrE
page 12
arTIclE
par webdev33
DEvEloppEmEnT wEb
facilitez la cration web, amliorez laccessibilit et le rfrencement
Cet article se veut tre une approche par diffrents domaines afin de comprendre certaines ralits, faciliter la cration dun site web, amliorer son accessibilit et son rfrencement. conSIDraTIonS ImporTanTES pSychologIQuES
Tout dabord, lorsque lon dveloppe il faut essayer davoir un esprit critique et objectif pour arriver au meilleur rsultat possible. Quand on dbute on a tendance sur-valuer la qualit de ce que lon a ralis et on ne sen rend pas compte. Cela peut-tre gnant, dune part pour limage d amateur perue par les gens extrieurs et dautre part parce que cest un frein lvolution et au changement (si on est fier de ce que lon a dj, pourquoi modifier ?). Ceux qui ne sont pas dbutants et ont conserv leurs tous premiers travaux, regardez avec votre exprience actuelle ceux-ci, vous comprendrez ce que je veux dire par l. Ensuite, une constatation : vous aviez pass du temps faire quelque chose et cela vous a paru difficile, maintenant avec leffet dexprience vous le referiez beaucoup plus vite et pourriez mme amliorer pas mal de choses. Cet effet dexprience nest pas ngligeable et ne sadresse pas quaux dbutants complets. Enfin, cest force de programmer que lon progresse et que lon devient bon voire excellent programmeur. Plus on rencontre des difficults, plus on apprend et plus on capitalise dexprience. On acquiert par la suite de bonnes pratiques que lon mettra en place rapidement et facilement selon le besoin. Quelques chiffres trouvs sur developpez.com (http://www.developpez.com/actu/20183/Les-6verites-de-la-programmation-se-verifient-ellesautour-de-vous) : un bon dveloppeur est 10 fois plus productif quun dveloppeur lambda. Un excellent dveloppeur est 20 100 fois plus productif quun bon dveloppeur. Servez-vous des conseils afin datteindre le plus haut niveau possible !
Eclipse PDT permet lautocompltion de fonctions PHP et permet de connatre lordre des paramtres
un moT Sur lE DESIgn
Votre site web est moche, vous tes webmestre et non designer, utilisez des kits graphiques, ils donneront un look plus professionnel votre site internet. Attention cependant bien lire la licence et rester dans la lgalit. Il ne sagit pas de voler le fruit du travail dautrui sans contrepartie. Certains sont payants, dautres sont fournis gratuitement condition dutiliser un lien de retour vers leur site. Cependant mme si un lien retour nest pas demand pour un kit gratuit, il est quand mme plus juste den utiliser tout de mme un afin de remercier et encourager ce graphiste.
page 13
Developpement web
faut pas en utiliser une gnrique pour tout le site, cest trs mauvais. Ne pas en utiliser du tout, cest encore plus catastrophique. Il faut viter tout prix les liens qui ne permettent pas seuls de dterminer le contenu. Je donne un exemple incorrect viter : pour voir mon site professionnel cliquez ici. Il faut utiliser dans le texte du lien de quoi dcrire le contenu auquel linternaute va accder en suivant le lien hypertexte, par exemple voir le site professionnel dArnaud Montignac. Avoir un site web, ce nest pas seulement le raliser et le mettre en ligne. Pour que celui-ci soit visible dans les rsultats des moteurs de recherches, il faut soigner sa popularit. Pour cela il faut faire la promotion de son site web et avoir un maximum de liens retour. Un lien retour est considr comme un vote pour votre site. Plus il y a de votes plus il est populaire. Il est conseill davoir un sitemap (fichier qui dcrit les liens de votre site) la racine de votre site et de remplir correctement les donnes (url, frquence de mise jour, date de dernire modification, priorit). Cela sert dune part faire indexer toutes les pages que lon veut faire rfrencer par les moteurs de recherche, mais aussi montrer que le site est vivant et que son contenu change. Il faut aussi bien videmment mettre jour rgulirement le contenu de votre site web.
arTIclE
Enfin pour le serveur web jutilise Easyphp 5.3.3 qui permet entre autres dtre transport sur clef USB et donc de dvelopper en local sur plusieurs postes de travail diffrents.
webdev33.
page 14
arTIclE
caml lIghT
Implmentation lgre du caml, le caml-light est un langage aussi facile apprendre qu utiliser
Conu par lINRIA (Institut National de Recherche en Informatique et Automatique) dans les annes 1980, le CaML a t conu pour garantir la sret et la fiabilit des programmes (INRIA). Il se dcline en plusieurs versions dont le Caml-Light, version plus lgre du Caml, enseign notamment dans les Classes Prparatoires scientifiques. Bien quallge, cette version du Caml demeure tout fait complte, et permet comme nous allons le voir la ralisation de choses plutt intressantes. Ct technique, le CaML se caractrise par un typage fort (mais vraiment fort), une gestion automatique de la mmoire, une syntaxe simple et pure, et un fort accent mis sur le ct rcursif du langage. Il permet la gestion de tableaux, de matrices, de listes, de chanes de caractres, ainsi que de laffichage graphique et des vnements souris/clavier (qui sont cependant peu utiliss, le langage ne se destinant pas principalement la ralisation de jeux). La programmation en CaML se veut fonctionnelle (le contraire dimprative), on retrouve ainsi une syntaxe proche de celle quon utiliserait en mathmatiques. Explication - En exagrant un peu on pourrait dire que cela se lit tout seul. En reprenant la dernire phrase on dcortique le programme de cette manire : let rec : on dfinit par rcurrence factorielle = function : la factorielle dun entier n par 0->1 : 1 si n vaut 0 |n->n*(factorielle (n-1)) : n*(n-1)! si n>0 Ce simple exemple nest bien entendu pas trs significatif de la puissance de ce langage, mais il faut savoir par exemple que le problme des tours de Hano, entre autres, peuvent se rsoudre trs simplement. Qui na jamais rv de programmer la fonction polynme interpolateur de Lagrange de manire rcursive en 3x3 lignes ? On a galement la possibilit de dfinir des types rcursifs, comme les arbres, et bnficier ainsi de toute la puissance de ces structures de donnes (tri, recherche...) Le Caml permet galement la cration de types rcursifs, et donc la gestion des arbres. Cidessous, le rsultat dun programme permettant dafficher, un arbre binaire.
page 15
Le chargement et laffichage ne sont cependant pas prvus, il faudra donc trouver une solution la main. Autre exemple, cette courbe de Lissajous est le rsultat dun petit programme permettant laffichage de courbes paramtres (les coordonnes (x, y) de chaque point dpendant chacune dune fonction).
arTIclE
Let exemple n = for i=0 to n do if I mod 2 = 0 then print_string i est pair else print_string i est impair; done;; Cependant on pourra remarquer que la syntaxe dun programme Caml crit de manire imprative a une certaine tendance salourdir. Cest parce quencore une fois, quand on pense Caml, on devrait penser fonctionnel.
Caml
page 16
logiciel Blender
TuTorIEl
Difficult
par bobo75014
guITarE 3D
modlisez en 3D la base dune guitare avec blender
la caISSE
Commencez par ajouter un Plane et en Edit mode dplacez-le avec G+Ctrl de faon ce que le centre de lobjet se trouve sur le coin infrieur gauche.
Activez un moficateur Mirror dans lequel vous cocherez clipping afin que les vertices situs sur laxe de symtrie restent souds. Puis ajoutez galement un modificateur Subdivision Surface (subsurf). Cest une bonne habitude prendre que de modliser avec le subsurf afin de ne pas avoir de mauvaise surprise si vous lactivez la fin de votre modlisation.
page 17
Faites des extrusions successives de larte suprieure (touche E) et scalez chaque fois (touche S) pour donner lallure gnrale du corps de la guitare. Ceci sera le fond de la guitare. Cest l que vous pouvez donner une forme particulire votre guitare si vous le souhaitez.
TuTorIEl
Guitare 3D
Pour faire la face de la guitare, il faut dupliquer (Shift+D) le fond et dplacer la bonne distance pour crer lpaisseur (dcocher clipping dans le modificateur Mirror pour rendre le dplacement possible)
page 18
Il va falloir modliser un trou. Pour cela, assurez-vous dabord que le curseur 3D se trouve au niveau du maillage (slectionnez un vertice et faire Shift+S > cursor to selection). Ajoutez un cercle de 8 vertices (ce nombre peut varier en fonction de votre maillage, limportant est de pouvoir retomber sur ses pieds), supprimez les faces superflues et crez de nouvelles faces pour joindre le trou au rebord du corps de la guitare (slectionnez les vertices par quatre et pressez la touche F pour crer une face).
TuTorIEl
Guitare 3D
Joignez le fond et la face de la guitare en crant des faces. Des loopcuts seront ncessaires pour durcir les rebords.
lE manchE
Commencez par crer la forme suivante partir dun plane. Puis appliquez un mirror et un subsurf comme prcdemment.
page 19
Puis commencez extruder. Pour le virage du coude, cest un peu dlicat car il faut un bel arrondi lintrieur et un angle droit lextrieur. Voici la mthode que je vous suggre. Il sagit dabord de crer les vertices au dbut et la fin du virage. Placez ensuite deux loopcuts dans la portion du virage. Puis, en vue de cot, dplacez les vertices pour crer un bel arrondi. A loppos, il faut les rapprocher pour faire un angle net.
TuTorIEl
Guitare 3D
page 20
Pour la tte, vous pouvez continuer faire les extrusions en scalant chacune dentre elles sur laxe x (touche S > puis touche X) afin de faire varier la largeur votre guise.
TuTorIEl
Guitare 3D
Pour durcir le rebord infrieur de la tte, slectionnez, les artes suivantes et faites les glisser (Ctrl+E > Edge slide) vers le rebord.
page 21
la TouchE
Slectionnez les faces du manche sur lesquelles se trouve la touche et les dupliquer avec Shift+D puis les sparer avec la fonction Separate (touche P > Selected). Un nouvel objet est ainsi cr. Passez en Object mode, slectionnezle et rebasculez en Edit mode.
TuTorIEl
Guitare 3D
Faire une premire extrusion pour donner de lpaisseur (noubliez pas les loopcuts pour durcir les bords) puis une seconde pour faire descendre la touche jusquau trou de la guitare.
Pour bien accompagner larrondi du trou, faire un loopcut sur la longueur du manche et ajuster le positionnement des vertices sur le bord du trou.
Et voil ! La forme gnrale est faite. Je vous laisse le soin de faire jouer votre crativit pour modliser les mcaniques, les cordes, ou encore le chevalet. Si vous avez des envies/ suggestions de tutoriels concernant Blender pour les prochains numros nhsitez pas menvoyer un message priv sur le site du zro ! bobo75014
page 22
TuTorIEl
par spoke44
InITIaTIon l acTIonScrIpT 3
Dplacez des clips et dcouvrez les conditions en AS3.
Voici le second tutoriel de la srie Initiation lactionscript 3. Nous allons voir comment dplacer un clip dans le stage avec les flches du clavier et lempcher de sortir de lcran grce des petites conditions basiques.
var img:Shape = new Shape(); img.graphics.beginFill(0xFF0000); img.graphics.drawRect(0, 0, 40, 40); var clip:MovieClip = new MovieClip(); clip.addChild(img); stage.addChild(clip); clip.x = 100; clip.y = 100;
Initiation lActionscript 3
TuTorIEl
Intressons nous au paramtre KeyboardEvent reu dans notre fonction. Il sagit en fait dun nombre. De ce nombre on peut rcuprer un code appel keycode, qui est associ la touche appuye. Il existe des tableaux sur internet ou lensemble des keycodes sont rpertoris. Mais au lieu de chercher sur le net les codes correspondant nos 4 touches de dplacement, nous allons plutt utiliser notre fonction pour afficher le keycode de la touche appuye que notre fonction reoit ! Cela est relativement simple, il simplement dutiliser la fonction : trace(mavariable); Implmentez donc a dans la fonction Bouger. Compilez et testez le programme. Normalement lorsque vous appuyez sur une touche un numro apparait dans la console de dbug. Rcuprez les 4 numros correspondant aux 4 touches de dplacement et notez les. suffit
1. 2. 3. 4.
lES conDITIonS
Les conditions en flash sont identiques beaucoup de langages dun point de vue syntaxique. Nous nous intresserons uniquement la condition if () et ses drives pour notre programme. Celle-ci semploie donc comme cela : if ( ma condition ) { //si ma condition est vraie } else if (une autre condition) { //sinon si une autre condition est vraie } else { //sinon on fait a } Plutt simple nest-ce pas ? Une dernire chose pour avoir toutes les clefs en mains : il faut que vous reteniez la syntaxe pour tester les conditions. if if if if if ( a == b) //si a est gal b ( a != b) //si a est diffrent de b ( a > b) //si a est suprieur b ( a < b) //si a est infrieur b (a <= b) //si a est infrieur ou gal
//si a est suprieur ou gal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
function Bouger (key:KeyboardEvent){ if(key.keyCode == 37){ //gauche } else if(key.keyCode == 39){ //droite } else if(key.keyCode == 38){ //haut } else if(key.keyCode == 40){ //bas } }
if (a>= b)
b
page 24
Initiation lActionscript 3
Et voil vous pouvez compiler, normalement lorsque vous appuyez sur une des touches il se passe... rien du tout ! En effet, il va falloir dire notre clip de bouger lors de lappui sur les touches de dplacement.
TuTorIEl
DplacEr un clIp
Dplacer un objet est extrmement simple en actionscript 3. On accde la proprit x et y de notre clip comme ceci : monClip.x monClip.y Il suffit alors de changer cette position chaque fois que lutilisateur appuie sur la touche. Je rappelle que : monClip.x += 2; est une autre criture de monClip.x = monClip.x + 2; Maintenant si vous compilez et que vous testez les touches, votre clip se dplaera. Flicitations ! Il reste cependant un dernier point voir ; il faut viter que notre clip sorte de lcran.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
function Bouger (key:KeyboardEvent){ if(key.keyCode == 37){ //gauche clip.x -= 2 ; } else if(key.keyCode == 39){ //droite clip.x += 2; } else if(key.keyCode == 38){ //haut clip.y -= 2; } else if(key.keyCode == 40){ //bas clip.y += 2; } }
Rcuprez la taille de votre animation flash dans les paramtres de votre animation et insrez les conditions de position. if(key.keyCode ==37 && clip.x > 0) Ce code signifie simplement que Si la touche appuye est la touche gauche ET que la position sur les x de clip est suprieure 0 (et donc toujours sur lcran) faire : ...
function Bouger (key:KeyboardEvent){ if(key.keyCode == 37 && clip.x > 0){ clip.x -= 2 ; } else if(key.keyCode == 39 && clip.x < 400){ clip.x += 2; } else if(key.keyCode == 38 && clip.y > 0){ clip.y -= 2; } else if(key.keyCode == 40 && clip.y < 300){ clip.y += 2; } }
page 25
Initiation lActionscript 3
lE moT DE la fIn
Le code complet de cette petite animation se trouve ci-dessous. Notre code demande tre amlior car si vous faites attention, lorsque vous restez appuy sur une touche il y a un petit temps de latence au dbut avant que le clip bouge. Cette latence peut tre corrige en ajoutant 2 autres couteurs et en utilisant des boolens (voir partie Pour les curieux ci-dessous. Je vous invite vivement essayer de faire lexercice). Nhsitez pas poser vos questions sur lactionscript 3 sur le forum dans la partie Autres
langages.... Il y a des zros trs comptents qui seront ravis de vous filer un coup de main ou des astuces pour amliorer votre code. A bientt !
TuTorIEl
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
//CODE COMPLET var img:Shape = new Shape(); img.graphics.beginFill(0xFF0000); img.graphics.drawRect(0, 0, 40, 40); var clip:MovieClip = new MovieClip(); clip.addChild(img); stage.addChild(clip); clip.x = 100; clip.y = 100; stage.addEventListener(KeyboardEvent.KEY_DOWN, Bouger); function Bouger (key:KeyboardEvent){ if(key.keyCode == 37 && clip.x > 0){ clip.x -= 2 ; } else if(key.keyCode == 39 && clip.x < 400){ clip.x += 2; } else if(key.keyCode == 38 && clip.y > 0){ clip.y -= 2; } else if(key.keyCode == 40 && clip.y < 300){ clip.y += 2; } }
page 26
TuTorIEl
Difficult
par Aznam
Bonjour. Que puis-je faire pour vous ? Crer un jeu vido ? Mais pourquoi vous ne le faites pas vous mme ? Hein ? Si, si, bien sr que cest possible...
Et oui, concevoir un jeu vido ce nest pas rserv aux professionnels, mme si le march a tendance ne recruter que des personnes diplmes. Enfin, diplmes... Disons les choses rellement : diplmes mais sans comptence pour la majorit... Alors oui, les autodidactes de gnie ont encore leur place dans ce monde. Mais pour devenir autodidacte de gnie, il faut se lancer, tenter et apprendre. Peut-tre que vous deviendrez alors le John Carmack des temps modernes Tout cela pour dire que faire des jeux vidos, ce nest pas compliqu. Nanmoins, cela demande certaines comptences et connaissances (plus ou moins complexes selon le jeu en question). Ne vous leurrez pas : le but de ces articles nest pas de faire de vous des gnies du jeu vido (dans ce cas l, allez faire une cole dingnieur, cela vaut mieux), mais dintroduire certains aspects importants du dveloppement de ce type de produit dont tout le monde raffole.
Ces articles partent dun principe fondamental : vous savez dj programmer en C/Java/Pascal Objet... Donc il nest aucunement question de faire un cours de programmation ici. A lissue de la premire fourne darticles, vous serez capable de concevoir de A Z un petit jeu daventure en 2 dimensions. Enfin quand je dis de A Z, cest plutt de A D, puisque vous vous rendrez compte que faire un jeu vido demande des comptences qui vont au-del du simple je connais tout, cest moi le plus fort, cest moi le plus grand... Bref commenons sans plus tarder, dmystifions les jeux vido !
page 27
Initiation lActionscript 3
tutoriaux en parlent dj. Note : Je ne parlerai ici que de concepts ncessaires la ralisation de jeux vido modernes. Pour tout ce qui est syntaxe C++, je vous conseille de lire les trs bons cours et tutoriaux du SDZ ou de developpez.com
TuTorIEl
Ouvrez donc votre diteur prfr, et crez un nouveau projet C++ console
bon que doit-on faire ? Lobjectif comme je lai dj dit est de raliser un Morpion en C++, donc en programmation oriente objet. Si vous nen navez jamais fait, vous venez sans doute du monde procdural (sauf si vous venez du monde logique, et dans ce cas, vous pouvez sauter toute cette partie) o tout est fonction. En procdural, lobjectif est denchaner des valuations de fonctions qui fournissent un rsultat et qui influe sur une autre fonction. En dautres termes, toute votre application C est une suite de fonctions mathmatiques qui sont appeles et qui influent sur le rsultat de la fonction main (qui renvoi 0, 1 ou autre chose). Au final, vous avez ce schma l : main(x) = f1(x, y) = f2 =(x,y,z) = .... En POO, nous allons nous souvenir de ce concept mais changer de vision. On ne sintresse plus aux fonctions en tant quobjets mathmatiques fournissant un rsultat que lon passe une autre fonction, mais aux objets et aux relations quils ont entre eux. Ainsi, je ne parle plus de la fonction acclrer() agissant sur une donne voiture, mais de lobjet voiture qui peut acclrer(). Pour tre plus prcis, en procdural, votre fonction acclrer() produisait un rsultat en tenant compte de la voiture, des 4 roues et du moteur que vous lui passiez en paramtres. En dautres termes, ctait un objet mathmatique qui fournissait une valeur en fonction des variables que vous lui donniez. En POO, la vision est de dire que la mthode acclrer() est une action
page 28
dun objet voiture, une voiture compose de 4 roues, et un moteur, ou de 2 roues et 2 moteurs. Quelque soit votre voiture, elle acclre.
TuTorIEl
Le morpion
posons-nous les bonnes questions, quest ce quun morpion ? Il sagit dun jeu dans lequel les joueurs posent des symboles dans une grille. Celui qui aligne 3 de ses symboles gagne la partie. A partir de cette rponse, certains objets apparaissent. Tout dabord, on sait que le morpion est un jeu compos dune grille et de 2 joueurs. Ici, apparaissent lobjet JEU(ou PARTIE) et JOUEUR. En effet, si on se rfre mon exemple ci-dessus, on peut caractriser une partie de faon abstraite (puisque toute partie au final possde les mmes caractristiques) et idem pour joueur. Il reste alors savoir si GRILLE est un objet. Posons nous alors une seconde question : estce quil existe plusieurs grilles pouvant avoir des caractristiques communes que lon peut personnaliser (comme dans le cas de la voiture, o toutes les voitures sont caractrises par une couleur concept gnral que lon peut personnalise attribut local - ?) Dans le morpion classique, la rponse est non, une grille tant juste un tableau dune certaine taille (ici 3x3). Ainsi, on va considrer quil ny a pas dobjet grille en tant que telle, mais quune grille caractrise une partie (une partie tant la donne dune grille et de plusieurs joueurs daprs la rponse la question ci-dessus). On vient donc de dgager 2 classes (2 types dobjet si vous prfrez) ainsi que leur relation. Une partie est 1. class Partie lie 2 joueurs 2. { qui eux sont 3. caractriss par public: 4. des symboles Partie(); 5. (celui quils ~Partie(); 6. apposent dans la 7. grille). private: 8. Joueur* _joueur1; 9. Joueur* _joueur2; Nous pouvons 10. int _grille[3][3]; alors crire la 11. } classe PARTIE en C++ (ci-contre).
page 29
Que vient-on de dfinir ? Une classe (oui en effet il y a crit class...). Une classe est constitue dun constructeur (portant le nom de la classe) permettant comme son nom lindique de construire une instance particulire de ce type. Par analogie, comme je le disais, la classe est le patron (le modle), lobjet est la ralisation particulire de cette classe, et le constructeur est la mthode permettant de crer la ralisation partir du modle. Bien videmment, si lon construit, on veut aussi dtruire. Le destructeur porte en C++ le mme nom que la classe en tant prcd de ~ On vient galement de dire quune partie est compose de joueur grce aux pointeurs, et dune grille 3x3 (le tableau). Je le rpte, on vient simplement de dfinir un modle de Partie et non pas une partie en particulier. Pour cela, nous allons faire :
1. 2. 3. 4. 5. 6. 7.
Bon, nous venons de dfinir les 2 types dobjet que nous avons identifis. Allons plus loin en compltant nos classes. Une partie se droule en plusieurs phases : 1. On initialise le plateau de jeu 2. Le joueur 1 pose sa marque 3. On regarde sil y a un alignement de marque 4. Le joueur 2 pose sa marque 5. On regarde sil y a un alignement de marque 6. On ritre 2 4 jusqu quil y ait un alignement ou que la grille soit complte. Ainsi, nous venons de dfinir le comportement dune partie. Nous allons donc les implmenter dans notre classe. Je le rpte encore, il sagit ici de dfinir un comportement global dune partie, quune partie particulire appliquera avec ses attributs particuliers. On obtient alors :
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
TuTorIEl
Le morpion
class Partie { public: Partie(); ~Partie(); void run(); private: void init_partie(); void check_partie(); void fin_partie(); Joueur* _ joueur1; Joueur* _joueur2; char _grille[3][3];
Ainsi dans la fonction main, nous venons de crer un objet particulier de la classe Partie que nous avons appel maPartie. Ainsi, vous pouvez crer autant de parties que vous le souhaitez, en crant autant de variables de type Partie que vous le souhaitez. Chaque instance tant unique, chacune sera personnalise par les attributs dfinissant une Partie. De la mme faon, nous pouvons dfinir la classe joueur : I 1. i class Joueur c u2.n { 3. public: 4. Joueur(); 5. ~Joueur();
6. 7. 8. 9. 10. 11.
};
run est une mthode permettant de lancer une partie. init_partie initialise la partie, check_grille vrifie la grille et fin_partie met fin la partie. On rajoute un attribut _etatPartie qui prendra la valeur vrai ou faux et qui indiquera si lon a termin la partie ou non.
joueur est dfini uniquement par un attribut _ symbol qui donnera le symbole apposer dans la grille.
page 30
run est lalgorithme que nous avons dcrit plus haut : il sagit du droulement dune partie. On initialise la grille, le joueur 1 joue, le joueur 2 joue et on ritre jusqu quil ne soit plus possible de jouer. Regardons init_partie et fin_partie :
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
void Partie::init_partie(){ _joueur1 = new Joueur(x); _joueur2 = new Joueur(o); for(int i = 0; i < TLIGNE; i++) for(int j = 0; j < TCOLONNE; j++) _grille[i][j] = ; } etatPartie = true;
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
TuTorIEl
Le morpion
class Joueur { public: Joueur(char symbol); ~Joueur(); void joue(); private: char _symbol; char* _grille; }; void Joueur::joue(){ int x = -1; int y = -1; while(x<0 || x>2|| y<0 || y>2){ std::cout << O voulez vous placer votre symbole ?; std::cin >> x >> o; } _grille[x*TLIGNE+y] = _symbol; }
void Partie::fin_partie(){ delete _joueur1; _joueur1 = NULL; delete _joueur2; _joueur2 = NULL; } _etatPartie = false;
Le comportement joue() dun joueur est dfini comme suit : on demande au joueur o il souhaite placer son symbole et on le place dans la grille. Bien videmment, il vous aura fallu dfinir dans le constructeur (ou via une autre mthode) ladresse de la grille. En dautres termes, donner chaque joueur ladresse de la grille dfinie dans Partie. Vous voyez bien que chaque rle est bien dfinie en POO : la partie est constitue dune grille et de joueurs, et ce sont les joueurs crivent dans la grille leur symbole. Terminons par le main :
1. 2. 3. 4. 5. 6.
Pour initialiser une partie, nous creons 2 joueurs, on vide la grille et on place ltat de la partie vrai. En terminant la partie, on supprime les joueurs et on place ltat de la partie faux. Rien de plus simple ! Voila, vous venez de dfinir quasiment le comportement dune partie. Il vous reste check_grille() programmer (mais cela fait lobjet de votre challenge, crire un algorithme rapide de contrle de la grille).
Il suffit que votre instance particulire de Partie se lance (ie en invoquant run() ).
page 31
Voila, en compltant les 2 mthodes quil manque (pour donner ladresse de la grille aux joueurs, et check_grille() ) , vous venez de crer votre premier morpion 2 joueurs en mode console sur le mme cran. Bravo !!!
TuTorIEl
Le morpion
Le mot cl virtual dans la classe Joueur indique quune classe qui hriterait de Joueur peut redfinir la mthode joue. Cest ce que fait IA. En mettant les attributs de Joueur en accs protected (la porte ou laccs est indiqu par le petit mot public ou private ou protected), vous rendez les attributs de Joueur accessible IA. Ceci est important pour accder la grille ou personnaliser le symbole jou par votre IA. Ainsi, un objet de type IA est un objet de type Joueur ayant un autre comportement. Il vous suffira donc dcrire votre algorithme dans la mthode joue() de IA pour introduire un mode 2 joueurs contre lordinateur. Petite modification alors dans Partie :
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
void Partie::init_partie(){ _joueur1 = new Joueur(x); _joueur2 = new IA(o); for(int i = 0; i < TLIGNE ; i++) for(int j = 0; j < TCOLONNE; j++) _grille[i][j] = ; _etatPartie = true; }
On ne cre plus 2 objets joueurs, mais un objet IA pour le joueur 2. Etant donn que IA hrite de Joueur, le type de _joueur2 ne change pas, cest toujours un Joueur, mais avec un comportement dIA. Jespre que cest assez clair...
class IA:public Joueur{ public: IA(); ~IA(); void joue(); private: void regarde();
page 32
TuTorIEl
Le morpion
lE moT DE la fIn
Voila vous venez dcrire votre premier jeu sur PC. Bon ok, ce nest pas norme mais cela fait dj un jeu votre actif (enfin en compltant les mthodes que je nai pas crites). Jespre que vous avez un petit peu capt ce que jessayais de vous faire comprendre, savoir lutilit de la POO dans la cration dun jeu vido. Mme si en moyenne une application POO est 10% 30% moins efficace quune application procdurale, la POO reste un concept trs puissant et trs utile dans la cration de jeu vido. Les bases sont poses, votre challenge consiste donc maintenant crire les algorithmes manquants pour faire un morpion efficace. Si vous avez bien compris ce que jai essay de vous montrer, ceci sera un jeu denfant pour vous. Bien videmment, si vous tes dous, vous
pouvez faire cela en mode graphique avec Qt ou SFML. Toute amlioration du concept est aussi la bienvenue pour rendre votre morpion attractif. Les meilleurs codes et productions trouveront leur place dans le prochain numro, dans lequel nous parlerons de choses tel que lorganisation du travail, et donc cela sera moins technique (nous alternerons technique, mthodes conceptuelles, organisation). Vous pouvez poser vos questions et envoyer vos productions az.yacoub@mastiware. com.
Jessairai de vous rpondre si mon emploi du temps me le permet ! La suite dans le prochain numro ! Aznam. Dveloppeur chez Mastiware.
page 33
ExErcIcES
par m@tteo78
javaScrIpT
un calendrier qui peut tre insr nimporte o sur une page web.
ExErcIcE 1
Lobjectif est de coder un calendrier simpliste. Les consignes sont les suivantes : Affichage graphique dun tableau du mois actuel. Exemple ci-contre. Le jour actuel doit tre surlign. Le nombre de jours du mois doit tre correct (il faut donc prendre en compte le mois de fvrier et les annes bissextiles).
ExErcIcE 2
En reprennant le calendrier : La colonne des dimanches doit apparatre dune couleur distincte Les lments crs doivent ltre avec DOM (et non avec innerHTML ou autre) Le calendrier doit pouvoir se replier pour prendre moins de place (par exemple, ne laisser que la barre rouge).
ExErcIcE 3
Le calendrier doit tre extensible : on doit pouvoir lagrandir horizontalement et verticalement. Il doit grer la place qui lui est alloue (mme largeur pour toutes les colonnes, mme hauteur pour toutes les lignes).
ExErcIcE 4
Le calendrier doit comporter des flches pour changer de mois et danne affiche. La date entire en franais (Lundi 14 Novembre 1987) doit tre affiche dans la case rouge (qui doit donc tre agrandie).
ExErcIcE 5
Lorsque lon clique sur le mois actuel, laffichage doit se changer pour laisser lutilisateur choisir parmi tous les mois de lanne. Lorsque lon clique sur lanne actuelle, laffichage doit se changer pour laisser lutilisateur choisir parmi toutes les annes de la dcennie (10 ans). Lutilisateur doit pouvoir entrer une date pour sy rendre immdiatement au format raccourci (14/11/1987). Corrections le mois prochain, bon courage !
page 34
ESpacE mEmbrES
Ce petit concours est normalement organis une fois par an (en juillet). Exceptionnellement, il a t dcid quune seconde session cette anne serait prvue. Cette seconde session vient tout juste de dmarrer (vendredi 19 novembre) et donc mme avec 2 jours de retard il serait dommage de ne pas participer ! Les thmes de cette dition sont : le ou Pirate et elle se termine dimanche 28 20h !
Le concept est simple, il faut crer un jeu vido sur une dure de 9 jours. Il faut donc ne pas voir trop grand, tre efficace et sorganiser. Tous les langages sont autoriss et vous tes libres dutiliser nimporte quel outil maintenant il reste faire quelque chose avec un concept intressant ce qui nest pas toujours vident sur une si petite priode.
COMMENT PARTICIPER ?
Premire chose, nayez pas peur de vous lancer, il y a tous les niveaux dans ce concours et cest une occasion pour mener bien un projet. Pour participer il vous suffit de vous inscrire sur le forum GCN (Game Creator Network) et poster un nouveau topic dans le forum Projets - Novendiales qui prsente votre jeu et le lien pour le tester ! Cest tout. Il est important dessayer les jeux des autres participants pour pouvoir voter pour les 3 meilleures crations. Ensuite le vote se passera comme cela : Chaque inscrit au forum peut voter. Le vote est public et se fait dans le sujet qui sera cr cet effet. On ne vote pas pour soi. Il est possible de changer son vote, il suffit de poster les nouveaux choix, le message le plus rcent au moment du classement sera celui qui sera pris en compte. Chaque votant choisit son Top 3 (donc projet prfr, celui qui vient juste aprs, et un troisime). Chaque votant doit expliquer un minimum ses choix (histoire de donner un peu de retour aux crateurs). Vote qui dure 1 semaine en gnral. Lien du Forum : http://forum.games-creators.org Lien direct vers le forum Novendiales : http://forum.games-creators.org/forumdisplay.php?f=101 En esprant vous voir ce concours, personnellement jy participe !
Spoke44.
page 35
ESpacE mEmbrES
SESSIon #74
Technique - ptit dj (objet en rapport). - Carrosserie de voiture. organique - Lapin. - Garfield.
Flash back
SESSIon #73
Technique - Pole. - Concept Futuriste la faon de Daniel Simon. organique - Un il. - Tintin.
SESSIon #75
Technique - Radiateur. - Casque de Iron Man. organique - Papillon. - Personnage de Joe bar Team.
Encore une fois nous avons t attentifs aux ralisations faites dans le cadre des speeds mods et nous avons slectionn la meilleure image des sessions N72 75 ! Donc un grand bravo gft.freak pour sa ralisation de la session #73 :
page 36
ESpacE mEmbrES
Flash back
l algbrE DE boolE
alcinos nous explique ce quest lalgbre de Boole, son intrt, et comment sen servir.
http://www.siteduzero.com/tutoriel-3-342264-l-algebre-de-boole.html
ESpacE mEmbrES
Flash back
la phySIQuE-chImIE En SEconDE
Deuxime cours cr par Brice Errandonea de la section sciences, tout le programme de physiquechimie de seconde sera vu dans ce big-tutoriel.
http://www.siteduzero.com/tutoriel-3-351894-la-physique-chimie-en-seconde.html
page 38
graphox
xXDarkingXx sest lanc dans la cration dune librairie PHP nomme Graphox. Ce nest pas moins de 800 lignes qui vous permettent de gnrer des graphiques simplement, en quelques lignes et de faon condense.
TuTorIEl
Flash back
Certes, il existe dautres librairies qui ont le mme but, mais la force de Graphox rside dans le fait que les graphiques que vous crez sont entirement paramtrables : la couleur du fond, le type de courbe ou de point, les polices, les bordures, lpaisseur des lignes, lopacit. Mais ce nest pas tout, car xXDarkingXx compte tenir jour sa librairie et y ajouter de nombreuses autres fonctions. Heureusement, il a aussi crit un guide pour dbuter avec Graphox, qui recense et explique toute les fonctions de Graphox.
Le + : Ultra lgre, simple dutilisation, entirement paramtrable.
clocKTwEETS
Vous Twittez plus vite que votre ombre ? Drogu la Twitosphre ; vous passez votre vie rcolter des followers et tes toujours laffut de nouveaux followings ! Enfin, le RT, le DM et le FF nont plus de secrets pour vous ? Mais vous le savez, Twitter est chronophage ! Et cest l quentrent en jeu Gaf, Archlance et leur site Clocktweets. Celui-ci permet de programmer ses Tweets lavance, ensuite, vous tes libre de vaquer dautres activits. Avec prt de 3500 tweets dj programms, Clocktweets connait un succs croissant, il sest rcemment vtu dun nouveau design plus moderne, et senrichit de nouvelles fonctions, telles que modifier ses Tweets avant quil ne paraissent. Au cas o vous vous rendiez compte de leur inutilit... Une seule rgle : Programmez vos Tweets dans le futur avec amour.
Le + : Disponible en Anglais et en Franais, design attrayant, aucune pub, concours avec des lots.
ET SI on parlaIT (ESop)
Nous venons de parler de Twitter et je suis prt parier que vous connaissez Facebook. Ces Rseaux Sociaux succs. Depuis quelques temps maintenant, Kaleidoscopique et son quipe (ils sont quatre) nous prsentent une Rseau Social IRL, In Real Life, Dans la Vraie Vie, oui, vous avez bien compris. Et Si On Parlait a lambition de vous faire rencontrer des gens pour de vrai, dans la rue, le bus ou au travail. Pour ce faire, vous pouvez commander un badge porter sur vous (sur votre sac dos par exemple) quand vous sortez de chez vous. Ensuite, allez la rencontre de gens qui portent un badge ESOP. Lassociation ne sarrte pas l, depuis peu, elle propose de soutenir un projet par mois, en vous donnant des badges et en faisant connatre le projet dans son rseau de Zopiens.
Le + : Badges thmatiques ; loriginal, le Blabla mais aussi les badges Twitter et Android. Votez pour celui du Site du Zro !
page 39
holySpIrIT
Vous ne connaissez pas HolySpirit : Act of Faith ? Cest un projet qui existe depuis plus de 2 ans, mais qui a sa place ici. Il est dvelopp par lquipe Alpha-Arts et cest Gregouar qui nous prsente le projet sur le Site du Zro. Cod en C++, cest un jeu type HacknSlash (jeu daction) qui se joue en Solo. Le seul scnario (trs pouss) vous plonge immdiatement dans un univers dHeroic Fantasy, une histoire de Bien et de Mal, de trahison et de sacrifices, que je vous laisse dcouvrir. Vous pouvez vous mettre dans la peau de plusieurs personnages le Crois, lInquisiteur, la Courtisane et le Pistolero, chacun ayant ses caractristiques. Le gameplay est rflchi et abouti, de nombreux paramtres sont prendre en compte (notamment les jauges de point de vie, de point de foi et de point dme). Vous disposez de plusieurs armes et lartisanat vous donne accs des objets uniques !
Le + : Jeu trs complet, il y a de nombreux lments, les graphismes sont agrables.
TuTorIEl
Flash back
cybEr-hacKEr
Cyber-Hacker est un jeu de type MMOG (Massevily Mutliplayer OnLine Games) qui se prsente sous forme de Web-OS. Ainsi, linterface du jeu est assez bluffante, elle donne limpression dtre aux commandes de lordinateur dun hackeur professionnel. La navigation dans le jeu se fait comme sur nimporte quel ordinateur, un bureau, des icnes et des fentres. Le jeu se passe principalement dans la console, cest de l que vous affrontez les autres joueurs, envoyez de virus, amliorez votre machine ou crackez la banque pour gagner plus de Sidromes (la monnaie du jeu). Soyez vigilants, vous pouvez tre infect par un virus, mais nabusez pas de lanti-virus, il peut coter cher ! Notez que de nouvelles fonctionnalits sont prvues, telles que la Cyber Force, des dfis entre les joueurs, avec gains la cl.
Le + : Un chat en direct o lon est bien accueilli, une interface innovante, mises jour frquentes.
Sur le forum du SdZ, mot(s) clef(s) : [MMOG - Web Os] Cyber Hacker
http://www.cyber-hacker.com
page 40
crEDITS
wE nEED you !
Spoke44
Directeur de publication Interview Tutoriel Actionscript 3
Le magazine recherche activement tous les mois des personnes pour rdiger des tutoriaux et des articles. Si vous sentez la plume vous dmanger et que vous avez quelque chose nous proposer nhsitez pas contacter Spoke44 via le formulaire du site : www.spk-web.fr/magduzero.mdz ou par MP sur le Site du Zro.
Leonsulivan
Interview
D6-BL R@f
Projet RSPK-2172
Article UNIX
Webdev33
Article Web
Neo1015
Article Caml Light
rEmarQuES
Tous les articles, dossiers, interviews, citations, images ou ralisations publis dans ce magazine sont accompagns de lautorisation expresse de leurs auteurs. Lensemble des ralisations sus-vises sont la proprit de leurs auteurs respectifs et ne peuvent pas tre dissocis de ce magazine sans leur accord. Ce magazine est sous licence BY-NC-ND. Vous pouvez donc reproduire, distribuer et communiquer cette cration au public.
Bobo75014 Aznam
Tutoriel Blender
m@tteo78
Exercice Javascript
Le logo a t imagin et cre par hotgeart. Merci lui ! Le design du magazine, quant lui, est sign Derzone. Merci tous les correcteurs ainsi qu toutes les personnes qui ont accept la publication de leur ralisation dans ce magazine. Les excuses du mag coma94 (alias Etienne Moutot) pour avoir oubli de citer son pseudo ct de sa ralisation 2D du numro 1 Averse.
Cependant, vous devez citer le nom de lauteur original de la manire indique par lauteur de loeuvre ou le titulaire des droits qui vous confre cette autorisation (mais pas dune manire qui suggrerait quils vous soutiennent ou approuvent votre utilisation de loeuvre). Vous navez pas le droit dutiliser cette cration des fins commerciales et enfin vous navez pas le droit de modifier, de transformer ou dadapter cette cration.
http://creativecommons.org/licenses/by-nc-nd/2.0/fr/