Advertisement
itocska

sakkos_kod

May 16th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.04 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace tablas_feladat
  12. {
  13. public partial class Tabla : Form
  14. {
  15. private PictureBox[,] tabla = new PictureBox[8, 8];
  16. private Color[] szinek = { Color.Black, Color.White, Color.Red, Color.Green, Color.Blue, Color.Turquoise, Color.Crimson, Color.Yellow };
  17. public Tabla()
  18. {
  19. InitializeComponent();
  20. }
  21.  
  22. private void Tabla_Load(object sender, EventArgs e)
  23. {
  24. tablagen.Enabled = false;
  25. szinvalaszt.Enabled = false;
  26. korvalaszt.Enabled = false;
  27. negyzetvalaszt.Enabled = false;
  28. poziciosor.Enabled = false;
  29. poziciooszlop.Enabled = false;
  30. rajzolas.Enabled = false;
  31.  
  32. Color szin = Color.White;
  33. for (int i = 0; i < 8; i++)
  34. {
  35. if (szin == Color.White) { szin = Color.Black; }
  36. else { szin = Color.White; }
  37. for (int j = 0; j < 8; j++)
  38. {
  39. tabla[i, j] = new PictureBox();
  40. tabla[i, j].Width = 60;
  41. tabla[i, j].Height = 60;
  42. tabla[i, j].BackColor = szin;
  43.  
  44. if (szin == Color.White) { szin = Color.Black; }
  45. else { szin = Color.White; }
  46.  
  47. tabla[i, j].Top = 10 + j * 60;
  48. tabla[i, j].Left = 200 + i * 60;
  49. tabla[i, j].Visible = false;
  50. Controls.Add(tabla[i, j]);
  51.  
  52. }
  53. }
  54. }
  55. private void meretellenorzes()
  56. {
  57. bool gensorokjo = true;
  58. bool genoszlopokjo = true;
  59. int sor = 0;
  60. int oszlop = 0;
  61. try { sor = Convert.ToInt32(generalsor.Text.Trim()); }
  62. catch { gensorokjo = false; }
  63. if (!((gensorokjo) && ((sor >= 2) && (sor <= 8)))) { gensorokjo = false; }
  64.  
  65. try { oszlop = Convert.ToInt32(generaloszlop.Text.Trim()); }
  66. catch { genoszlopokjo = false; }
  67. if (!((genoszlopokjo) && ((oszlop >= 2) && (oszlop <= 8)))) { genoszlopokjo = false; }
  68.  
  69. if (genoszlopokjo && gensorokjo) { tablagen.Enabled = true; }
  70. else { tablagen.Enabled = false; }
  71. }
  72. private void generaloszlop_TextChanged(object sender, EventArgs e)
  73. {
  74. meretellenorzes();
  75. }
  76. private void generalsor_TextChanged(object sender, EventArgs e)
  77. {
  78. meretellenorzes();
  79. }
  80. private void tablagen_Click(object sender, EventArgs e)
  81. {
  82. for (int i = 0; i < 8; i++)
  83. for (int j = 0; j < 8; j++)
  84. {
  85. tabla[i, j].Visible = false;
  86. Bitmap rajzTerulet = new Bitmap(60, 60);
  87. tabla[i, j].Image = rajzTerulet;
  88.  
  89. Graphics g;
  90. g = Graphics.FromImage(rajzTerulet);
  91. g.Clear(tabla[i, j].BackColor);
  92. g.Dispose();
  93. }
  94.  
  95. for (int i = 0; i < Convert.ToInt32(generaloszlop.Text); i++)
  96. for (int j = 0; j < Convert.ToInt32(generalsor.Text); j++)
  97. tabla[i, j].Visible = true;
  98. this.Width = 200 + (Convert.ToInt32(generaloszlop.Text) * 60) + 35;
  99.  
  100. tablagen.Enabled = false;
  101. generaloszlop.Enabled = false;
  102. generalsor.Enabled = false;
  103. szinvalaszt.Enabled = true;
  104. korvalaszt.Enabled = true;
  105. negyzetvalaszt.Enabled = true;
  106. poziciosor.Enabled = true;
  107. poziciooszlop.Enabled = true;
  108. //rajzolas.Enabled = true;
  109. }
  110. private void szinvalaszt_SelectedIndexChanged(object sender, EventArgs e)
  111. {
  112. alakzatellenorzes();
  113. }
  114. private void alakzatellenorzes()
  115. {
  116. bool rajzsorjo = true;
  117. bool rajzoszlopjo = true;
  118. bool alakzat = false;
  119. bool szin = false;
  120. int sor = 0;
  121. int oszlop = 0;
  122.  
  123. try { sor = Convert.ToInt32(poziciosor.Text.Trim()); }
  124. catch { rajzsorjo = false; }
  125. if (!((rajzsorjo) && ((sor >= 1) && (sor <= Convert.ToInt32(generalsor.Text))))) { rajzsorjo = false; }
  126.  
  127. try {oszlop = Convert.ToInt32(poziciooszlop.Text.Trim());}
  128. catch {rajzoszlopjo = false;}
  129. if (!((rajzoszlopjo) && ((oszlop >= 1) && (oszlop <= Convert.ToInt32(generaloszlop.Text))))) { rajzoszlopjo = false; }
  130.  
  131. if ((korvalaszt.Checked) || (negyzetvalaszt.Checked)) { alakzat = true; }
  132.  
  133. if (szinvalaszt.SelectedIndex >= 0 && szinvalaszt.SelectedIndex <= 7) { szin = true; }
  134.  
  135. //if (szin)
  136. //{
  137. // MessageBox.Show("Jó a szín!!!!");
  138. //}
  139. //else { MessageBox.Show("Nem jó az indexes"); }
  140. if (rajzsorjo && rajzoszlopjo && alakzat && szin)
  141. {rajzolas.Enabled = true;} else { rajzolas.Enabled = false; }
  142. }
  143. private void rajzolas_Click(object sender, EventArgs e)
  144. {
  145. int sorszam = Convert.ToInt32(poziciosor.Text) - 1;
  146. int oszlopszam = Convert.ToInt32(poziciooszlop.Text) - 1;
  147. if (szinvalaszt.SelectedIndex <= 7 && szinvalaszt.SelectedIndex >= 0)
  148. {
  149. if (szinek[szinvalaszt.SelectedIndex] == tabla[oszlopszam, sorszam].BackColor)
  150. {
  151. MessageBox.Show("A rajzolásra szánt alakzat, nem lehet azonos a mező színével!");
  152. }
  153. else
  154. {
  155. Bitmap rajzolni = new Bitmap(50, 50);
  156. tabla[oszlopszam, sorszam].Image = rajzolni;
  157. Graphics g;
  158. g = Graphics.FromImage(rajzolni);
  159. SolidBrush eszk = new SolidBrush(szinek[szinvalaszt.SelectedIndex]);
  160. if (negyzetvalaszt.Checked) g.FillRectangle(eszk, 10, 10, 40, 40);
  161. else g.FillEllipse(eszk, 10, 10, 40, 40);
  162. g.Dispose();
  163. }
  164. }
  165. else
  166. {
  167. MessageBox.Show("Kérlek a listában megadott színek közül válassz!");
  168. }
  169. }
  170. private void korvalaszt_CheckedChanged(object sender, EventArgs e)
  171. {
  172. alakzatellenorzes();
  173. }
  174. private void negyzetvalaszt_CheckedChanged(object sender, EventArgs e)
  175. {
  176. alakzatellenorzes();
  177. }
  178. private void poziciosor_TextChanged(object sender, EventArgs e)
  179. {
  180. alakzatellenorzes();
  181. }
  182. private void poziciooszlop_TextChanged(object sender, EventArgs e)
  183. {
  184. alakzatellenorzes();
  185. }
  186. }
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement