Bonjour à tous, voilà j'essaye de faire un programme, mais plusieurs difficultés me font face :D, je voudrais donc un peu d'aide :).
Je dois créer une fonction qui prend deux paramètres n et m et qui crée et renvoi un plateau(qui est une matrice) de dimensions n x m. Ce plateau doit contenir un lapin(qu'on peut représenter par R dans le plateau) et des "statues". le paramètre n représente en fait le nombre de statues. Ainsi, si on rentre la valeur 5 pour n, il y aura 5 statues dans le plateau qui seront numéroté de 1 à 5 et placé bien évidemment aléatoirement. Le lapin aussi doit être placé aléatoirement dans le plateau.
Un exemple pour illustrer le jeu:
La fonction prend 5 comme valeur pour n et 5 pour m, nous donne ceci:
Donc voilà ce que j'ai réussi à faire:
Donc voilà mon problème. Comme vous le voyez, je n'arrive pas à mettre les statues ni le lapin.
Est ce que quelqu'un pourrait me venir en aide ?
Merci d'avance.
Bonjour Realmagma.
Merci de ta réponse
Ce que tu m'as donné est un moyen d'ajouter le lapin dans le plateau, mais moi j'ai besoin d'un code qui place le lapin aléatoirement dans le plateau
Josmiley, je ne peux pas utiliser random.sample, juste random.randint
merci de ta réponse realmagma, j'ai refait tout mon code pour un peu le rendre plus clair, voilà ce que j'ai:
>>> def creer_plateau(n, m):
import random
jardin = []
for i in range(n+2):
jardin.append([0 for j in range(m+2)])
for i in range(n+2):
jardin[i][0] = 'x'
jardin[i][m+1] = 'x'
for i in range(m+2):
jardin[0][i] = 'x'
jardin[n+1][i] = 'x'
r=random.randint(1,n)
g=random.randint(1,m)
jardin[r][g]='r'
return jardin
>>> def print_plateau(jardin):
for i in range(len(jardin)):
for j in range(len(jardin[i])):
if jardin[i][j]==0:
print " ",
else:
print jardin[i][j],
print
>>> print_plateau(creer_plateau(5,5))
x x x x x x x
x x
x x
x x
x r x
x x
x x x x x x x
Voilà, donc j'ai réussi à placer aléatoirement le lapin mais les statues est une chose plus difficile.
Donc j'aurais besoin d'aide pour placer aléatoirement les statues qui seront au nombre de 1 à n.
Il faut aussi prendre en compte le fait que les statues et le lapin ne peuvent pas être placer au même endroit et aussi que deux statues ne peuvent pas avoir même emplacement.
Il y a plusieurs façons de procéder. J'en propose une:
import itertools as it
import random as rd
# on commence par créer une liste du type [(1,1), (1,2), .., (2,1), (2,2), .., (n,1), (n,2), .., (n,n)]
statue_possible_coord = list(it.product(range(n), repeat=2))
# ensuite, on mélange la liste
rd.shuffle(statue_possible_coord)
# on elimine de la liste les coordonnées du lapin
statue_possible_coord.remove(lapin_coord)
# on prend n éléments dans la liste (à ce stade, étant donné que la liste a été mélangée, on peut prendre les n premiers)
statue_coord_list = statue_possible_coord[:n]
Il y a d'autres moyens bien sur, mais cette methode est assez concise.
Help pour programmer un jeu !
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.