Page 1 of 1

Petite problème

PostPosted: Sun Sep 18, 2011 7:20 pm
by RAYON-GAMA
Bonjour je viens ici car j'ai pas vraiement un problème mais plutot un conseil à vous demander, en faite je code un petit qui marche par case, je m'explique quand l'utilisateur clique je regarde dans quelle case il à coder ma demander suis-je obligés de codes toutes les possibilités des cases avec des if, etc ou il y a une boucle que je n'arrive pas à imaginer dans ma tête de possible , voici le début de mon code.

[code:1:929cc2081f]if clic_x < 20 and clic_y < 20 : #Si l'utilisateur clic dans la première case
case_x = 0
case_y = 0
print "Case x:" + str(case_x) + "\nCase y:"+ str(case_y)+""
if clic_x < 20 and clic_y < 40 and clic_y > 20 :
case_x = 0
case_y = 1
print "Case x:" + str(case_x) + "\nCase y:"+ str(case_y)+""
if clic_x < 40 and clic_x > 20 and clic_y < 20 :
case_x = 1
case_y = 0
print "Case x:" + str(case_x) + "\nCase y:"+ str(case_y)+""[/code:1:929cc2081f]

La j'ai codé pour trois cases, et donc je suis obligés de faire ça pour toute les cases , ou pas ?

Merci d'avance de votre réponse ^^

Cordialement rayongama

PostPosted: Sun Sep 18, 2011 8:04 pm
by ARMEL
Salut,

Cherche du côté de l'utilisation de la division.

PostPosted: Sun Sep 18, 2011 8:21 pm
by RAYON-GAMA
Je vois pas très bien le rapport là c'est vague quand même ...

PostPosted: Mon Sep 19, 2011 6:08 am
by TorTukiTu
Voici un algorithme naif pour faire ce que tu demandes.

[code:1:f1d230721b]
tableau_de_cases = ARRAY[]
nombre_de_cases_en_x = 20
nombre_de_cases_en_y = 30
cote_d_un_carre = 10

FOR (int x =0; x<nombre_de_cases_en_x; x+=1)
FOR (int y=0; y<nombre_de_cases_en_y; y+=1)
tableau_de_cases[x][y] = action_generique()
ENDFOR
ENDFOR

tableau_de_cases[1][4] = action_speciale()

click_x = 30
click_y = 50

executer(tableau_de_cases[floor(click_x / cote_d_un_carre )][floor(click_y / cote_d_un_carre )])

[/code:1:f1d230721b]

C'est très simple et pas du tout optimum.

A toi de faire mieux.

Tortue 974.