Tutoriel Ruby

Acte I

1. Introduction

Ruby est un langage de programmation dynamique, interprété et orienté objet. Voici quelques bases :
1. Syntaxe claire et expressive : Ruby est réputé pour sa syntaxe simple et lisible, qui favorise la productivité des développeurs.
2. Tout est un objet : En Ruby, tout est un objet, même les types de base comme les entiers et les chaînes de caractères.
3. Orienté objet : Ruby est un langage de programmation orienté objet pur, ce qui signifie que presque tout en Ruby est un objet avec des méthodes et des propriétés.
4. Variables : Les variables en Ruby commencent par un sigle (dollar) suivi d'un nom de variable. Elles peuvent contenir n'importe quel type de données.
5. Méthodes : Les méthodes sont des fonctions définies dans les classes. Elles peuvent être appelées sur des objets pour effectuer des actions spécifiques.
6. Collections : Ruby propose différentes collections de données telles que les tableaux (Array) et les hashages (Hash) pour stocker des éléments de manière organisée.
7. Contrôle de flux : Comme dans la plupart des langages de programmation, Ruby offre des structures de contrôle de flux telles que les conditions (if/else), les boucles (while, for) et les instructions de contrôle (break, next).
8. Modules et Mixins : Ruby prend en charge les modules, qui sont des ensembles de méthodes et de constantes pouvant être inclus dans les classes. Les mixins permettent de réutiliser du code à travers l'inclusion de modules dans d'autres modules ou classes.
9. Gestion des exceptions : Ruby fournit un mécanisme de gestion des exceptions pour gérer les erreurs et les situations exceptionnelles dans le code.
10. Itérations : Ruby offre plusieurs méthodes pour itérer sur des collections de données de manière efficace et élégante, comme each, map, et times.

2. Exemple 1

Voici un exemple simple d'un programme Ruby qui prend en entrée le nom de l'utilisateur et lui dit bonjour :
# Demander à l'utilisateur son nom
print "Quel est votre nom ? "
nom_utilisateur = gets.chomp

# Afficher un message de salutation
puts "Bonjour, #{nom_utilisateur} ! Bienvenue avec Ruby !"

Dans ce code :
- La méthode `gets.chomp` permet de récupérer une entrée de l'utilisateur depuis la console et de supprimer le saut de ligne à la fin.
- Le symbole `#{}` est utilisé pour insérer des variables dans une chaîne de caractères.
- La méthode `puts` affiche du texte suivi d'un saut de ligne.
Pour exécuter ce programme, placez ce code dans un fichier avec une extention `.rb`, et lancez le avec l'interpréteur `ruby`, il vous demandera alors votre nom, puis il vous accueillera avec un message de bienvenue :
$ ruby hello.rb
Quel est votre nom ? J
Bonjour, J ! Bienvenue avec Ruby !

3. Exemple 2

Voici un autre exemple, cette fois-ci d'une fonction qui calcule la somme des nombres d'une liste en Ruby :
def somme_liste(liste)
  somme = 0
  liste.each do |nombre|
    somme += nombre
  end
  return somme
end

# Exemple d'utilisation de la fonction
liste_nombres = [1, 2, 3, 4, 5]
resultat = somme_liste(liste_nombres)
puts "La somme des nombres dans la liste est : #{resultat}"

Dans ce code :
- La fonction `somme_liste` prend une liste de nombres en entrée et calcule leur somme en utilisant une boucle `each`.
- La variable `somme` est initialisée à zéro, puis chaque nombre de la liste est ajouté à cette variable.
- Finalement, la fonction retourne la somme.
- L'exemple d'utilisation montre comment utiliser la fonction avec une liste de nombres prédéfinie, puis affiche le résultat.

4. Classes et Objets

Pour instancier un objet de la classe `Dog` en Ruby, vous pouvez suivre l'exemple ci-dessous. Voici d'abord la classe `Dog` en Ruby, puis un exemple d'instanciation et d'appel de méthode.
class Dog
  def initialize(name, age)
    @name = name
    @age = age
  end

  def bark
    puts "#{@name} dit Woof!"
  end
end

# Instanciation d'un objet de la classe Dog
mon_chien = Dog.new("Rex", 3)

# Appel de la méthode bark sur l'objet
mon_chien.bark
Dans ce code :
- La méthode `initialize` est l'équivalent du constructeur en Ruby, elle est appelée lorsqu'un nouvel objet est instancié.
- Les variables d'instance `@name` et `@age` sont utilisées pour stocker les attributs de l'objet.
- La méthode `bark` affiche un message contenant le nom du chien.
- L'objet `mon_chien` est créé en appelant `Dog.new` avec les arguments "Rex" et 3.
- La méthode `bark` est appelée sur l'objet `mon_chien` pour afficher le message.
En exécutant ce code, vous verrez "Rex dit Woof!" s'afficher dans la console.
$ ruby dog.rb
Rex dit Woof!

5. Map sur une liste

En Ruby, la méthode `map` est utilisée pour transformer chaque élément d'une liste en appliquant un bloc de code et en retournant une nouvelle liste avec les résultats. Voici un exemple simple :
# Liste initiale de nombres
nombres = [1, 2, 3, 4, 5]

# Utilisation de la méthode map pour créer une nouvelle liste
# avec les nombres multipliés par 2
nombres_doubles = nombres.map do |nombre|
  nombre * 2
end

# Affichage de la nouvelle liste
puts "Nombres doubles : #{nombres_doubles}"
Dans ce code :
- La liste `nombres` contient les nombres de 1 à 5.
- La méthode `map` est appelée sur la liste `nombres`. Le bloc de code `do |nombre| nombre * 2 end` multiplie chaque nombre par 2.
- La nouvelle liste `nombres_doubles` contient les résultats de cette transformation.
- La méthode `puts` est utilisée pour afficher la nouvelle liste.
Quand ce code est exécuté, il affichera :
Nombres doubles : [2, 4, 6, 8, 10]
Ce qui montre que chaque élément de la liste originale a été multiplié par 2.

Acte II

6. Créer un mini-jeu

Pour créer des mini-jeux en Ruby, une des bibliothèques les plus populaires est Gosu. Gosu est une bibliothèque de développement de jeux 2D simple et puissante qui fonctionne sur plusieurs plateformes (Windows, MacOS, Linux). Voici comment vous pouvez commencer à utiliser Gosu pour créer des mini-jeux en Ruby :
1. Installer Gosu :
Vous pouvez installer Gosu via RubyGems. Ouvrez votre terminal et exécutez :
$ sudo apt-get install ruby
$ sudo apt-get install ruby-dev
$ sudo gem install gosu

Successfully installed gosu-1.4.6
2. Créer un mini-jeu simple :
Voici un exemple de code pour commencer un mini-jeu simple où un joueur peut déplacer un carré avec les touches du clavier :
require 'gosu'

class GameWindow < Gosu::Window
  def initialize
    super 640, 480
    self.caption = "Mini-Jeu avec Gosu"
    @x = @y = 320
    @image = Gosu::Image.new("media/square.png")
  end

  def update
    if Gosu.button_down? Gosu::KB_LEFT
      @x -= 5
    end
    if Gosu.button_down? Gosu::KB_RIGHT
      @x += 5
    end
    if Gosu.button_down? Gosu::KB_UP
      @y -= 5
    end
    if Gosu.button_down? Gosu::KB_DOWN
      @y += 5
    end
  end

  def draw
    @image.draw(@x, @y, 1)
  end
end

GameWindow.new.show
Dans ce code :
- La classe `GameWindow` hérite de `Gosu::Window`.
- La méthode `initialize` configure la fenêtre du jeu, définit la position initiale du carré et charge une image pour le carré.
- La méthode `update` est appelée en boucle et permet de mettre à jour la position du carré en fonction des touches du clavier pressées.
- La méthode `draw` dessine le carré à sa position actuelle.
3. Créer l'image du carré :
Vous devrez créer une image pour le carré que vous pouvez nommer `square.png` et placer dans un dossier `media`. La taille de l'image peut être, par exemple, 50x50 pixels.
4. Exécuter le jeu :
Sauvegardez le code ci-dessus dans un fichier, par exemple `mini_game.rb`, et exécutez-le avec Ruby :
 $ ruby mini_game.rb  
Gosu est bien documenté et offre de nombreuses fonctionnalités pour gérer les graphismes, le son et les entrées utilisateur, ce qui le rend idéal pour créer des mini-jeux en Ruby.

Ces éléments constituent les bases de Ruby, mais il y a bien plus à explorer dans ce langage riche et flexible !

Created with ChatGPT