Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Théo BOUTEMY
siam
Commits
2799deb7
Commit
2799deb7
authored
May 27, 2021
by
Pauline LEYRIT
Browse files
ihm
parent
04d6a904
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Monappli.py
View file @
2799deb7
""
#
#
# import sys
# from PyQt5 import QtGui, QtCore, QtWidgets, uic
#
# from pieces import Piece
# from table_de_jeu import Plateau
#
# # l'approche par héritage simple de la classe QMainWindow (même type de notre fenêtre
# # créée avec QT Designer. Nous configurons après l'interface utilisateur
# # dans le constructeur (la méthode init()) de notre classe
#
# class MonAppli(QtWidgets.QMainWindow):
# def __init__(self):
# super().__init__()
# self.ui = uic.loadUi('siam.ui', self)
# self.painter = QtGui.QPainter()
# self.ui.plateau.paintEvent = self.paintEvent # "dessine_moi" se traduit par paintEvent
#
# #self.resize(9,9)
#
# self.ui.bouton_pousser.clicked.connect(self.pousser)
# self.ui.bouton_entrer.clicked.connect(self.entrer)
# self.ui.bouton_entrerp.clicked.connect(self.entrer_en_poussant)
# self.ui.bouton_tourner.clicked.connect(self.changement_orientation)
# self.ui.bouton_sortit.clicked.connect(self.sortir)
# self.ui.bouton_deplacer.clicked.connect(self.changement_position)
#
# self.jeux = Plateau(xmax=self.ui.plateau.width(), ymax=self.ui.plateau.height(), nb_montagne=3, joueur1='Theo', joueur2='Pauline')
#
#
# pixmap = QtGui.QPixmap("plateau9x7.PNG")
# pal = QtGui.QPalette()
# pal.setBrush(QtGui.QPalette.Background, QtGui.QBrush(pixmap))
# self.ui.plateau.lower()
# self.ui.plateau.stackUnder(self)
# self.ui.plateau.setAutoFillBackground(True)
# self.ui.plateau.setPalette(pal)
#
#
# def pousser(self):
# print("je pousse")
# self.ui.plateau.update() # la méthode update génère l'évènement paintEvent qui lui-même appelle la méthode draw_ecosys
# self.jeux.jouer()
# # self.jeux.unTour()
#
# def entrer(self):
# print("j'entre")
# self.ui.plateau.update()
# #i, j = self.mousePressEvent
#
# print (i,j)
# # if self.ui.plateau.mousePressEvent[0] in [0,1,2,3,4] and self.ui.plateau.mousePressEvent[1] in [0,1,2,3,4]:
# # print ('la piece est déjà rentrée sur le plateau')
# #
# #
# # else:
# # bool = True
# # while bool :
# # i= int(input('entrer la nouvelle abscisse : '))
# # j = int(input('entrer la nouvelle ordonnée : '))
# #
# # if (i == 0 or i == 4) or (j == 4 or j ==0) :
# # self.coords = i, j
# # self.changement_orientation()
# # self.tour_effectué = True
# #
# # bool = False
# # else :
# # print ('une pièce ne peut entrer sur le plateau que sur une case extérieure : rééssayez ')
# #
# # print("votre pièce %c%i est entrée à la position %s, orientée vers %c" % (
# # self.car(),self.numero, self.coords, self.orientation))
#
# def entrer_en_poussant(self):
# print("j'entre en poussant")
# self.ui.plateau.update()
# self.jeux.jouer()
#
# def changement_orientation(self):
# print("je tourne")
# self.ui.plateau.update()
# self.plateau.jouer()
#
# def sortir(self):
# print("je sors")
# self.ui.plateau.update()
# self.plateau.jouer()
#
# def changement_position(self):
# print("je bouge")
# self.ui.plateau.update()
# self.plateau.jouer()
#
# def mousePressEvent(self, e):
# largeur_case = 36.77777778
# hauteur_case = 37.2857142
# # Les coordonnées du point cliqué sont e.x() et e.y()
#
# # Transformation des coordonnées écran en coordonnées dans
# # # le plateau de jeu
# i = e.x() // largeur_case - 6
# j = e.y() // hauteur_case - 3
# # # Vérification
#
# # print('Vous avez cliqué sur la case : ', ((i,j))
#
# # On réaffiche
# self.repaint()
# print(i,j)
# #return [i,j]
#
# def paintEvent(self, e):
# p = QtGui.QPainter(self.ui.plateau)
# p.setBrush(QtGui.QBrush(QtCore.Qt.SolidPattern))
# # Dessin de la grille
# largeur_case = self.ui.plateau.width() // 9
# hauteur_case = self.ui.plateau.height() // 7
# for i in range(10):
# p.drawLine(0, i * hauteur_case, self.width(), i * hauteur_case)
# for i in range(8):
# p.drawLine(i * largeur_case, 0, i * largeur_case,self.height())
#
# # Dessin des pions
# # On parcourt la représentation du jeu et on affiche
# for i in range(5):
# p.setPen(QtCore.Qt.red)
# p.drawEllipse(0* largeur_case, (i+1) * hauteur_case,
# largeur_case, hauteur_case)
# p.setPen(QtCore.Qt.green)
# p.drawEllipse(8* largeur_case, (i+1) * hauteur_case,
# largeur_case, hauteur_case)
#
# # # variable intermédiraire pour alléger le code
# # qp = self.painter
# # # boucle pour parcourir les pions et gérer les images (vu ci-dessus)
# # for pion in self.jeux:
# # if pion.car() == 'R':
# # qp.setPen(QtCore.Qt.red) # définir la couleur du pinceau
# # qp.drawEllipse(pion.abscisse, pion.ordonnee, 5, 5)
# # else:
# # qp.setPen(QtCore.Qt.green)
# # qp.drawRect(pion.abscisse, pion.ordonnee, 5, 5)
# #
# # # on informe le peintre qu'on a fini
# # self.painter.end()
#
#
#
#
# if __name__ == "__main__":
# app = QtWidgets.QApplication(sys.argv)
# window = MonAppli()
# window.show()
# sys.exit(app.exec_())
#
# from PyQt5.QtWidgets import QApplication, QMainWindow, QGraphicsScene, QPushButton, QGraphicsView, QGraphicsItem
# from PyQt5.QtGui import QBrush, QPen, QFont
# from PyQt5.QtCore import Qt
# import sys
#
#
# class Window(QMainWindow):
# def __init__(self):
# super().__init__()
#
# self.setWindowTitle("Pyside2 QGraphic View")
# self.setGeometry(300, 200, 640, 520)
#
# self.create_ui()
#
# self.show()
#
# def create_ui(self):
# button = QPushButton("Rotate - ", self)
# button.setGeometry(200, 450, 100, 50)
# button.clicked.connect(self.rotate_minus)
#
# button2 = QPushButton("Rotate + ", self)
# button2.setGeometry(320, 450, 100, 50)
# button2.clicked.connect(self.rotate_plus)
#
# scene = QGraphicsScene(self)
#
# greenBrush = QBrush(Qt.green)
# blueBrush = QBrush(Qt.blue)
#
# blackPen = QPen(Qt.black)
# blackPen.setWidth(5)
#
# ellipse = scene.addEllipse(10, 10, 200, 200, blackPen, greenBrush)
#
# rect = scene.addRect(-100, -100, 200, 200, blackPen, blueBrush)
#
# scene.addText("Codeloop.org", QFont("Sanserif", 15))
#
# ellipse.setFlag(QGraphicsItem.ItemIsMovable)
# rect.setFlag(QGraphicsItem.ItemIsMovable)
#
# self.view = QGraphicsView(scene, self)
# self.view.setGeometry(0, 0, 640, 440)
#
# def rotate_minus(self):
# self.view.rotate(-14)
#
# def rotate_plus(self):
# self.view.rotate(14)
#
#
# app = QApplication(sys.argv)
# window = Window()
# sys.exit(app.exec_())
from
PyQt5.QtWidgets
import
*
import
sys
from
PyQt5
import
QtGui
,
QtCore
,
QtWidgets
,
uic
from
interface
import
Ui_Siam
from
pieces
import
Piece
from
table_de_jeu
import
Plateau
# l'approche par héritage simple de la classe QMainWindow (même type de notre fenêtre
# créée avec QT Designer. Nous configurons après l'interface utilisateur
# dans le constructeur (la méthode init()) de notre classe
class
MonAppli
(
QtWidgets
.
QMainWindow
):
class
Window
(
QWidget
):
def
__init__
(
self
):
super
().
__init__
()
self
.
ui
=
uic
.
loadUi
(
'C:/Users/33651/siam1/siam.ui'
,
self
)
self
.
painter
=
QtGui
.
QPainter
()
self
.
ui
.
plateau
.
paintEvent
=
self
.
paintEvent
# "dessine_moi" se traduit par paintEvent
#self.resize(9,9)
self
.
ui
.
bouton_pousser
.
clicked
.
connect
(
self
.
pousser
)
self
.
ui
.
bouton_entrer
.
clicked
.
connect
(
self
.
entrer
)
self
.
ui
.
bouton_entrerp
.
clicked
.
connect
(
self
.
entrer_en_poussant
)
self
.
ui
.
bouton_tourner
.
clicked
.
connect
(
self
.
changement_orientation
)
self
.
ui
.
bouton_sortit
.
clicked
.
connect
(
self
.
sortir
)
self
.
ui
.
bouton_deplacer
.
clicked
.
connect
(
self
.
changement_position
)
self
.
jeux
=
Plateau
(
xmax
=
self
.
ui
.
plateau
.
width
(),
ymax
=
self
.
ui
.
plateau
.
height
(),
nb_montagne
=
3
,
joueur1
=
'Theo'
,
joueur2
=
'Pauline'
)
pixmap
=
QtGui
.
QPixmap
(
"plateau9x7.PNG"
)
pal
=
QtGui
.
QPalette
()
pal
.
setBrush
(
QtGui
.
QPalette
.
Background
,
QtGui
.
QBrush
(
pixmap
))
#self.ui.plateau.lower()
#self.ui.plateau.stackUnder(self)
self
.
ui
.
plateau
.
setAutoFillBackground
(
True
)
self
.
ui
.
plateau
.
setPalette
(
pal
)
def
pousser
(
self
):
print
(
"je pousse"
)
self
.
ui
.
plateau
.
update
()
# la méthode update génère l'évènement paintEvent qui lui-même appelle la méthode draw_ecosys
self
.
jeux
.
jouer
()
# self.jeux.unTour()
def
entrer
(
self
):
print
(
"j'entre"
)
self
.
ui
.
plateau
.
update
()
self
.
jeux
.
jouer
()
def
entrer_en_poussant
(
self
):
print
(
"j'entre en poussant"
)
self
.
ui
.
plateau
.
update
()
self
.
jeux
.
jouer
()
def
changement_orientation
(
self
):
print
(
"je tourne"
)
self
.
ui
.
plateau
.
update
()
self
.
plateau
.
jouer
()
def
sortir
(
self
):
print
(
"je sors"
)
self
.
ui
.
plateau
.
update
()
self
.
plateau
.
jouer
()
def
changement_position
(
self
):
print
(
"je bouge"
)
self
.
ui
.
plateau
.
update
()
self
.
plateau
.
jouer
()
def
mousePressEvent
(
self
,
e
):
largeur_case
=
self
.
ui
.
plateau
.
width
()
//
9
hauteur_case
=
self
.
ui
.
plateau
.
height
()
//
7
# Les coordonnées du point cliqué sont e.x() et e.y()
# Transformation des coordonnées écran en coordonnées dans
# le plateau de jeu
j
=
e
.
x
()
//
largeur_case
-
4
i
=
e
.
y
()
//
hauteur_case
-
2
# Vérification
print
(
'Vous avez cliqué sur la case : '
,
(
i
,
j
))
QWidget
.
__init__
(
self
)
layout
=
QGridLayout
()
self
.
setLayout
(
layout
)
radiobutton
=
QRadioButton
(
"Australia"
)
radiobutton
.
setChecked
(
True
)
radiobutton
.
country
=
"Australia"
radiobutton
.
toggled
.
connect
(
self
.
onClicked
)
layout
.
addWidget
(
radiobutton
,
0
,
0
)
if
e
.
button
()
==
QtGui
.
LeftButton
:
e
.
accept
()
self
.
expanded
^=
True
self
.
toggled
.
emit
(
self
)
self
.
update
()
else
:
return
QtGui
.
mousePressEvent
(
self
,
e
)
radiobutton
=
QRadioButton
(
"China"
)
radiobutton
.
country
=
"China"
radiobutton
.
toggled
.
connect
(
self
.
onClicked
)
layout
.
addWidget
(
radiobutton
,
0
,
1
)
# On réaffiche
self
.
repaint
()
radiobutton
=
QRadioButton
(
"Japan"
)
radiobutton
.
country
=
"Japan"
radiobutton
.
toggled
.
connect
(
self
.
onClicked
)
layout
.
addWidget
(
radiobutton
,
0
,
2
)
def
paintEvent
(
self
,
e
):
p
=
QtGui
.
QPainter
(
self
.
ui
.
plateau
)
p
.
setBrush
(
QtGui
.
QBrush
(
QtCore
.
Qt
.
SolidPattern
))
# Dessin de la grille
largeur_case
=
self
.
ui
.
plateau
.
width
()
//
9
hauteur_case
=
self
.
ui
.
plateau
.
height
()
//
7
for
i
in
range
(
10
):
p
.
drawLine
(
0
,
i
*
hauteur_case
,
self
.
width
(),
i
*
hauteur_case
)
for
i
in
range
(
8
):
p
.
drawLine
(
i
*
largeur_case
,
0
,
i
*
largeur_case
,
self
.
height
())
def
onClicked
(
self
):
radioButton
=
self
.
sender
()
if
radioButton
.
isChecked
():
print
(
"Country is %s"
%
(
radioButton
.
country
))
self
.
painter
.
begin
(
self
.
ui
.
plateau
)
# variable intermédiraire pour alléger le code
qp
=
self
.
painter
# boucle pour parcourir les pions et gérer les images (vu ci-dessus)
for
pion
in
self
.
jeux
:
if
pion
.
car
()
==
'R'
:
qp
.
setPen
(
QtCore
.
Qt
.
red
)
# définir la couleur du pinceau
qp
.
drawEllipse
(
pion
.
abscisse
,
pion
.
ordonnee
,
5
,
5
)
else
:
qp
.
setPen
(
QtCore
.
Qt
.
green
)
qp
.
drawRect
(
pion
.
abscisse
,
pion
.
ordonnee
,
5
,
5
)
# on informe le peintre qu'on a fini
self
.
painter
.
end
()
# Dessin des pions
# On parcourt la représentation du jeu et on affiche
# for i in range(3):
# for j in range(3):
# if jeu[i][j] !=0:
# if jeu[i][j] == 1:
# p.setBrush(QtGui.QColor(255, 0, 0))
# else:
# p.setBrush(QtGui.QColor(255, 255, 0))
# p.drawEllipse(j * largeur_case, i * hauteur_case,
# largeur_case, hauteur_case)
layout
=
QGridLayout
()
droite
=
QRadioButton
(
"Button1"
)
droite
.
setChecked
(
True
)
#droite.toggled.connect(lambda: self.btnstate(self.droite))
layout
.
addWidget
(
droite
)
gauche
=
QRadioButton
(
"Button2"
)
#gauche.toggled.connect(lambda: self.btnstate(self.gauche))
layout
.
addWidget
(
gauche
)
self
.
setLayout
(
layout
)
layout
.
addWidget
(
gauche
)
self
.
setLayout
(
layout
)
scene
=
QGraphicsScene
(
self
)
self
.
view
=
QGraphicsView
(
scene
,
self
)
self
.
view
.
setGeometry
(
0
,
0
,
640
,
440
)
# app = QApplication(sys.argv)
# screen = Window()
# screen.show()
# sys.exit(app.exec_())
if
__name__
==
"__main__"
:
app
=
QtWidgets
.
QApplication
(
sys
.
argv
)
window
=
MonAppli
()
window
.
show
()
app
.
exec_
()
print
(
-
65
//
60
)
\ No newline at end of file
appli2.py
0 → 100644
View file @
2799deb7
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment