public TetrisClientInfo(TetrisGrid tg) { int size = tg.pictBox_Case.Length; int rows = tg.numLines; int cols = tg.numCols; this.tbColors = new Color[rows, cols]; score = tg.score; for (int i = 0; i < rows; i++) {//Copie des couleurs de la grid for (int j = 0; j < cols; j++) { this.tbColors[i, j] = (tg.pictBox_Case[i, j].BackColor); }//this.BackColor = s.BackColor; } }
public formTetrisClientApp() { InitializeComponent(); FormConnectServer serverConnection = new FormConnectServer(); //Création des tetrisgrid gridPlayerMe = new TetrisGrid(300, 600, 20, 10); gridPlayerRival = new TetrisGrid(300, 600, 20, 10); //this.btnReady.KeyDown += new System.Windows.Forms. resizeGraphics(); serverConnection.ShowDialog(); //Si le client clique sur OK if (serverConnection.DialogResult == DialogResult.OK) { //Le client remoteServer est tout d'abord créé dans la fenêtre FormConnectServer. On le passe à cette classe pour qu'il puisse être exploité ici. remoteServer = serverConnection.remoteServer; //Ajout des callback d'événement de communication remoteServer.DataReceived += RemoteServer_DataReceived; remoteServer.ClientDisconnected += RemoteServer_ClientDisconnected; remoteServer.ConnectionRefused += RemoteServer_ConnectionRefused; //Récupération du channel (la validité de cette info est gérée dans FormConnectServer) byte[] codeChannel = Encoding.ASCII.GetBytes(serverConnection.stCode); //Envoi du channel au serveur. Si un channel portant le même numéro est existant, le client le rejoindra et dans le cas contraire, le serveur créera le channel et y placera le client remoteServer.Send(codeChannel); //Affiche le numéro du channel pour que le client puisse le donner à la personne avec qui il veut jouer txtBoxChat.Text += "Welcome in the channel " + serverConnection.stCode.ToString(); //Callaback quand la figure bouge, on l'utilise pour envoyer les infos de la grid gridPlayerMe.FigureMovedDown += onFigureMovedDown; //Quand le score change dans la classe tetrisgrid, pour l'afficher dans les label gridPlayerMe.ScoreChanged += onScoreChanged; //Callback quand le joueur a perdu gridPlayerMe.GameOver += onGameOver; //Callback quand une nouvelle pièce est générée. Elle permet de changer la pièce dans le pannel contenant la "next piece" gridPlayerMe.FigureSet += onFigureSet; } //Si le client annule la connexion else //if(serverConnection.DialogResult == DialogResult.Cancel) { //Fermeture de l'appli si le client annule la connexion Load += (s, e) => Close(); } }