diff --git a/fichier1/fichier1/Views/CorrectionMot.Designer.cs b/fichier1/fichier1/Views/CorrectionMot.Designer.cs index 75a89bf15c5b3efa31f75244d187a21edb90de0f..81a9d4509a5c4298463609dddc7f0958ecb0304c 100644 --- a/fichier1/fichier1/Views/CorrectionMot.Designer.cs +++ b/fichier1/fichier1/Views/CorrectionMot.Designer.cs @@ -29,10 +29,39 @@ namespace fichier1.Views /// </summary> private void InitializeComponent() { - components = new System.ComponentModel.Container(); + this.pnlMot = new System.Windows.Forms.Panel(); + this.pnlCorrection = new System.Windows.Forms.Panel(); + this.SuspendLayout(); + // + // pnlMot + // + this.pnlMot.Location = new System.Drawing.Point(39, 15); + this.pnlMot.Name = "pnlMot"; + this.pnlMot.Size = new System.Drawing.Size(301, 37); + this.pnlMot.TabIndex = 0; + // + // pnlCorrection + // + this.pnlCorrection.Location = new System.Drawing.Point(39, 58); + this.pnlCorrection.Name = "pnlCorrection"; + this.pnlCorrection.Size = new System.Drawing.Size(301, 37); + this.pnlCorrection.TabIndex = 1; + // + // CorrectionMot + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.pnlCorrection); + this.Controls.Add(this.pnlMot); + this.Name = "CorrectionMot"; + this.Size = new System.Drawing.Size(380, 121); + this.ResumeLayout(false); + } #endregion + + private System.Windows.Forms.Panel pnlMot; + private System.Windows.Forms.Panel pnlCorrection; } } diff --git a/fichier1/fichier1/Views/CorrectionMot.cs b/fichier1/fichier1/Views/CorrectionMot.cs index 3c930ddbf349db79a6fa59e55b5980a118acfb9f..4743573280afe481d502962114fccb2a17571ccf 100644 --- a/fichier1/fichier1/Views/CorrectionMot.cs +++ b/fichier1/fichier1/Views/CorrectionMot.cs @@ -5,14 +5,50 @@ using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; +using fichier1.Controllers; namespace fichier1.Views { public partial class CorrectionMot : UserControl { - public CorrectionMot() + private IGameController ctrl; + private int wordNb; + + public CorrectionMot(IGameController ctrl, int nb) { InitializeComponent(); + this.ctrl = ctrl; + this.wordNb = nb; + + string[] mot = ctrl.getMot(wordNb); + string[] correction = ctrl.getCorrection(wordNb); + + bool identitcal = true; + + for (int i = 0; i < mot.Length; i++) + { + if (identitcal) identitcal = (i < correction.Length && mot[i] == correction[i]); + Label lbl = new Label(); + lbl.Text = mot[i]; + pnlMot.Controls.Add(lbl); + } + for (int i = 0; i < correction.Length; i++) + { + if (identitcal) identitcal = (i < mot.Length && mot[i] == correction[i]); + Label lbl = new Label(); + lbl.Text = correction[i]; + pnlCorrection.Controls.Add(lbl); + } + + if (identitcal) + { + pnlMot.BackColor = Color.Green; + } + else + { + pnlMot.BackColor = Color.Red; + } } + } } diff --git a/fichier1/fichier1/Views/CorrectionMot.resx b/fichier1/fichier1/Views/CorrectionMot.resx index 1af7de150c99c12dd67a509fe57c10d63e4eeb04..f298a7be80982ebd538a05758a03bc827419d418 100644 --- a/fichier1/fichier1/Views/CorrectionMot.resx +++ b/fichier1/fichier1/Views/CorrectionMot.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"> diff --git a/fichier1/fichier1/Views/ViewDecoupage.Designer.cs b/fichier1/fichier1/Views/ViewDecoupage.Designer.cs index 940989685004a540545513847b35ba6e2d48d23b..4c5a3034321dccc6556bd2f532f634ee69f5aa31 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 0a16d209ebff2d35579e61529696713600afa475..fe205beead696b8c70b5e0c9113279a68f2ee728 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 1af7de150c99c12dd67a509fe57c10d63e4eeb04..f298a7be80982ebd538a05758a03bc827419d418 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"> diff --git a/fichier1/fichier1/Views/ViewResultats.Designer.cs b/fichier1/fichier1/Views/ViewResultats.Designer.cs index d30a5ea4b988c80f98037d309ad4469beaf1ce96..fc5fe50c5b550ecb81b01a746e619c19505ec66c 100644 --- a/fichier1/fichier1/Views/ViewResultats.Designer.cs +++ b/fichier1/fichier1/Views/ViewResultats.Designer.cs @@ -29,10 +29,29 @@ namespace fichier1.Views /// </summary> private void InitializeComponent() { - components = new System.ComponentModel.Container(); + this.pnlCorrections = new System.Windows.Forms.Panel(); + this.SuspendLayout(); + // + // pnlCorrections + // + this.pnlCorrections.Location = new System.Drawing.Point(19, 21); + this.pnlCorrections.Name = "pnlCorrections"; + this.pnlCorrections.Size = new System.Drawing.Size(842, 393); + this.pnlCorrections.TabIndex = 0; + // + // ViewResultats + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.pnlCorrections); + this.Name = "ViewResultats"; + this.Size = new System.Drawing.Size(883, 482); + this.ResumeLayout(false); + } #endregion + + private System.Windows.Forms.Panel pnlCorrections; } } diff --git a/fichier1/fichier1/Views/ViewResultats.cs b/fichier1/fichier1/Views/ViewResultats.cs index b3337bacb14759038396084a4b259ff0f1646de2..11e9a4d76422cc6d10b42c0ed2959bd61b8b4f3e 100644 --- a/fichier1/fichier1/Views/ViewResultats.cs +++ b/fichier1/fichier1/Views/ViewResultats.cs @@ -5,14 +5,24 @@ using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; +using fichier1.Controllers; namespace fichier1.Views { public partial class ViewResultats : UserControl { - public ViewResultats() + private IGameController ctrl; + + public ViewResultats(IGameController ctrl) { InitializeComponent(); + this.ctrl = ctrl; + + for (int i = 0; i < ctrl.getTotalWordNumber(); i++) + { + CorrectionMot mot = new CorrectionMot(ctrl, i); + pnlCorrections.Controls.Add(mot); + } } } } diff --git a/fichier1/fichier1/Views/ViewResultats.resx b/fichier1/fichier1/Views/ViewResultats.resx index 1af7de150c99c12dd67a509fe57c10d63e4eeb04..f298a7be80982ebd538a05758a03bc827419d418 100644 --- a/fichier1/fichier1/Views/ViewResultats.resx +++ b/fichier1/fichier1/Views/ViewResultats.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">