minecratf.py

Created by alban-scientifique

Created on June 19, 2023

4.03 KB


from kandinsky import *
from ion import *
from random import randint

# Dimensions de l'écran
largeur = 320
hauteur = 222

# Dimensions des blocs
bloc_taille = 20

# Nombre de blocs sur l'écran
nombre_blocs_x = largeur // bloc_taille
nombre_blocs_y = hauteur // bloc_taille

# Génération aléatoire de la carte
carte = [[randint(0, 1) for _ in range(nombre_blocs_x)] for _ in range(nombre_blocs_y)]

# Position du joueur
joueur_x = nombre_blocs_x // 2
joueur_y = nombre_blocs_y // 2

# Inventaire de blocs
inventaire = list(range(15))  # Exemple avec 15 types de blocs (de 0 à 14)
bloc_selectionne = 0  # Indice du bloc sélectionné dans l'inventaire

# Fonction pour effacer l'écran
def effacer_ecran():
    fill_rect(0, 0, largeur, hauteur, color(255, 255, 255))

# Fonction pour afficher la carte
def afficher_carte():
    for y in range(nombre_blocs_y):
        for x in range(nombre_blocs_x):
            bloc = carte[y][x]
            if bloc != 0:
                fill_rect(x * bloc_taille, y * bloc_taille, bloc_taille, bloc_taille)
                draw_string(str(bloc), x * bloc_taille + 6, y * bloc_taille + 6)

# Fonction pour afficher la barre de blocs
def afficher_barre_blocs():
    for i, bloc in enumerate(inventaire):
        if i == bloc_selectionne:
            draw_rect(i * bloc_taille, hauteur - bloc_taille, bloc_taille, bloc_taille)
        else:
            fill_rect(i * bloc_taille, hauteur - bloc_taille, bloc_taille, bloc_taille)
        draw_string(str(bloc), i * bloc_taille + 6, hauteur - bloc_taille + 6)

# Fonction pour lancer le jeu
def lancer_jeu():
    while True:
        effacer_ecran()
        draw_string("Règles du jeu :", 10, 10)
        draw_string("- Utilise les touches fléchées pour te déplacer.", 10, 30)
        draw_string("- Utilise les touches de 0 à 9, ., ,, +, -, = pour sélectionner les blocs.", 10, 50)
        draw_string("- Appuie sur EXE pour commencer le jeu.", 10, 70)
        draw_string("Appuie sur EXE pour lancer le jeu", 80, 150)

        if keydown(KEY_EXE):
            jouer_jeu_minecraft()
            break

        sleep(0.02)

# Fonction principale du jeu
def jouer_jeu_minecraft():
    while True:
        effacer_ecran()
        afficher_carte()
        afficher_barre_blocs()

        # Déplacement du joueur
        if keydown(KEY_LEFT) and joueur_x > 0:
            joueur_x -= 1
        if keydown(KEY_RIGHT) and joueur_x < nombre_blocs_x - 1:
            joueur_x += 1
        if keydown(KEY_UP) and joueur_y > 0:
            joueur_y -= 1
        if keydown(KEY_DOWN) and joueur_y < nombre_blocs_y - 1:
            joueur_y += 1

        # Changer le bloc sélectionné
        if keydown(KEY_0):
            bloc_selectionne = 0
        elif keydown(KEY_1):
            bloc_selectionne = 1
        elif keydown(KEY_2):
            bloc_selectionne = 2
        elif keydown(KEY_3):
            bloc_selectionne = 3
        elif keydown(KEY_4):
            bloc_selectionne = 4
        elif keydown(KEY_5):
            bloc_selectionne = 5
        elif keydown(KEY_6):
            bloc_selectionne = 6
        elif keydown(KEY_7):
            bloc_selectionne = 7
        elif keydown(KEY_8):
            bloc_selectionne = 8
        elif keydown(KEY_9):
            bloc_selectionne = 9
        elif keydown(KEY_DOT):
            bloc_selectionne = 10
        elif keydown(KEY_COMMA):
            bloc_selectionne = 11
        elif keydown(KEY_ADD):
            bloc_selectionne = 12
        elif keydown(KEY_MINUS):
            bloc_selectionne = 13
        elif keydown(KEY_EQUAL):
            bloc_selectionne = 14

        # Action du joueur
        if keydown(KEY_OK):
            # Récupérer la position du joueur dans la carte
            pos_x = joueur_x
            pos_y = joueur_y

            # Casser ou poser un bloc
            bloc_selectionne = inventaire[bloc_selectionne]
            if carte[pos_y][pos_x] == bloc_selectionne:
                carte[pos_y][pos_x] = 0
            else:
                carte[pos_y][pos_x] = bloc_selectionne

        sleep(0.02)

# Lancement du jeu
lancer_jeu()

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.