From ed55a70557cfef6e91761a7a3ebb6052aeacdd63 Mon Sep 17 00:00:00 2001 From: thest <gae> Date: Tue, 30 Mar 2021 09:00:40 +0200 Subject: [PATCH] =?UTF-8?q?impl=C3=A9mentation=20de=20l'interface=20graphi?= =?UTF-8?q?que?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fichier1/Views/ViewDecoupage.Designer.cs | 34 +++++- fichier1/fichier1/Views/ViewDecoupage.cs | 103 +++++++++++++++++- fichier1/fichier1/Views/ViewDecoupage.resx | 62 +---------- 3 files changed, 136 insertions(+), 63 deletions(-) diff --git a/fichier1/fichier1/Views/ViewDecoupage.Designer.cs b/fichier1/fichier1/Views/ViewDecoupage.Designer.cs index 9409896..4c5a303 100644 --- a/fichier1/fichier1/Views/ViewDecoupage.Designer.cs +++ b/fichier1/fichier1/Views/ViewDecoupage.Designer.cs @@ -29,10 +29,42 @@ namespace fichier1.Views /// </summary> private void InitializeComponent() { - components = new System.ComponentModel.Container(); + this.pnlMot = new System.Windows.Forms.Panel(); + this.btnValider = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // pnlMot + // + this.pnlMot.Location = new System.Drawing.Point(46, 39); + this.pnlMot.Name = "pnlMot"; + this.pnlMot.Size = new System.Drawing.Size(515, 76); + this.pnlMot.TabIndex = 0; + // + // btnValider + // + this.btnValider.Location = new System.Drawing.Point(148, 161); + this.btnValider.Name = "btnValider"; + this.btnValider.Size = new System.Drawing.Size(303, 33); + this.btnValider.TabIndex = 1; + this.btnValider.Text = "Valider"; + this.btnValider.UseVisualStyleBackColor = true; + this.btnValider.Click += new System.EventHandler(this.btnValider_Click); + // + // ViewDecoupage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnValider); + this.Controls.Add(this.pnlMot); + this.Name = "ViewDecoupage"; + this.Size = new System.Drawing.Size(608, 248); + this.ResumeLayout(false); + } #endregion + + private System.Windows.Forms.Panel pnlMot; + private System.Windows.Forms.Button btnValider; } } diff --git a/fichier1/fichier1/Views/ViewDecoupage.cs b/fichier1/fichier1/Views/ViewDecoupage.cs index 0a16d20..fe205be 100644 --- a/fichier1/fichier1/Views/ViewDecoupage.cs +++ b/fichier1/fichier1/Views/ViewDecoupage.cs @@ -5,14 +5,115 @@ using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; +using fichier1.Controllers; namespace fichier1.Views { public partial class ViewDecoupage : UserControl { - public ViewDecoupage() + private IGameController ctrl; + + private string[] mot; + + public ViewDecoupage(IGameController ctrl) { InitializeComponent(); + this.ctrl = ctrl; + this.mot = ctrl.getMotSuivant(); + } + + private void AfficherMot() + { + pnlMot.Controls.Clear(); + int decalage = 25; + int letterIndex = 0; + for (int i = 0; i < this.mot.Length; i++) + { + for (int j = 0; j < this.mot[i].Length; j++) + { + Label lbl = new Label(); + lbl.Text = this.mot[i].Substring(j, 1); + lbl.Width = 10; + pnlMot.Controls.Add(lbl); + lbl.Left = decalage; + decalage += 10; + lbl.Click += (sender, e) => + { + this.DecouperMot(letterIndex); + }; + } + if (i != this.mot.Length -1) + { + Label lbl = new Label(); + lbl.Text = " "; + lbl.Width = 10; + pnlMot.Controls.Add(lbl); + lbl.Left = decalage; + decalage += 10; + lbl.Click += (sender, e) => + { + this.RecollerMot(i); + }; + } + } + } + + private void DecouperMot(int index) + { + int i = 0; + while (i < this.mot.Length && index >= this.mot[i].Length) + { + index -= this.mot[i].Length; + i++; + } + if (i < this.mot.Length) + { + string[] mot = new string[this.mot.Length + 1]; + int j = 0; + while (j < i) + { + mot[j] = this.mot[j]; + j++; + } + mot[j] = this.mot[j].Substring(0, index + 1); + j++; + mot[j] = this.mot[i].Substring(index + 1); + j++; + i++; + while (i < this.mot.Length) + { + mot[j] = this.mot[i]; + } + + this.mot = mot; + this.AfficherMot(); + } + } + + private void RecollerMot(int index) + { + if (index < this.mot.Length - 1) + { + string[] mot = new string[this.mot.Length - 1]; + for (int i = 0; i < index; i++) + { + mot[i] = this.mot[i]; + } + mot[index] = this.mot[index] + this.mot[index + 1]; + index++; + while (index < this.mot.Length - 1) + { + mot[index] = this.mot[index + 1]; + } + + this.mot = mot; + this.AfficherMot(); + } + } + + private void btnValider_Click(object sender, EventArgs e) + { + this.ctrl.validerMot(this.mot); } } } diff --git a/fichier1/fichier1/Views/ViewDecoupage.resx b/fichier1/fichier1/Views/ViewDecoupage.resx index 1af7de1..f298a7b 100644 --- a/fichier1/fichier1/Views/ViewDecoupage.resx +++ b/fichier1/fichier1/Views/ViewDecoupage.resx @@ -1,64 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> +<root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:element name="root" msdata:IsDataSet="true"> -- GitLab