Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- namespace Vier_Gewinnt
- {
- /// <summary>
- /// Interaktionslogik für MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- Line[] Linie = new Line[8];
- Ellipse kugel = new Ellipse();
- Ellipse[,] ellipse1 = new Ellipse[6, 7];
- int[,] m_status = new int[6, 7];
- int m_anzSpalten;
- int m_anzZeilen;
- double Spaltenbreite;
- double Zeilenbreite;
- int m_pos;
- int p = 1;
- public MainWindow()
- {
- InitializeComponent();
- m_anzSpalten = 7;
- m_anzZeilen = 6;
- m_pos = -1;
- m_status[1, 2] = 1;
- }
- private void Linienzeichnen()
- {
- double faktor;
- myCanv.Children.Clear();
- Spaltenbreite = myCanv.ActualWidth / (m_anzSpalten + 2.5);
- Zeilenbreite = myCanv.ActualHeight / (m_anzZeilen);
- for (int i = 0; i <= (m_anzSpalten); i++)
- {
- faktor = i + 2;
- Linie[i] = new Line();
- Linie[i].Stroke = Brushes.Black;
- Linie[i].StrokeThickness = 2;
- Linie[i].X1 = Spaltenbreite * faktor;
- Linie[i].Y1 = myCanv.ActualHeight * 0.3;
- Linie[i].X2 = Linie[i].X1;
- Linie[i].Y2 = myCanv.ActualHeight;
- myCanv.Children.Add(Linie[i]);
- }
- }
- private void Kugelzeichnen()
- {
- myCanv.Children.Clear();
- Linienzeichnen();
- double b, h;
- double cx = myCanv.ActualWidth;
- double cy = myCanv.ActualHeight;
- b = Spaltenbreite;
- h = myCanv.ActualHeight * 0.7 / m_anzZeilen;
- kugel.Fill = Brushes.Red;
- kugel.Stroke = Brushes.Black;
- if ( b < h)
- {
- kugel.Width = b;
- kugel.Height = b;
- }
- else
- {
- kugel.Width = h;
- kugel.Height = h;
- }
- if(m_pos <0)
- {
- Canvas.SetTop(kugel, (cy * 0.3) - kugel.Height);
- Canvas.SetLeft(kugel, 0);
- }
- else
- {
- Canvas.SetLeft(kugel, ((m_pos + 2) * Spaltenbreite + ((Spaltenbreite - kugel.Width) /2)));
- Canvas.SetTop(kugel, (cy * 0.3) - kugel.Height);
- }
- myCanv.Children.Add(kugel);
- int Zeile, Spalte;
- for (Zeile = 0; Zeile < m_anzZeilen; Zeile++)
- {
- for (Spalte = 0; Spalte < m_anzSpalten; Spalte++)
- {
- ellipse1[Zeile, Spalte] = new Ellipse();
- myCanv.Children.Add(ellipse1[Zeile, Spalte]);
- if (b < h)
- {
- ellipse1[Zeile, Spalte].Width = b;
- ellipse1[Zeile, Spalte].Height = b;
- }
- else
- {
- ellipse1[Zeile, Spalte].Width = h;
- ellipse1[Zeile, Spalte].Height = h;
- }
- Canvas.SetLeft(ellipse1[Zeile, Spalte], ((Spalte + 2)*Spaltenbreite + ((Spaltenbreite - ellipse1[Zeile, Spalte].Width) /2)));
- Canvas.SetTop(ellipse1[Zeile, Spalte], Zeile* Zeilenbreite);
- if (m_status[Zeile, Spalte]==1)
- {
- ellipse1[Zeile, Spalte].Fill = Brushes.Red;
- }
- else if(m_status[Zeile, Spalte]==2)
- {
- ellipse1[Zeile, Spalte].Fill = Brushes.Blue;
- }
- }
- }
- }
- private void Window_Loaded(object sender, RoutedEventArgs e)
- {
- Kugelzeichnen();
- }
- private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
- {
- Kugelzeichnen();
- }
- private void Window_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.Key == Key.Right)
- {
- if (m_pos < (m_anzSpalten - 1))
- {
- m_pos++;
- }
- }
- else if (e.Key == Key.Left)
- {
- if (m_pos > 0)
- {
- m_pos--;
- }
- }
- if (e.Key == Key.Down)
- {
- if (p == 1)
- {
- for (int y = m_anzZeilen - 1; y > 1; y--)
- {
- if (m_status[y, m_pos] == 0)
- {
- p++;
- m_status[y, m_pos] = 1;
- ellipse1[y, m_pos].Visibility = Visibility.Visible;
- break;
- }
- }
- }
- else if (p == 2)
- {
- for (int y = m_anzZeilen - 1; y > 1; y--)
- {
- if (m_status[y, m_pos] == 0)
- {
- p--;
- m_status[y, m_pos] = 2;
- ellipse1[y, m_pos].Visibility = Visibility.Visible;
- break;
- }
- }
- }
- }
- Kugelzeichnen();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement