Advertisement
Guest User

Kinderkacke

a guest
Jan 18th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.99 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Data;
  8. using System.Windows.Documents;
  9. using System.Windows.Input;
  10. using System.Windows.Media;
  11. using System.Windows.Media.Imaging;
  12. using System.Windows.Navigation;
  13. using System.Windows.Shapes;
  14.  
  15. namespace Vier_Gewinnt
  16. {
  17. /// <summary>
  18. /// Interaktionslogik für MainWindow.xaml
  19. /// </summary>
  20. public partial class MainWindow : Window
  21. {
  22.  
  23. Line[] Linie = new Line[8];
  24. Ellipse kugel = new Ellipse();
  25. Ellipse[,] ellipse1 = new Ellipse[6, 7];
  26.  
  27. int[,] m_status = new int[6, 7];
  28. int m_anzSpalten;
  29. int m_anzZeilen;
  30. double Spaltenbreite;
  31. double Zeilenbreite;
  32. int m_pos;
  33. int p = 1;
  34.  
  35. public MainWindow()
  36. {
  37. InitializeComponent();
  38. m_anzSpalten = 7;
  39. m_anzZeilen = 6;
  40. m_pos = -1;
  41. m_status[1, 2] = 1;
  42. }
  43.  
  44. private void Linienzeichnen()
  45. {
  46. double faktor;
  47.  
  48. myCanv.Children.Clear();
  49. Spaltenbreite = myCanv.ActualWidth / (m_anzSpalten + 2.5);
  50. Zeilenbreite = myCanv.ActualHeight / (m_anzZeilen);
  51.  
  52. for (int i = 0; i <= (m_anzSpalten); i++)
  53. {
  54. faktor = i + 2;
  55. Linie[i] = new Line();
  56. Linie[i].Stroke = Brushes.Black;
  57. Linie[i].StrokeThickness = 2;
  58. Linie[i].X1 = Spaltenbreite * faktor;
  59. Linie[i].Y1 = myCanv.ActualHeight * 0.3;
  60. Linie[i].X2 = Linie[i].X1;
  61. Linie[i].Y2 = myCanv.ActualHeight;
  62.  
  63. myCanv.Children.Add(Linie[i]);
  64. }
  65. }
  66.  
  67.  
  68. private void Kugelzeichnen()
  69. {
  70. myCanv.Children.Clear();
  71. Linienzeichnen();
  72.  
  73. double b, h;
  74. double cx = myCanv.ActualWidth;
  75. double cy = myCanv.ActualHeight;
  76.  
  77. b = Spaltenbreite;
  78. h = myCanv.ActualHeight * 0.7 / m_anzZeilen;
  79.  
  80. kugel.Fill = Brushes.Red;
  81. kugel.Stroke = Brushes.Black;
  82.  
  83. if ( b < h)
  84. {
  85. kugel.Width = b;
  86. kugel.Height = b;
  87. }
  88. else
  89. {
  90. kugel.Width = h;
  91. kugel.Height = h;
  92. }
  93.  
  94. if(m_pos <0)
  95. {
  96. Canvas.SetTop(kugel, (cy * 0.3) - kugel.Height);
  97. Canvas.SetLeft(kugel, 0);
  98. }
  99. else
  100. {
  101. Canvas.SetLeft(kugel, ((m_pos + 2) * Spaltenbreite + ((Spaltenbreite - kugel.Width) /2)));
  102. Canvas.SetTop(kugel, (cy * 0.3) - kugel.Height);
  103. }
  104.  
  105. myCanv.Children.Add(kugel);
  106.  
  107.  
  108. int Zeile, Spalte;
  109.  
  110. for (Zeile = 0; Zeile < m_anzZeilen; Zeile++)
  111. {
  112. for (Spalte = 0; Spalte < m_anzSpalten; Spalte++)
  113. {
  114. ellipse1[Zeile, Spalte] = new Ellipse();
  115. myCanv.Children.Add(ellipse1[Zeile, Spalte]);
  116. if (b < h)
  117. {
  118. ellipse1[Zeile, Spalte].Width = b;
  119. ellipse1[Zeile, Spalte].Height = b;
  120. }
  121. else
  122. {
  123. ellipse1[Zeile, Spalte].Width = h;
  124. ellipse1[Zeile, Spalte].Height = h;
  125. }
  126.  
  127. Canvas.SetLeft(ellipse1[Zeile, Spalte], ((Spalte + 2)*Spaltenbreite + ((Spaltenbreite - ellipse1[Zeile, Spalte].Width) /2)));
  128. Canvas.SetTop(ellipse1[Zeile, Spalte], Zeile* Zeilenbreite);
  129.  
  130. if (m_status[Zeile, Spalte]==1)
  131. {
  132. ellipse1[Zeile, Spalte].Fill = Brushes.Red;
  133. }
  134. else if(m_status[Zeile, Spalte]==2)
  135. {
  136. ellipse1[Zeile, Spalte].Fill = Brushes.Blue;
  137. }
  138. }
  139. }
  140.  
  141. }
  142.  
  143. private void Window_Loaded(object sender, RoutedEventArgs e)
  144. {
  145. Kugelzeichnen();
  146. }
  147.  
  148. private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
  149. {
  150. Kugelzeichnen();
  151. }
  152.  
  153. private void Window_KeyDown(object sender, KeyEventArgs e)
  154. {
  155. if (e.Key == Key.Right)
  156. {
  157. if (m_pos < (m_anzSpalten - 1))
  158. {
  159. m_pos++;
  160.  
  161. }
  162. }
  163. else if (e.Key == Key.Left)
  164. {
  165. if (m_pos > 0)
  166. {
  167. m_pos--;
  168. }
  169. }
  170.  
  171. if (e.Key == Key.Down)
  172. {
  173. if (p == 1)
  174. {
  175. for (int y = m_anzZeilen - 1; y > 1; y--)
  176. {
  177. if (m_status[y, m_pos] == 0)
  178. {
  179. p++;
  180. m_status[y, m_pos] = 1;
  181. ellipse1[y, m_pos].Visibility = Visibility.Visible;
  182. break;
  183. }
  184. }
  185. }
  186. else if (p == 2)
  187. {
  188. for (int y = m_anzZeilen - 1; y > 1; y--)
  189. {
  190. if (m_status[y, m_pos] == 0)
  191. {
  192. p--;
  193. m_status[y, m_pos] = 2;
  194. ellipse1[y, m_pos].Visibility = Visibility.Visible;
  195. break;
  196. }
  197. }
  198. }
  199.  
  200.  
  201. }
  202. Kugelzeichnen();
  203. }
  204.  
  205.  
  206. }
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement