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 !

Un joyeux Noël à notre Administrateur préféré et à tous ses lutins qui nous concoctent un XLD aux petits oignons. Et j'en profite aussi pour souhaiter un joli Noël à tous les membres de XLD qui en cadeau ont tous reçu un super site relevé au jus de truffe et ce tout au long de l'année !
1735115739042.png
.
 
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 !
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier Ă  acheter, rien Ă  vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer Ă  vous accompagner.
Soutenez-nous en souscrivant Ă  un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est jouĂ©.

Je soutiens la communautĂ© et j’accĂšde Ă  mon compte membre

Discussions similaires

RĂ©ponses
20
Affichages
1 K
RĂ©ponses
34
Affichages
3 K
RĂ©ponses
6
Affichages
644
RĂ©ponses
18
Affichages
2 K
Retour