Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / News: RPG Maker With / Site: Oniro va mieux / Site: Problèmes sur Oniro / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

246 connectés actuellement

30679270 visiteurs
depuis l'ouverture

1567 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Offgame

ConsoleFun

Lumen

Tashiroworld

Tous nos partenaires

Devenir
partenaire



[Ruby] Cours n°2 : Les tableaux

Série de tutoriels sur le Ruby. Ce cours, vous montre comment fonctionne un tableau de variables et les pièges à éviter.

Ecrit par Tonyryu le 02/08/2013


❤ 0

Sommaire

Ruby
Les variables
>> Les tableaux <<
Les booléens et les calculs logiques
Structure de if
Structure de case
Boucles loop do et while
Boucle for
Fonctions et procédures
POO - Classes et objets

RGSS
Débuter avec le RGSS
Module Input
Bitmap, Color, Sprite
Structure de base des classes Scene et Window




[Ruby] Cours n°2 : Les tableaux


Ce cours, vous montre comment fonctionne un tableau de variables et les pièges à éviter.

Tableau à une dimension :

Donc reprenons, l'histoire de nos bouteilles, un tableau ç'est comme un pannier comportant plusieur bouteille de n'importe quel type (liquide, solide..).
La seule diférence c'est que l'on a un nom pour le pannier, mais pas pour les bouteilles, elles sont dans le pannier, dans un ordre stricte qui ne bougera pas, donc pas besoin de connaitre leur nom, si on connait le nom du pannier et de la position de la bouteille dans ce pannier, c'est emplement suffisant.

On peut avoir autant de bouteilles que l'on veut dans ce pannier.

Exemple, je prend mon pannier de bouteille vide qui contiennent des liquides, on va les remplir.

En Algorythme :

Citation:

Fonction : RemplirMesBouteilles

Variables :
monPannier est un pannier de bouteille liquide
monVerre contient du liquide

Début :
| monPannier[0] <- Jux d'orange
| monPannier[1] <- Eau
| monPannier[2] <- Bierre
| monPannier[3] <- Vin Rouge
| monVerre <- monPannier[0] + monPannier[1]
|
| Boire monVerre
Fin



J'obtiens un verre de jus d'orange dilué avec de l'eau.

Vous constatez une chose flagrante, c'est que la premiere bouteille du pannier est considérée comme la bouteille 0... Pourquoi pas la bouteille 1.

Je vais tenter de vous expliquer cette bizarerie, Attention, c'est des notions de programmation bas niveau (fonctionnement interne) :
Quelque soit la variable, cela reste un endroit sur votre disque dur, où est inscrit une information, dont le type permet de connaitre la place que l'information prend en terme d'octet. Un tableau dans la mémoire, se sont donc, plusieurs informations de même type qui sont écrites à la suite, le nom du tableau défini la position de la première information stocké, ensuite il faut se décalé pour atteindre les autres informations.
Dans mon exemple de pannier, c'est comme si on me disait, va prendre une bouteille, hop, j'attrape directement la premiere, si je veux la deuxième, je décale 1 fois le nombre que l'on met entre crochet pour un tableau correspond au décalage à effectué.

Ce qu'il faut retenir c'est que le premier élément du tableau a l'index 0 et que son nom est son adresse mémoire.

Petit exemple d'addition en ruby, avec des tableaux :

Portion de code : Tout sélectionner

1
2
3
4
5
def additionner
  tabReel = [12, 34, -24, 0.25, -3.75] # là, le tableau est typé Reel
 
  monResultat = tabReel[1] + tabReel[4]
end 


monResultat est égale à 30.25

Je le répete encore une fois, faites très attention à l'index du tableau, ne pas savoir ce repérer dedans, c'est une grande source d'erreur.
Cela marche de la même façon, pour tous les types de variable.

Tableau à dimension Multiple :

Comme je vous l'ai expliqué un tableau peut être représentant pas un pannier, contenant des bouteilles. Mais maintenant supposez, que dans un coffre, j'ai plusieur panniers de même dimension (contenant le même nombre de bouteille), ce qui en algorithmer aurait cette tête là :

Citation:

Fonction : RemplirMonCoffre

Variables :
monPannier1 est un pannier de bouteille
monPannier2 est un pannier de bouteille
monPannier3 est un pannier de bouteille
monPannier4 est un pannier de bouteille
monCoffre est un coffre de pannier


Début :
| monPannier1[0] <- une bouteille d'eau
| monPannier2[0] <- une bouteille de jus d'orange
| monCoffre[0] <- monPannier1
| monCoffre[1] <- monPannier2
| monCoffre[2] <- monPannier3
| monCoffre[3] <- monPannier4
|
| mon
Fin



Dans l'exemple ci dessus, j'ai mis dans le coffre 4 panniers, dont le premier comprend une bouteille d'eau, et le second, une bouteille de jus d'orange. Jusque là, vous me suivez?? ^^

Donc si on suit ce que l'on a vu au cours précédent :
monPannier1[0] = la bouteille d'eau
et
monCoffre[0] = monPannier1

on peut donc remplacer dans la première ligne monPannier1 par monCoffre[0], et nous obtenons :

monCoffre[0][0] = la bouteille d'eau

Vous venez de voir comment fonctionne un tableau à plusieur dimension. Cependant attention, j'ai déjà fait la remarque d'être rigoureux avec les index pour une dimension, je vous conseille de l'être encore plus pour les tableaus à multiple dimension.

Et oui, imaginez que dans un batiment, j'ai plusieurs caves, contenant plusieurs coffres, contenant plusieurs panniers, contenant plusieurs bouteilles... fiou, le casse tête
Hop, ça nous donnes :

monBatiment[0] = uneCave
uneCave[0] = unCoffre
unCoffre[0] = unPannier
unPannier[0] = uneBouteille de jus de citron vert

en reduisant cela, nous obtenons :
monBatiment[0][0][0][0] = une bouteille de jus de citron vert

en récapitulant les index :
le premier identifie une cave
le deuxieme identifie un coffre
le troisièmen identifie un pannier
le quatrième identifie une bouteille

Cependant rassurez vous, dans un programme, on a rarement plus de 3 Dimensions

Source
- Tonyryu, "[Ruby] Cours n°2 : Les tableaux", TonyryuDev, écrit le 2 août 2013 [consulté le 4 juillet 2021], https://web.archive.org/web/20181202044033/http://www.tonyryudev.com/joomla3/index.php/menu-mes-developpements/menu-cours-ruby-rgss/3-ruby-cours-n-2-les-tableaux
Ce tutoriel a été posté avec l'accord de son auteur.


Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers