Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Annonce Joyeux Noël 🎄🎁

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Joyeux Noêl à tous !


PowerQuery:
let
A = 6,
B = {"*","|","-","_", "\", "/", " "},
C = List.Transform,
D = C({1..A*2+3}, Text.From),
E = List.Repeat({B{0}}, A + 2),
F = let x = List.Generate(()=> 0,  each _ < A + 2 , each _ + 1, each List.Repeat({B{6}},_) & List.RemoveLastN(E,_+1) & {B{0}}) in List.Reverse(List.Skip(x)) & x,
G = {{B{1},B{6},B{6}}, {B{2},B{2},B{6}}, {B{3},B{3},B{4}}},
H = let x = C(G, each Text.Combine(_ & List.Repeat({B{6}}, A - 2))) in C(List.Zip({C(x, each Text.Reverse(Text.Replace(_,B{4},B{5}))), {B{6},B{2},B{3}}, x}), Text.Combine),
I = Table.FromColumns(C(List.Zip({F,F}), List.Combine),D) & Table.FromList(H, Splitter.SplitTextByRepeatedLengths(1),D)
in I
 
Dernière édition:
Bonjour,
Le serpent chasse un Père Noël 🎅. Ce jeu se déroule dans une grille Excel. Le Père Noël est représenté par un caractère Unicode.
Code:
Option Explicit

Dim Grille As Range
Dim Serpent As Collection
Dim Direction As String
Dim Nourriture As Range
Dim TimerInterval As Double
Dim Score As Integer

' Démarrer le jeu
Sub DemarrerJeu()
    Dim x As Integer, y As Integer
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    ' Définir la grille (20x20 par exemple)
    Set Grille = Range("B2:U21")
    Grille.Clear
    Grille.Interior.Color = RGB(255, 255, 255)
    Grille.Font.Size = 12
    Grille.HorizontalAlignment = xlCenter
    Grille.VerticalAlignment = xlCenter
    
    ' Initialiser le serpent
    Set Serpent = New Collection
    Serpent.Add Grille.Cells(10, 10)
    Serpent(1).Interior.Color = RGB(0, 255, 0) ' Tête du serpent
    Serpent(1).Value = "O"
    
    ' Placer le premier Père Noël
    Set Nourriture = PlacerPereNoel()
    
    ' Initialiser la direction (droite)
    Direction = "Droite"
    
    ' Initialiser le score
    Score = 0
    Range("A1").Value = "Score : " & Score
    Range("A1").Font.Bold = True
    
    ' Démarrer le timer
    TimerInterval = Now + TimeValue("00:00:01")
    Application.OnTime TimerInterval, "BougerSerpent"
    
    Application.ScreenUpdating = True
End Sub

' Déplacement du serpent
Sub BougerSerpent()
    Dim Tete As Range
    Dim NouvelleTete As Range
    Dim Dernier As Range
    
    Application.ScreenUpdating = False
    
    ' Déterminer la tête du serpent
    Set Tete = Serpent(1)
    
    ' Calculer la prochaine position en fonction de la direction
    Select Case Direction
        Case "Haut": Set NouvelleTete = Tete.Offset(-1, 0)
        Case "Bas": Set NouvelleTete = Tete.Offset(1, 0)
        Case "Gauche": Set NouvelleTete = Tete.Offset(0, -1)
        Case "Droite": Set NouvelleTete = Tete.Offset(0, 1)
    End Select
    
    ' Vérifier les collisions
    If NouvelleTete Is Nothing Or NouvelleTete.Interior.Color = RGB(0, 255, 0) Then
        MsgBox "Game Over! Score : " & Score, vbExclamation
        Exit Sub
    End If
    
    ' Vérifier si le serpent attrape le Père Noël
    If NouvelleTete.Value = "🎅" Then
        ' Incrémenter le score
        Score = Score + 1
        Range("A1").Value = "Score : " & Score
        ' Placer un nouveau Père Noël
        Set Nourriture = PlacerPereNoel()
    Else
        ' Supprimer la queue
        Set Dernier = Serpent(Serpent.Count)
        Dernier.Interior.Color = RGB(255, 255, 255)
        Dernier.Value = ""
        Serpent.Remove Serpent.Count
    End If
    
    ' Ajouter la nouvelle tête
    NouvelleTete.Interior.Color = RGB(0, 255, 0)
    NouvelleTete.Value = "O"
    Serpent.Add NouvelleTete, before:=1
    
    ' Relancer le timer
    TimerInterval = Now + TimeValue("00:00:01")
    Application.OnTime TimerInterval, "BougerSerpent"
    
    Application.ScreenUpdating = True
End Sub

' Changer la direction du serpent
Sub ChangerDirection(NouvelleDirection As String)
    ' Empêcher les demi-tours
    If (Direction = "Haut" And NouvelleDirection = "Bas") Or _
       (Direction = "Bas" And NouvelleDirection = "Haut") Or _
       (Direction = "Gauche" And NouvelleDirection = "Droite") Or _
       (Direction = "Droite" And NouvelleDirection = "Gauche") Then
        Exit Sub
    End If
    
    Direction = NouvelleDirection
End Sub

' Placer un Père Noël
Function PlacerPereNoel() As Range
    Dim x As Integer, y As Integer
    Do
        x = Int((Grille.Rows.Count) * Rnd + 1)
        y = Int((Grille.Columns.Count) * Rnd + 1)
        Set PlacerPereNoel = Grille.Cells(x, y)
    Loop While PlacerPereNoel.Interior.Color = RGB(0, 255, 0)
    
    ' Ajouter un caractère Père Noël
    PlacerPereNoel.Value = "🎅"
    PlacerPereNoel.Font.Size = 14
    PlacerPereNoel.HorizontalAlignment = xlCenter
    PlacerPereNoel.VerticalAlignment = xlCenter
End Function

' Déplacement avec les flèches
Sub FlecheHaut()
    ChangerDirection "Haut"
End Sub

Sub FlecheBas()
    ChangerDirection "Bas"
End Sub

Sub FlecheGauche()
    ChangerDirection "Gauche"
End Sub

Sub FlecheDroite()
    ChangerDirection "Droite"
End Sub

Étape 1 : Configuration de la feuille

1. Créez une nouvelle feuille Excel.


2. Définissez une plage carrée (par exemple, B2:U21) qui servira de grille.




---

Étape 2 : Lancer le jeu

1. Exécutez la macro DemarrerJeu pour commencer le jeu.


2. Assurez-vous que les raccourcis pour les flèches sont configurés :

FlecheHaut: Haut

FlecheBas: Bas

FlecheGauche: Gauche

FlecheDroite: Droite




Vous pouvez les associer à des touches de raccourci dans "Développeur > Macros".


---

Fonctionnalités

Grille visuelle dans Excel.

Le serpent grandit lorsqu'il mange un Père Noël (🎅).

Le score est affiché dans la cellule A1.

Collision avec le bord ou le serpent lui-même = Game Over.



---

Résultat

Le serpent chasse un Père Noël dans une ambiance festive. Bonne programmation et amusez-vous bien !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
1 K
Réponses
11
Affichages
442
Réponses
2
Affichages
956
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…