Concrètement, voici la consigne exacte :
Modifiez le programme de la version précédente pour qu’il permette à deux joueurs de jouer en réseau. Chaque joueur contrôle un carré. Le joueur 1 commence en x=56 et y=16, et le joueur 2 en x=72 et y=16. Le joueur 1 joue en premier, au tour numéro 0. Le joueur 2 joue ensuite au tour 1, puis le joueur 1 au tour 2, et ainsi de suite.
Créez une clé "tron1" pour transmettre vos déplacements à votre adversaire. Lui devra créer une clé "tron2" pour vous envoyer les siens. Vous programmez le joueur 1. Après son déplacement, écrivez sur votre clé une liste composée de 2 valeurs : le numéro du tour et la direction de déplacement (1 pour haut, 2 pour bas, 3 pour gauche, 4 pour droite).
Lisez ensuite toutes les 100ms sur la clé de votre adversaire, une liste de deux valeurs : un numéro de tour et une direction. Lorsque le numéro de tour lu est le suivant de celui que vous aviez écrit, déplacez le carré de votre adversaire de 2 pixels dans la direction lue. Ensuite, attendez 100ms de plus et passez au tour suivant, en gérant le déplacement suivant du joueur 1.
Pour tester votre programme avec un véritable adversaire, celui qui est le joueur 2 devra bien sûr modifier son programme en conséquence.
Les fonctions disponibles pour contrôler le robot sont :
drawRectangle(x0, y0, width, height)
drawLine(x0, y0, x1, y1)
isButtonPressed(button) retourne True si le bouton est enfoncé, False sinon
sleep(milliseconds) met en pause l’exécution pendant une durée en ms
connectToCloudStore(identifier, password)
writeToCloudStore(identifier, key, value)
readFromCloudStore(identifier, key)
Les mots-clés suivants sont autorisés : variables, list, set, crochets [ ], def, lambda, while, if, else, elif, and, or.
Les mots-clés suivants sont interdits : for, not, accolades { }, break, continue, setattr, map, split.
Les variables sont autorisées.
Ce sont toutes les informations que j’ai. Concrètement, j’écris mon programme sur le site qui propose l’exercice et il m’indique ensuite si celui-ci fonctionne.
Pour faire le programme, je vais me baser sur l’autre déjà fait :
from quickpi import *
Y=16
X=64
drawRectangle(X, Y, 2, 2)
while True:
if isButtonPressed("stick1.up"):
Y=Y-2
drawRectangle(X, Y, 2, 2)
elif isButtonPressed("stick1.down"):
Y=Y+2
drawRectangle(X, Y, 2, 2)
elif isButtonPressed("stick1.left"):
X=X-2
drawRectangle(X, Y, 2, 2)
elif isButtonPressed("stick1.right"):
X=X+2
drawRectangle(X, Y, 2, 2)
sleep(100)
Je vais ensuite y faire les modifications nécessaires. Seulement, je ne suis pas sûr de comprendre bien l’énoncé et de savoir comment faire.
Pour commencer, je ne sais même pas que sont ces variables là :
connectToCloudStore(identifier, password)
writeToCloudStore(identifier, key, value)
readFromCloudStore(identifier, key)
surtout si ça ne t’intéresse pas.
Source:ache
Si, ça m’intéresse vraiment de savoir faire tout ça !
Merci d’avance.