Pokemon Puissance Stellaire
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Pokemon Puissance Stellaire

Forum du projet de la Team Solaire/Lunaire
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

 

 tutos RGSS

Aller en bas 
AuteurMessage
Skylight

Skylight


Nombre de messages : 34
Age : 36
Localisation : Lyon
Date d'inscription : 11/07/2007

tutos RGSS Empty
MessageSujet: tutos RGSS   tutos RGSS Icon_minitimeDim 15 Juil - 16:05

Bon, et bien voici mon premier cours sur RGSS, et nous allons commencer avec les règles de bases du Ruby

Alors, déjà, qu’est ce que le rubis, un programme complettement orienté objet, et ouvert a toutes modification.
Qu’est ce qu’un prgrm orienté objet ? C’est simple, en rubis, tout est objet. Par exemple, 3 est un objet de la classe « entier » (integer en ruby). De même que le mot « vache » est un objet de la classe « chaîne de caractère (string en ruby. Si ça te fait rire, il existe un remède : la pendaison : simple, rapide, efficace)
Et que veut dire ouvert au modification ? simple, si la classe integer ne permet pas de faire ce que tu veut, rien a foutre, un rajoute, efface, crée,… le ruby, c’est le bonheur.

Introduction: a quoi ressemble un code en ruby?

Un code en ruby est composé de deux parties distinctes, que je nomme les classes et le code linéaire.
Le code linéaire est composé d'une suite de commande. Elles démarrent automatiquement, s'execute toutes dans l'ordre de haut en bas, et une fois arriver en bas du code, le programe s'étteind.
Les classes, situées au dessu du code linéaire, ne s'execute pas. Ce sont les différents types d'"objets" que nous pouvons utiliser dans le code linéaire ou les classes.

Nous allons maintenant faire un peu de vocabulaire de programation.

I-les classes

Les classes sont les « types d’objets » que l’on peut utiliser dans le code. Il existe quelques classes intégrées au rubis, comme par exemple la classe nombre entiers(integer) ou la classe tableau(array), mais la vrai force de la programation orienté objet est de pouvoir créer ses classes propres.
Les classes sont toutes créée au dessus du code linéaire. Leur nom commencent toujour par une majuscule.

exemple et pour nous, créer une classe « boite pokémon ». On créera donc un objet : une boite pokémon. Notre boite aura, forcément, des carracteristiques : un nombre de place, un fond, un environement,… ainsi que des actions propres, comme ajouter un pokémon, ou enlever un pokémon.

Exemple : pour la classe integer : il y a une seul carracteristique : le nombre lui-même. Par contre, il a beaucoup d’action, comme l’aditioner a un autre nombre, le retrancher, le diviser,…

Cela va sufire pour l’instant pour les classes. Il faut juste bien differencier classe et objet

II-les variables

Les variables peuvent êtres représentées par des "boites" qui contiennes les objets. Elles peuvent aussi être représentées par les adresses permettant de trouver les objets réels, qui eux sont ranger dans une grande bibliotheque. Il est important d'avoire ces deux représentations en têtes et de passer de l'une à l'autre pour une bonne compréhension.

Il existe 3 types de variables, qui diffère par leur portée et leur écriture

1- la variable global
là, il n’y a pas a chier, elle est valable partout. Elle est comune à toutes les classes et au code linéaire. Elle est comune a nimporte quel objet. Elle s’écrit $nom_de_la_variable. Plysiquement, ça serai le climat, par exemple. Si nos objets sont tous dans un champ, ils partagent tous le même climat. C'est la seul à pouvoire exister librement dans le code linéaire.

ex : $temps


2-la variable de classe
Une variable de classe n'existe que dans la classe ou elle a été créée, et peut avoir des valeurs différentes pour chaque objet de la classe. On dit que les variables de classes sont les attribut de l'objet. Avec notre exemple, si il y a des voitures dans le champs, toutes les voitures ont une couleur de peinture même si on ne la voi pas a cause de la rouille. Par contre, une voiture peut être bleu et l’autre verte. Par contre, si un autre objet du champ est une vache, on ne peut pas tout a fait dire qu’elle a une couleur de peinture… donc pas valable dans la classe Vache. Elle s’écrit @nom_de_la_variable.

3-La variable local
Alors là, c’est l’inverse de la variable global. C’est une variable qui n’est utilisable que dans une fonction seulement. L’objet n’en garde pas de trace. C'est un peut comme de la ram, ou la mémoire à court terme de l'esprit humain. elle peut servire à sticker une valeur le temps de la mettre quelque part.
Pour faire (12-4)*3, on fait 12-4, on stock le résultat ds une variable local qu’on multiplie par 3, Puis le résultat est stocké dans une variable global, par exemple. Là variable local peut disparaitre, ce n'est pas important, on a notre résultat.

III-Les objets.

Il est tres important de différencier objet et classe. Une confusion entre ces deux points serais un énorme boulet qui empecherais d'évoluer vite... et c'est c**, si on travail sur des pkmn. ^^

Donc, en gros, la classe est le type de l'objet. en prenant par exemple une voiture, elle est un objet physique. Si on la démarre, par exemple, cela ne démarre pas toutes les voitures existantes. Par contre, elle appartient à la classe Voiture (avec une majuscule), et il est écris dans la classe voiture que les objet de ce type peuvent démarrer. J'espère que je suis claire. Il faut bien, pour finir ce chapitre, comprendre que TOUT est objet en ruby. Mêmes les classes sont des objets de la classe Superclasse. De même que les mots clées.

IV-les fonctions et les méthodes

les fonctions et les méthodes sont identique, seule leurs position et la manière de les appeler change.

un "bloc de code" que l'on execute souvent (comprenez souvent= plus d'une fois. déja 2, c'est souvent chez moi^^) et qui est assez long peut tres vite devenire chiant, même avec des copier-collé...

au lieu de le réécrire plusieurs fois, ce qui est fastidieu, avouons le, on peut donner un nom a ce bloc, et le ruby, en bon code bien dresser, ira cherchez tout seul ce qu'il lui faut! c'est pas trop cool, non? ça s'écrie comme ça

def nom_de_la_fonction
..........
..........
..........
..........
..........
end

ensuite, pour executer ce qu'il y a entre le def et le end, il me suffit de réécrire nom_de_la_fonction.

Voila!! Il faut savoire qu'une fonction doit TOUJOURS etre écris en terrain neutre (en gros, hors des classes, dans le code même)

Ensuite, une méthode? et ba c'est comme une fonction, mais a l'interieur d'une classe (voila pkoi une fonction doit etre en dehors)
Pour en parler, on utilise la typo Nom_de_la_classe#nom_de_la_methode.
On ne peut l'apeler que sur un objet de Nom_de_la_classe, grace a un point.

exemple: $objet.nom_de_la_methode

Les méthodes ont la carracteristiques d'êtres propre à la classe à laquelles elles appartiennent, ce qui empeche d'utiliser une méthode de voiture sur un objet de type avion, par exemple.
L'aventage, c'est qu'elles peuvent porter le même nom sur plusieurs classes. Par exemple, Avion#changer_roue et Voiture#changer_roue sont des méthodes différentes. en effet, on change une roue différement entre ces 2 véhicules. mais vu qu'on l'aplique a un objet, pas de problème de confusion, on aplique la bonne! Privilégier toujours la méthode par raport a la fonction.

V- Les mots clées

On approche de la fin!!
en gros, les mots clées sont des... mots de vocabulaires permettant d'executer des actions. Ce ne sont pas des variables, ils n'ont donc pas de valeurs. Par exemple, if est un mot clé, qui permet une vérification. exemple:

Code:
Code:
$valeur=12
if $valeur > 10
  dir "je suis supperieur à 10, regardez, j'ai la valeur "+$valeur.to_s
else
  dir "je suis inferieur ou égal à 10"
end


en gros, la valeur contennu dans $valeur est testé, et un message est afficher a l'écran, différente celon si ce nombre est supperieur ou inferieur a 10.

Les autres choses a noter, dans cet exemple...
dir est un mot clé qui ouvre une popwindows, vous savez, ces trucs du genre "voulez vous vraiment vider la corbeille?".
else veut dire sinon. il fonctionne avec if, et donne la chose a faire si le if est faux. Le end ferme le bloc du if. c'est a dire que ce qui suit le end sera executer quel que soit la valeur de $valeur. en gros on pourait traduire ça par si... sinon... fin.
les " " délimite une chaine string. tout ce qui est entre eux sera afficher en violet et sera considéré comme du texte.

+$valeur.to_s vous intrigue?? je vais essayer de l'expliquer car il est tres interessant. là, je voulais ajouter la valeur de $valeur au message. Je peut souder deux chaines de textes avec l'outil +. C'est une méthode de string, elle s'écrit donc string#+.
Mais $valeur n'est pas une string, mais une integer... j'aurais donc eut une erreur, et le jeu aurait planté. J'ais donc uttilisé l'outil integer#to_s, qui permet de transformer un entier en chaine de carractere. comme ça, no problem ^^


Dernière édition par le Dim 15 Juil - 16:07, édité 1 fois
Revenir en haut Aller en bas
Skylight

Skylight


Nombre de messages : 34
Age : 36
Localisation : Lyon
Date d'inscription : 11/07/2007

tutos RGSS Empty
MessageSujet: Glossaire   tutos RGSS Icon_minitimeDim 15 Juil - 16:05

Ce catalogue grandira en même temps que mes exercices. merci, pour ces derniers, de n'utiliser que les mots clés présents ici. C'est a bute pédagogoque.

Il est évident que lire cecei avant les tutoriels serai inutile

I- les mots clées.

IF
If est un mots clé qui permet une vérification. Si la valeur contennu apres lui est true, la condition s'executera.
S'il est accompagné d'un else, ce dernier donne les instruction a éxécuter en cas de non validation de la condition (en gros false)
les blocs if else
se ferme par un end, et s'implémente.

exemple:
if rand<0.5
$piece="pile"
else
$piece="face"
end

les outil de vérification sont >, <, ==(égal), !=(différent) >=, <=.



return

commande tres importante, définissant le retour d'une méthode ou d'une fonction, tout en arrettant son execution.

exemple:

def lancé_piece
if rand<0.5
return"pile"
end
return"face"
end
je n'ais pas besoin de else, puisque si le if est validé, la fonction s'arretera grace au return.



Methodes

Les aplication logiques, tel que l'adition, la multiplication, la division... fonctionne avec les signe mathématique +-*/. Si elles ne fonctionne pas pour certaines classes, ou se comporte bizarement, je l'indiquerais

les méthodes #to_s, #to_f, #to_i, permettent respectivement de transformer en chaine string, float(les nombres a virgule) ou integer nimporte que objets des classe string, integer ou float.
Revenir en haut Aller en bas
Skylight

Skylight


Nombre de messages : 34
Age : 36
Localisation : Lyon
Date d'inscription : 11/07/2007

tutos RGSS Empty
MessageSujet: premier cours   tutos RGSS Icon_minitimeDim 15 Juil - 16:06

I-Lignes de commandes

Nous allons commencer ici par une breve explication sur les lignes de commandes. Je pense que vous êtes tous des personnes intelligentes, et donc vous faire 4 pages là dessus ne serais qu'une perte de temps.

Une ligne de commande est une instruction donné au programe. par exemple
4+3 est une ligne de commande, qui renverra 7. mais vu que le programe est un petit peu plus interessant que la calculette windows, je vais vous éviter les 4 pages que l'on trouve ds tous les guide pour vous montrer comment faire des multiplication avec du ruby.

II-Valeurs

En ruby, toutes les lignes de commandes ont une valeur. elle peut être une valeur numérique, une chaine string, ou n'importe quel valeut "concrete"
Code:
4+3
=>7

Elle peut aussi être une valeur de vérification. Ce sont les valeure true(vrai) et false(faux). pour cela, il faut uttiliser un des outil de vérification < > <= >= != ==
Code:
4+3==7
=>true

elle peut aussi être "rien". C'est a dire nil. C'est la valeur des choses qui n'ont pas de valeur.

ces valeurs sont bien entendu stockable dans des variables. la valeur de la ligne est alor celle qui va etre stocké. de même pour une variable seul, la valeur sera celle de la variable
Code:
valeur = 5
=>5
valeur
=>5

pour les fonctions et méthodes, c'est plus compliqué. La valeur sera celle renvoyé par le mot clé return dans la fonction/méthode même. un exemple est ds le recueil au dessus. cherchez return.

III- les classes.

