1 year ago
#369374
Slayne
How to move button in pysimplegui
hello I have to make a game for a school project but I'm stuck on a part I use py simple gui to display my window and create the game interface only I get stuck or I have to move buttons randomly, unfortunately I don't know how to move objects on python. if anyone can help me I would be extremely grateful
I tried to do it with tkinter but it makes me change tt my code
"""
layout,<l-->list
C,L,randcol,ranligne-->int
Regle:
Une partie est composee de deux manches. Les joueurs changent de role a chaque manche.
En fin de partie, on affiche le pseudonyme et le score du joueur gagnant.
A faire:
-afficher nb de chats/evades-----les pseudonymes des joueurs sont affiches.
-Les gardiens et ‘Chaf’, le chat en chef, peuvent sauter au-dessus d’un robot.
-Les robots se deplacent de facon autonome, a l’horizontal ou a la verticale (mathys).
-A chaque tour, sept chats differents peuvent etre deplace
-Les robots et les gardiens ne peuvent pas penetrer dans la zone d’apparition des chats.
FAIT!!!
-Au debut les chats, gardiens,sorties, bassin apparaissent aux positions indiquees dans la Figure 2.
-position de chaf parmi les quatorze position de la zone d’apparition des chats
-Le bassin est un obstacle infranchissable.
-Les positions initiales des robots sont tirees aleatoirement a chaque debut de manche.
"""
from random import randint
import PySimpleGUI as sg
l = [["" for i in range(11)] for i in range(11)]
l[0][5]="S"
l[1][2],l[1][8]="W","W"
l[2][4],l[2][5],l[2][6]="O","O","O"
l[3][4],l[3][5],l[3][6]="O","O","O"
l[4][0],l[4][10]="S","S"
#Position des chats
randligne=randint(7,10)
randcol=randint(3,7)
l[7][5]="C"
l[8][4],l[8][5],l[8][6]="C","C","C"
l[9][3],l[9][4],l[9][5],l[9][6],l[9][7]="C","C","C","C","C"
l[10][3],l[10][4],l[10][5],l[10][6],l[10][7]="C","C","C","C","C"
while l[randligne][randcol]!="C":
randligne=randint(7,10)
randcol=randint(3,7)
l[randligne][randcol]="Ç"
for i in range (9):
randligne=randint(0,10)
randcol=randint(0,10)
while l[randligne][randcol]!="":
randligne=randint(0,10)
randcol=randint(0,10)
l[randligne][randcol]='R'
L = C = 11
layout=[[[sg.Text('Entrer vos nom de jeu'),sg.Text('Tour de ')],
[sg.Text('Joueur1', size=(15, 1)), sg.InputText('joueur1'),sg.Text('Point', size=(5, 1))],
[sg.Text('Joueur2', size=(15, 1)), sg.InputText('joueur2'),sg.Text('Point', size=(5, 1))],
[sg.Button('ok'), sg.Button('annuler')]],
[[sg.Button(l[i][j],button_color=('black'), size=(8, 4), key=(i,j),
pad=(0,0)) for j in range(C)] for i in range(L)]]
# Creation de la fenetre
window=sg.Window('EscaT Game',layout=layout)
e0,e1=0,0#coordonnees du bouton appuyé
dec=[]#coordonnees des cases a décolorer
TOUR=0
DEMARRE=0
# Boucle de gestion des evenements
while True:
event, values = window.read() # lecture du dernier evenement
e0,e1=event[0],event[1]
while event!='ok':#remplir noms et appuyer sur ok pour commencer
event, values = window.read() # lecture du dernier evenement
print('faire clignoter "ok" et remplir les noms')
DEMARRE=1
while DEMARRE==1 :
if TOUR==0:
for i in range(7,11):#coloration de la maison des chats
for j in range (3,8):
if l[i][j] == "C" or l[i][j]=="Ç":
window[i,j].Update(button_color=('black', 'NavajoWhite3'))
for i in range(2,4):#coloration de leau
for j in range (4,7):
if l[i][j] == "O":
window[i,j].Update(button_color=('navy'))
window[0,5].Update(button_color=('black','white'))
window[4,0].Update(button_color=('black','white'))
window[4,10].Update(button_color=('black','white'))
elif l[e0][e1] == "C" or l[e0][e1]=="Ç": #Joueur1 veut bouge un chat(chef)
window[e0,e1].Update(button_color=('black', 'grey'))
elif l[e0][e1] == "W": # le joueur2 veut bouger un gardient
for i in range (3):# boucle qui grise les mvt possible
for j in range(3):
e0,e1=event[0]-1+i,event[1]-1+j
if len(l[e0][e1])==0:
window[e0,e1].Update(button_color=('grey24'))
##########
# print(sg.Button([e0][e1],button_color==('black')))
# if (window[e0,e1].button_color==('grey','grey'))==True: #le joueur bouge un gardien
# window[e0,e1].Update(button_color=('blue', 'blue'))
##########
# for i in range (3):# boucle qui degrise les cases
# for j in range(3):
# e0,e1=event[0]-1+i,event[1]-1+j
# if len(l[e0][e1])==0:
# window[e0,e1].Update(button_color=('white', 'black'))#degrisement
elif event == sg.WIN_CLOSED: # arrete la boucle quand on ferme la fenetre
break
TOUR+=1
event, values = window.read() # lecture du dernier evenement
e0,e1=event[0],event[1]
window.close() # Destruction de la fenetre
python
button
move
pysimplegui
0 Answers
Your Answer