Как я могу заставить программу сбросить позицию функции, если она не «fonction_alcool» и «fonction_cetone»Python

Программы на Python
Anonymous
Как я могу заставить программу сбросить позицию функции, если она не «fonction_alcool» и «fonction_cetone»

Сообщение Anonymous »

У меня есть программа, которая позволяет вам вводить имя молекулы, и программа рисует молекулу с правильным количеством атомов углерода и правильным положением разветвлений и функций. Я создал эту программу без искусственного интеллекта, поэтому в определенной части это может быть странно, потому что я нахожусь на полусреднем уровне в Python и 6 часов ищу способ, когда это функция, которую нельзя вращать, поместите ее в конец или вперед, но не в середину или другое, но программа занимает позицию прямо перед назначением функции: 3-éthyl-heptan-6-oïque, и я не нашел способа сделать это, могу ли я получить некоторую помощь, пожалуйста?

Код: Выделить всё

from turtle import*
from random import*
def analyse_struct(phrase):
#phrase = input("Quelle est la formule ? (dis la avec des tiret entre les chiffres et les fonction (ex : 3-methyl-propan-2-ol)) : ")
setup(width=1200, height=600)
speed(0)
width(3)
colormode(255)
bgcolor(0,0,0)
color(255,255,255)
ht()
nombre_carbone = [
{"non" : 9},
{"oct" : 8},
{"hept" : 7},
{"hex" : 6},
{"pent" : 5},
{"but" : 4},
{"prop" : 3},
{"eth" : 2},
{"meth" : 1},
]
type_liaison = [
{"ane": 1},
{"an": 1},
{"ène": 2},
{"ene": 2},
{"en": 2},
{"yne": 3}
]
fonction_all = [
{"ol": 0},    #  | rotation_enable = True
{"one": 1},   #  |
{"on": 1},    #  |

{"al": 2},      #  | rotation_enable = False that mean it cannot be rotate to place it in middle of molecule it forced to place at front or at end only
{"anal" : 2},   #  |
{"oïque": 3},   #  |
{"acide": 3},   #  |
{"oate": 4},    #  |
{"aete": 4},    #  |
]
ramification = [
{"méthyl" : 0},
{"éthyl" : 1},
{"qropyl" : 2}, # it's like propyl but the analyse of that ramififcation enter in conflict with "prop"  i n   n o m b r e _ c a r b o n e < b r   / >         ] < b r   / >         d e f   l i a i s o n ( x , y , r o t a t i o n = 0 , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( r o t a t i o n ) < b r   / >                 f d ( 5 0 ) < b r   / >         d e f   d o u b l e _ l i a i s o n ( x , y , r o t a t i o n = 0 , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y + 5 . 5 ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( r o t a t i o n ) < b r   / >                 f d ( 5 0 ) < b r   / >                 r t ( 9 0 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 1 0 ) < b r   / >                 d o w n ( ) < b r   / >                 r t ( 9 0 ) < b r   / >                 f d ( 5 0 ) < b r   / >         d e f   t r i p l e _ l i a i s o n ( x , y , r o t a t i o n = 0 , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y + 1 0 . 5 ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( r o t a t i o n ) < b r   / >                 f d ( 5 0 ) < b r   / >                 r t ( 9 0 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 1 0 ) < b r   / >                 d o w n ( ) < b r   / >                 r t ( 9 0 ) < b r   / >                 f d ( 5 0 ) < b r   / >                 l t ( 9 0 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 1 0 ) < b r   / >                 d o w n ( ) < b r   / >                 l t ( 9 0 ) < b r   / >                 f d ( 5 0 ) < b r   / >         d e f   C H 2 ( x , y , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( 0 ) < b r   / >                 l t ( 1 8 0 ) < b r   / >                 c i r c l e ( 1 2 , 1 8 0 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 1 0 ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( 9 0 ) < b r   / >                 f d ( 2 5 ) < b r   / >                 b k ( 1 2 . 5 ) < b r   / >                 r t ( 9 0 ) < b r   / >                 f d ( 1 0 ) < b r   / >                 l t ( 9 0 ) < b r   / >                 f d ( 1 2 . 5 ) < b r   / >                 b k ( 2 5 ) < b r   / >                 s e t h ( 0 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 1 0 ) < b r   / >                 d o w n ( ) < b r   / >                 f d ( 2 0 ) < b r   / >                 b k ( 2 0 ) < b r   / >                 l t ( 4 0 ) < b r   / >                 f d ( 1 5 ) < b r   / >                 c i r c l e ( 9 , 2 4 0 ) < b r   / >         d e f   C H 3 ( x , y , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( 0 ) < b r   / >                 l t ( 1 8 0 ) < b r   / >                 c i r c l e ( 1 2 , 1 8 0 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 1 0 ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( 9 0 ) < b r   / >                 f d ( 2 5 ) < b r   / >                 b k ( 1 2 . 5 ) < b r   / >                 r t ( 9 0 ) < b r   / >                 f d ( 1 0 ) < b r   / >                 l t ( 9 0 ) < b r   / >                 f d ( 1 2 . 5 ) < b r   / >                 b k ( 2 5 ) < b r   / >                 s e t h ( 0 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 1 0 ) < b r   / >                 d o w n ( ) < b r   / >                 c i r c l e ( 6 , 1 8 0 ) < b r   / >                 l t ( 1 8 0 ) < b r   / >                 c i r c l e ( 6 , 1 8 0 ) < b r   / >         d e f   O H ( x , y , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 c i r c l e ( 1 1 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 2 0 ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( 9 0 ) < b r   / >                 f d ( 2 5 ) < b r   / >                 b k ( 1 2 . 5 ) < b r   / >                 r t ( 9 0 ) < b r   / >                 f d ( 1 0 ) < b r   / >                 l t ( 9 0 ) < b r   / >                 f d ( 1 2 . 5 ) < b r   / >                 b k ( 2 5 ) < b r   / >                 s e t h ( 0 ) < b r   / >         d e f   O ( x , y , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 c i r c l e ( 1 1 ) < b r   / >         d e f   C ( x , y , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( 0 ) < b r   / >                 l t ( 1 8 0 ) < b r   / >                 c i r c l e ( 1 2 , 1 8 0 ) < b r   / >                 u p ( ) < b r   / >                 f d ( 1 0 ) < b r   / >                 d o w n ( ) < b r   / >         d e f   H ( x , y , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 s e t h ( 9 0 ) < b r   / >                 f d ( 2 5 ) < b r   / >                 b k ( 1 2 . 5 ) < b r   / >                 r t ( 9 0 ) < b r   / >                 f d ( 1 0 ) < b r   / >                 l t ( 9 0 ) < b r   / >                 f d ( 1 2 . 5 ) < b r   / >                 b k ( 2 5 ) < b r   / >                 s e t h ( 0 ) < b r   / >         d e f   C H 3 _ d e v ( x , y , a = 0 , C O L O R = ( 2 5 5 , 0 , 0 ) ) : < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 i f   a   = =   0 : < b r   / >                         c o l o r ( C O L O R ) < b r   / >                         H ( x , y , C O L O R ) < b r   / >                         l i a i s o n ( x + 1 5 , y + 1 0 , 0 , C O L O R ) < b r   / >                         C ( x + 8 5 , y + 2 0 , C O L O R ) < b r   / >                         l i a i s o n ( x + 8 0 , y + 3 0 , 9 0 , C O L O R ) < b r   / >                         H ( x + 7 5 , y + 8 5 , C O L O R ) < b r   / >                         l i a i s o n ( x + 8 0 , y - 1 5 , 2 7 0 , C O L O R ) < b r   / >                         H ( x + 7 5 , y - 9 5 , C O L O R ) < b r   / >                 i f   a   = =   1 : < b r   / >                         c o l o r ( C O L O R ) < b r   / >                         C ( x , y + 2 0 , C O L O R ) < b r   / >                         l i a i s o n ( x - 5 , y + 3 0 , 9 0 , C O L O R ) < b r   / >                         H ( x - 1 0 , y + 8 5 , C O L O R ) < b r   / >                         l i a i s o n ( x - 5 , y - 1 5 , 2 7 0 , C O L O R ) < b r   / >                         H ( x - 1 0 , y - 9 5 , C O L O R ) < b r   / >                         l i a i s o n ( x + 1 0 , y + 7 . 5 , 0 , C O L O R ) < b r   / >                         H ( x + 7 0 , y - 5 , C O L O R ) < b r   / >         d e f   C H 2 _ d e v ( x , y , C O L O R = ( 2 5 5 , 0 , 0 ) ) : < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 C ( x , y + 2 0 , C O L O R ) < b r   / >                 l i a i s o n ( x - 5 , y + 3 0 , 9 0 , C O L O R ) < b r   / >                 H ( x - 1 0 , y + 8 5 , C O L O R ) < b r   / >                 l i a i s o n ( x - 5 , y - 1 5 , 2 7 0 , C O L O R ) < b r   / >                 H ( x - 1 0 , y - 9 5 , C O L O R ) < b r   / >                 < b r   / >         d e f   f o n c t i o n _ a c i d e ( x , y , r , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 r   =   r < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 l i a i s o n ( x - 1 0 , y + ( - 1 0 ) , 0 , C O L O R ) < b r   / >                 C ( x + 6 0 , y + 0 , C O L O R ) < b r   / >                 d o u b l e _ l i a i s o n ( x + 7 0 , y + 1 0 , 4 5 , C O L O R ) < b r   / >                 O ( x + 1 1 5 , y + 6 5 , C O L O R ) < b r   / >                 l i a i s o n ( x + 7 0 , y + ( - 3 0 ) , - 4 5 , C O L O R ) < b r   / >                 O ( x + 1 1 5 , y + ( - 7 5 ) , C O L O R ) < b r   / >                 H ( x + 1 4 0 , y + ( - 8 0 ) , C O L O R ) < b r   / >         d e f   f o n c t i o n _ a l d e h y d e ( x , y , r , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 r   =   r < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 l i a i s o n ( x - 1 0 , y + ( - 1 0 ) , 0 , C O L O R ) < b r   / >                 C ( x + 6 0 , y + 0 , C O L O R ) < b r   / >                 d o u b l e _ l i a i s o n ( x + 7 0 , y + 1 0 , 4 5 , C O L O R ) < b r   / >                 O ( x + 1 1 5 , y + 6 5 , C O L O R ) < b r   / >                 l i a i s o n ( x + 7 0 , y + ( - 3 0 ) , - 4 5 , C O L O R ) < b r   / >                 H ( x + 1 1 5 , y + ( - 7 5 ) , C O L O R ) < b r   / >         d e f   f o n c t i o n _ e s t h e r ( x , y , r , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 r   =   r < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 l i a i s o n ( x - 1 0 , y + ( - 1 0 ) , 0 , C O L O R ) < b r   / >                 C ( x + 6 0 , y + 0 , C O L O R ) < b r   / >                 d o u b l e _ l i a i s o n ( x + 7 0 , y + 1 0 , 4 5 , C O L O R ) < b r   / >                 O ( x + 1 1 5 , y + 6 5 , C O L O R ) < b r   / >                 l i a i s o n ( x + 7 0 , y + ( - 3 0 ) , - 4 5 , C O L O R ) < b r   / >                 O ( x + 1 1 5 , y + ( - 7 5 ) , C O L O R ) < b r   / >                 < b r   / >         d e f   f o n c t i o n _ a l c o o l ( x , y , r o t a t i o n = 0 , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   0 : < b r   / >                         l i a i s o n ( x + 1 7 , y - 3 1 , 0 , C O L O R ) < b r   / >                         O H ( x + 8 7 , y - 4 0 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   9 0 : < b r   / >                         l i a i s o n ( x , y , 9 0 , C O L O R ) < b r   / >                         O ( x , y + 7 0 , C O L O R ) < b r   / >                         H ( x + 1 0 , y + 5 8 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   1 8 0 : < b r   / >                         l i a i s o n ( x - 7 0 , y - 3 2 , 0 , C O L O R ) < b r   / >                         O H ( x - 1 1 0 , y - 4 5 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   2 7 0 : < b r   / >                         l i a i s o n ( x , y , 9 0 , C O L O R ) < b r   / >                         O ( x , y - 2 0 , C O L O R ) < b r   / >                         H ( x + 1 0 , y - 3 0 , C O L O R ) < b r   / >         d e f   f o n c t i o n _ c e t o n e ( x , y , r o t a t i o n = 0 , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 u p ( ) < b r   / >                 g o t o ( x , y ) < b r   / >                 d o w n ( ) < b r   / >                 c o l o r ( C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   0 : < b r   / >                         d o u b l e _ l i a i s o n ( x + 1 5 , y - 3 2 , 0 , C O L O R ) < b r   / >                         O ( x + 8 5 , y - 2 0 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   9 0 : < b r   / >                         d o u b l e _ l i a i s o n ( x - 5 , y - 1 0 , 9 0 , C O L O R ) < b r   / >                         O ( x - 1 1 , y + 7 0 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   1 8 0 : < b r   / >                         d o u b l e _ l i a i s o n ( x - 7 0 , y - 3 2 . 5 , 0 , C O L O R ) < b r   / >                         O ( x - 9 4 , y - 2 0 . 5 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   2 7 0 : < b r   / >                         d o u b l e _ l i a i s o n ( x - 5 , y , 9 0 , C O L O R ) < b r   / >                         O ( x - 1 0 , y - 2 0 , C O L O R ) < b r   / >         < b r   / >         d e f   m é t h y l ( x , y , r o t a t i o n = 0 , d i r e c t i o n = & q u o t ; M I D D L E & q u o t ; , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 d i r e c t i o n   =   d i r e c t i o n < b r   / >                 i f   r o t a t i o n   = =   0 : < b r   / >                         l i a i s o n ( x + 1 5 , y - 3 2 , 0 , C O L O R ) < b r   / >                         C H 3 ( x + 9 0 , y - 2 0 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   9 0 : < b r   / >                         l i a i s o n ( x - 5 , y - 1 0 , 9 0 , C O L O R ) < b r   / >                         C H 3 ( x - 2 0 , y + 7 5 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   1 8 0 : < b r   / >                         l i a i s o n ( x - 7 0 , y - 3 2 . 5 , 0 , C O L O R ) < b r   / >                         C H 3 ( x - 1 2 0 , y - 2 0 . 5 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   2 7 0 : < b r   / >                         l i a i s o n ( x - 5 , y , 9 0 , C O L O R ) < b r   / >                         C H 3 ( x - 2 0 , y - 2 0 , C O L O R ) < b r   / > < b r   / >         d e f   é t h y l ( x , y , r o t a t i o n = 0 , d i r e c t i o n = & q u o t ; M I D D L E & q u o t ; , C O L O R = ( 2 5 5 , 2 5 5 , 2 5 5 ) ) : < b r   / >                 i f   r o t a t i o n   = =   0   a n d   d i r e c t i o n = = & q u o t ; L E F T & q u o t ; : < b r   / >                         l i a i s o n ( x + 1 5 , y - 3 2 , 0 , C O L O R ) < b r   / >                         C H 2 ( x + 9 0 , y - 2 0 , C O L O R ) < b r   / >                         l i a i s o n ( x + 1 0 5 , y - 1 0 , 9 0 , C O L O R ) < b r   / >                         C H 3 ( x + 9 0 , y + 7 5 , C O L O R ) < b r   / >                 e l i f   r o t a t i o n   = =   0   a n d   d i r e c t i o n = = & q u o t ; R I G H T & q u o t ; : < b r   / >                         l i a i s o n ( x + 1 5 , y - 3 2 , 0 , C O L O R ) < b r   / >                         C H 2 ( x + 9 0 , y - 2 0 , C O L O R ) < b r   / >                         l i a i s o n ( x + 1 0 5 , y - 1 0 5 , 9 0 , C O L O R ) < b r   / >                         C H 3 ( x + 9 0 , y - 1 2 0 , C O L O R ) < b r   / >                 e l i f   r o t a t i o n   = =   0   a n d   d i r e c t i o n   = =   & q u o t ; M I D D L E & q u o t ; : < b r   / >                         l i a i s o n ( x + 1 5 , y - 3 2 , 0 , C O L O R ) < b r   / >                         C H 2 ( x + 9 0 , y - 2 0 , C O L O R ) < b r   / >                         l i a i s o n ( x + 1 4 5 , y - 3 2 , 0 , C O L O R ) < b r   / >                         C H 3 ( x + 2 2 0 , y - 2 0 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   9 0   a n d   d i r e c t i o n   = =   & q u o t ; L E F T & q u o t ; : < b r   / >                         l i a i s o n ( x - 5 , y - 1 0 , 9 0 , C O L O R ) < b r   / >                         C H 2 ( x - 2 0 , y + 7 5 , C O L O R ) < b r   / >                         l i a i s o n ( x - 9 5 , y + 6 5 , 0 , C O L O R ) < b r   / >                         C H 3 ( x - 1 4 0 , y + 7 5 , C O L O R ) < b r   / >                 e l i f   r o t a t i o n   = =   9 0   a n d   d i r e c t i o n   = =   & q u o t ; R I G H T & q u o t ; : < b r   / >                         l i a i s o n ( x - 5 , y - 1 0 , 9 0 , C O L O R ) < b r   / >                         C H 2 ( x - 2 0 , y + 7 5 , C O L O R ) < b r   / >                         l i a i s o n ( x + 4 0 , y + 6 5 , 0 , C O L O R ) < b r   / >                         C H 3 ( x + 1 1 5 , y + 7 5 , C O L O R ) < b r   / >                 e l i f   r o t a t i o n   = =   9 0   a n d   d i r e c t i o n   = =   & q u o t ; M I D D L E & q u o t ; : < b r   / >                         l i a i s o n ( x - 5 , y - 1 0 , 9 0 , C O L O R ) < b r   / >                         C H 2 ( x - 2 0 , y + 7 5 , C O L O R ) < b r   / >                         l i a i s o n ( x - 5 , y + 9 0 , 9 0 , C O L O R ) < b r   / >                         C H 3 ( x - 2 0 , y + 1 8 0 , C O L O R ) < b r   / >                 i f   r o t a t i o n   = =   1 8 0   a n d   d i r e c t i o n   = =   & q u o t ; L E F T & q u o t ; : < b r   / >                         l i a i s o n ( x - 7 0 , y - 3 2 . 5 , 0 , C O L O R ) < b r   / >                         C H 2 ( x - 1 3 0 , y - 2 0 . 5 , C O L O R ) < b r   / >                         l i a i s o n ( x - 1 1 5 , y - 1 0 , 9 0 , C O L O R ) < b r   / >                         C H 3 ( x - 1 3 0 , y + 7 5 , C O L O R ) < b r   / >                 e l i f   r o t a t i o n   = =   1 8 0   a n d   d i r e c t i o n   = =   & q u o t ; R I G H T & q u o t ; : < b r   / >                         l i a i s o n ( x - 7 0 , y - 3 2 . 5 , 0 , C O L O R ) < b r   / >                         C H 2 ( x - 1 3 0 , y - 2 0 . 5 , C O L O R ) < b r   / >                         l i a i s o n ( x - 1 1 5 , y - 1 0 5 , 9 0 , C O L O R ) < b r   / >            CH3(x-130,y-120,COLOR)
elif rotation == 180 and direction == "MIDDLE":
liaison(x-70,y-32.5,0,COLOR)
CH2(x-130,y-20.5,COLOR)
liaison(x-210,y-32.5,0,COLOR)
CH3(x-260,y-20.5,COLOR)
if rotation == 270 and direction == "LEFT":
liaison(x-5,y,90,COLOR)
CH2(x-20,y-20,COLOR)
liaison(x-100,y-30,0,COLOR)
CH3(x-150,y-20,COLOR)
elif rotation == 270 and direction == "RIGHT":
liaison(x-5,y,90,COLOR)
CH2(x-20,y-20,COLOR)
liaison(x+40,y-30,0,COLOR)
CH3(x+120,y-20,COLOR)
elif rotation == 270 and direction == "MIDDLE":
liaison(x-5,y,90,COLOR)
CH2(x-20,y-20,COLOR)
liaison(x-5,y-105,90,COLOR)
CH3(x-20,y-120,COLOR)

def propyl(x,y,rotation=0,direction="MIDDLE",COLOR=(255,255,255)):
if rotation == 0 and direction == "LEFT":
liaison(x+15,y-32,0,COLOR)
CH2(x+90,y-20,COLOR)
liaison(x+105,y-10,90,COLOR)
CH2(x+90,y+75,COLOR)
liaison(x+105,y+90,90,COLOR)
CH3(x+90,y+170,COLOR)
elif rotation == 0 and direction == "RIGHT":
liaison(x+15,y-32,0,COLOR)
CH2(x+90,y-20,COLOR)
liaison(x+105,y-105,90,COLOR)
CH2(x+90,y-120,COLOR)
liaison(x+105,y-205,90,COLOR)
CH3(x+90,y-220,COLOR)
elif rotation == 0 and direction == "MIDDLE":
liaison(x+15,y-32,0,COLOR)
CH2(x+90,y-20,COLOR)
liaison(x+145,y-32,0,COLOR)
CH2(x+220,y-20,COLOR)
liaison(x+280,y-32,0,COLOR)
CH3(x+360,y-20,COLOR)
if rotation == 90 and direction == "LEFT":
liaison(x-5,y-10,90,COLOR)
CH2(x-20,y+75,COLOR)
liaison(x-100,y+65,0,COLOR)
CH2(x-160,y+75,COLOR)
liaison(x-235,y+65,0,COLOR)
CH3(x-280,y+75,COLOR)
elif rotation == 90 and direction == "RIGHT":
liaison(x-5,y-10,90,COLOR)
CH2(x-20,y+75,COLOR)
liaison(x+40,y+65,0,COLOR)
CH2(x+115,y+75,COLOR)
liaison(x+175,y+65,0,COLOR)
CH3(x+250,y+75,COLOR)
elif rotation == 90 and direction == "MIDDLE":
liaison(x-5,y-10,90,COLOR)
CH2(x-20,y+75,COLOR)
liaison(x-5,y+90,90,COLOR)
CH2(x-20,y+180,COLOR)
liaison(x-5,y+190,90,COLOR)
CH3(x-20,y+280,COLOR)
if rotation == 180 and direction == "LEFT":
liaison(x-70,y-32.5,0,COLOR)
CH2(x-130,y-20.5,COLOR)
liaison(x-115,y-5,90,COLOR)
CH2(x-130,y+80,COLOR)
liaison(x-115,y+90,90,COLOR)
CH3(x-130,y+180,COLOR)
elif rotation == 180 and direction == "RIGHT":
liaison(x-70,y-32.5,0,COLOR)
CH2(x-130,y-20.5,COLOR)
liaison(x-115,y-105,90,COLOR)
CH2(x-130,y-120,COLOR)
liaison(x-115,y-205,90,COLOR)
CH3(x-130,y-220,COLOR)
elif rotation == 180 and direction == "MIDDLE":
liaison(x-70,y-32.5,0,COLOR)
CH2(x-130,y-20.5,COLOR)
liaison(x-205,y-32.5,0,COLOR)
CH2(x-260,y-20.5,COLOR)
liaison(x-335,y-32.5,0,COLOR)
CH3(x-385,y-20.5,COLOR)
if rotation == 270 and direction == "LEFT":
liaison(x-5,y,90,COLOR)
CH2(x-20,y-20,COLOR)
liaison(x-95,y-30,0,COLOR)
CH2(x-160,y-20,COLOR)
liaison(x-235,y-30,0,COLOR)
CH3(x-280,y-20,COLOR)
elif rotation == 270 and direction == "RIGHT":
liaison(x-5,y,90,COLOR)
CH2(x-20,y-20,COLOR)
liaison(x+40,y-30,0,COLOR)
CH2(x+115,y-20,COLOR)
liaison(x+175,y-30,0,COLOR)
CH3(x+250,y-20,COLOR)
elif rotation == 270 and direction == "MIDDLE":
liaison(x-5,y,90,COLOR)
CH2(x-20,y-20,COLOR)
liaison(x-5,y-105,90,COLOR)
CH2(x-20,y-120,COLOR)
liaison(x-5,y-210,90,COLOR)
CH3(x-20,y-220,COLOR)

liste_position_atome_carbone = []
liste_liaison = [liaison,  double_liaison, triple_liaison]
liste_fonction = [fonction_aldehyde, fonction_acide, fonction_esther]
liste_fonction_rotation = [fonction_alcool, fonction_cetone]
liste_ramification = [méthyl, éthyl , propyl]

def chaine_carbone(x,y,a,b,COLOR=(255,255,255)):
choix_liaison = liste_liaison[b-1]
up()
goto(x,y)
down()
color(COLOR)
c = x-3
d = y+20
for i in range(a-1):
C(x,y,COLOR)
choix_liaison(x+15,y-12.5,0,COLOR)
x += 90
C(x,y,COLOR)
for i in range(a):
pos_C = tuple(((int(c)),(int(d))))
liste_position_atome_carbone.append(pos_C)
c += 90
phrase1 = list(phrase.split("-"))

def calcul_nombre_carbone():
for i in range(len(nombre_carbone)):
truc = []
keys = list(nombre_carbone[i])
value = list((nombre_carbone[i].values()))
value1 = int(value[0])
keys1 = keys[0]
truc = [keys1,value1]
if truc[0] in phrase:
a = truc[1]
return a
break
else:
pass

def calcul_liaison():
for i in range(len(type_liaison)):
truc = []
keys = list(type_liaison[i])
value = list((type_liaison[i].values()))
value1 = int(value[0])
keys1 = keys[0]
truc = [keys1,value1]
if truc[0] in phrase :
b = truc[1]
return b
break
else:
pass

def analyse_fonctions():
for a in range(len(phrase1)):
for i in range(len(fonction_all)):
truc = []
keys = list(fonction_all[i])
value = list((fonction_all[i].values()))
value1 = int(value[0])
keys1 = keys[0]
truc = [keys1,value1]
if truc[0] == phrase1[a] and phrase1[a-1].isdigit():
num_fonc = truc[1]
pos_fonc_dessin = int(phrase1[a-1])
if num_fonc == 0 or num_fonc == 1:
rotation_enable = True
else:
rotation_enable = False
return num_fonc, pos_fonc_dessin, rotation_enable
break
else:
pass
return False

def analyse_ramifications():
for a in range(len(phrase1)):
for i in range(len(ramification)):
truc = []
keys = list(ramification[i])
value = list((ramification[i].values()))
value1 = int(value[0])
keys1 = keys[0]
truc = [keys1,value1]
if truc[0] == phrase1[a] and phrase1[a-1].isdigit():
num_fonc = truc[1]
pos_fonc_dessin = int(phrase1[a-1])
return num_fonc, pos_fonc_dessin
break
num_fonc = None
pos_fonc_dessin = None
return num_fonc, pos_fonc_dessin

def choix_rotation(a,d):
if d == 1:
rotation = [90, 180, 270]
r = choice(rotation)
return r
elif d == a :
rotation = [0 ,90 ,270]
r = choice(rotation)
return r
elif d >= 2 and d

Вернуться в «Python»