Enfin, un vrai truc interessant! Comme exemple et exercice, nous allons créer des cartes, puis un jeu de carte, et enfin, nous ferons de quoi jouer avec

pour cela, il est important de faire un bref topo sur les sauts de lignes et l'implémentation. Les sauts de lignes, c'est entre chaque méthode, ou pour séparer des choses qui n'ont pas trop de raport. l'implémentation, c'est: chaque fois qu'on ouvre un bloc ( class, def, if,...) on décale de deux espace ou d'une tabulation vers la droite. a chaque end, on décale de la même chose vers la gauche.

zutre chose importante: les arguments. quand on crée une méthode, on peut demmander des arguments. C'est a dire des informations suplémentaires rentré lors de la création d'un nouvel objet (alors
les arguments doivent êtres demmendé sur le initialize) ou lors de l'appel de la méthode.



une classe se crée toujour de la même manière


Code:
#le mot clé class permet d'anoncer la création d'une classe
class Carte

#le mot clé def annonce la création d'une méthode
#la méthode initialize est la méthode qui est appelé lors de la création #d'un nouvel objet, et a ce moment seulement.
  def initialize(couleur,valeur)
    #on range ce qu'on vien de récup ds une variable, car les arguments              #sont des variables locales
    @couleur=couleur
    @valeur=valeur


  #on ferme la methode
  end
#on ferme la classe.
end


et voila!! rien de compliqué ici!!mais que doivent @couleur et @valeur?? des String? c'est pas pratique.
Nous allons donc stocker dedant des integer. par exemple, 0=coeur, 1=carreau, 2=pique et 3=trefle.
pour les valeurs, c'est pareil. 1 a 10, et 11, 12 et 13 pour les habillés
Voila une classe vite faite, tres simple, mais tres fonctionnelle... mais bon... il est vrais qu'apres, afficher 0 8, c'est pas tres beau par rapport a 8 de coeur... donc, on va remédier a ça grace aux tableaux!!

IV- les tableau

Les tableaux sont des moyen de stocker des informations. en réalité, ce sont des tableau a une ligne... c**, vous dites? pas tant que ça

Par exemple, pour nous, il est tres pratique de pouvoir faire un tableau avec coeur, carreau, pique et treffle dedant.

Les choses importantes a savoire: la première case d'un tableau est la 0
la création d'un tableau se fait grace à []. exemple, pour nous
@couleurs_nom=["coeur","carreau","pique","treffle"]

ensuite, pour aller chercher une valeur dedant, on écris $couleurs_nom[2] par exemple, ce qui donnera la valeur de la case 2, et donc... la 3eme. en effet, la première valeur est dans la case 0.


Voila! maintenant, execrcie

1-facile: Faire un tableau pour les valeurs, ei intégrer les deux tableau( couleurs et valeurs) dans la classe, au bon endroit

2- moyen: trouver un moyen de ranger quelque part les noms nous interessant (par exemple, si on crée une carte avec comme argument (2,7) trouver un moyen de ranger quelque part pique et sept.
JE NE VEUT PAS UNE CLASSE QUI ME DONNE QUE DEUX DE PIQUE


3- Difficile: créer une méthode dont l'utilisation sur un objet Carte permettra un renvoi de ce qu'est la carte. (ex, sui notre objet de tt a l'heure rangé dans $carte)

$carte.laquelle
=>"sept de pique"

TTes les informations sont a glané quelque part entre les informations théorique du début, le recueil et ce message.


donc, renvoyer moi votre code avec autant d'étape d'exercice que vous avez réussi a faire par mp. dans environ 3-4 jours, je posterais les réponse que j'ais reçu les plus pertinente, avec correction et commentaires, ainsi que comment j'aurais fait moi.

Bon courrage!

edit: je pensais l'avoir dit, mais ce n'est pas le cas. Je ne doit recevoire qu'un seul code par mp, c'est le code de la classe Carte complet. Les différent exercices sont des étapes pour finir le code
Revenir en haut Aller en bas
Contenu sponsorisé





tutos RGSS Empty
MessageSujet: Re: tutos RGSS   tutos RGSS Icon_minitime

Revenir en haut Aller en bas
 
tutos RGSS
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Pokemon Puissance Stellaire :: ₪ Espace Créations ₪ :: Vos Tutos-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser