Trouver et changer les coordonnée d'une matrice

Signaler
Messages postés
2
Date d'inscription
samedi 20 février 2021
Statut
Membre
Dernière intervention
20 février 2021
-
Messages postés
2
Date d'inscription
samedi 20 février 2021
Statut
Membre
Dernière intervention
20 février 2021
-
Bonjour,

j'ai un projet et cette étape consiste à repérer si une certaine coordonnée est dans le tableau de jeu ou non, pour sa je doit d'abord convertir les lettres en chiffres en ASCII (fait) ensuite mettre mes propre coordonnées (en colonnes de A à I et en lignes de 1 à 9) et après une petite fonction pour voir si les coordonnées son dans le tableau.
Mais j'ai plusieurs problèmes que vous verrais dans les screen en-dessous, premièrement la représentation de ma matrice m'oblige à ignorer les 2 premières lignes et colonnes (car ce n'est pas sur le plateau de jeu qui fais du 9*9) mais pour la représentation de celui-ci je suis obligé de faire un 20*11. Donc le première objectif serais de ne prendre en compte dans les fonction que la partie ou les pions ce déplacerons (9*9) mais que sa ne l'enlève pas de l'affichage graphique.

Petite précision je n'ai le droit à aucune librairie il faut que sa soit en pure code et je n'y arrive pas du tout je suis bloqué à cette étape du coup si vous pouvez m'aider sa serais génial :)

oh et aussi les print que je mets hors des fonctions sont soit des tests soit des appels de fonction.


#python

from math import *

lignes = [1,2,3,4,5,6,7,8,9]

clonnes = ['A','B','C','D','E','F','G','H','I']

grille_debut = [['','','|',1,'',2,'',3,'',4,'',5,'',6,'',7,'',8,'',9],

['','','|','-','','-','','-','','-','','-','','-','','-','','-','','-',],

['A','|','o','','o','','o','','o','','o','','o','','o','','o','','o'],

['B','|','o','','o','','o','','o','','o','','o','','o','','o','','o'],

['C','|','o','','o','','o','','o','','o','','o','','o','','o','','o'],

['D','|','','','','','','','','','','','','','','','','',''],

['E','|','','','','','','','','','','','','','','','','',''],

['F','|','','','','','','','','','','','','','','','','','',],

['G','|','x','','x','','x','','x','','x','','x','','x','','x','','x'],

['H','|','x','','x','','x','','x','','x','','x','','x','','x','','x',],

["I",'|','x','','x','','x','','x','','x','','x','','x','','x','','x',]]



def affichage_grille_debut(grille_debut):

for i in range(len(grille_debut)):

for j in range(len(grille_debut[i])):

print(grille_debut[i][j], end=' ')

print()

print(affichage_grille_debut(grille_debut))

print(ord('A'))
print(chr(65))
print([row[0] for row in grille_debut])

def convertir(grille_debut):

for i in [row[0] for row in grille_debut[2:]]:

print(ord(i))

print(convertir(grille_debut))

def saisir_cordonner(grille_debut, elem):



if elem in range(grille_debut):

print("cette coordonner est dans le tableau")

else:

print("cette coordonner n'est pas dans le tableau")

print(saisir_cordonner(grille_debut,(6,3)))





2 réponses

Messages postés
30993
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 février 2021
7 391
Bonjour,

Pour l'affichage du code, il faut choisir "python" dans la liste de valeur pour avoir une coloration syntaxique.

#python
from math import *

lignes = [1,2,3,4,5,6,7,8,9]
clonnes = ['A','B','C','D','E','F','G','H','I']
grille_debut = [['','','|',1,'',2,'',3,'',4,'',5,'',6,'',7,'',8,'',9], 


Après pour ton exercice, moi je ferais juste une grille 9X9 avec les cases du damier. Puis une fonction d'affichage qui rajoute les intitulés lignes/colonnes à l'écran.

Ainsi quand tu testes si la position en réponse est dans la grille, tu n'a qu'à tester <=9 pour chacune des 2 valeurs. Et après pour cibler une case ce sera
grille[l][c]


Car ton
 if elem in range(grille_debut):
n'a pas de sens, il faudrait regarder
elem[0] par rapport à len(grille_debut) et elem[1] par rapport à len(grille_debut[elem[0]]), mais cela s'il n'y avait que des cases du damier dans ton tableau, pas les blancs de séparation et les titres lignes colonnes

Enfin quand tu utilises un print exécutant une fonction, il faudrait que la fonction retourne une valeur (avec l'instruction return xxx) car sinon le print va donner
None


Pour seulement exécuter la fonction, ne pas faire
print(affichage_grille_debut(grille_debut))
mais juste
affichage_grille_debut(grille_debut)



Messages postés
930
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
22 février 2021
100
Bonjour,

je n'ai le droit à aucune librairie

D'abord, c'est bibliothèque, pas librairie (library en anglais = bibliothèque)

Tu n'y a pas droit mais tu importes quand même la bibliothèque math ?
Messages postés
2
Date d'inscription
samedi 20 février 2021
Statut
Membre
Dernière intervention
20 février 2021

oui juste cettebibliothèque la