Announcement

Collapse
No announcement yet.

Puzzel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Puzzel

    Hallo liebes Team

    kann mir jemand bitte helfen ? habe folgendes Programm in C#. Meine Entwicklungsumgebung ist Visual Studio 2015 Comunity.
    MainWindow.xaml.cs:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    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 WpfApplication1
    {
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
    Random random = new Random();
    Button[] buttons;
    int emptyButton;

    public MainWindow()
    {
    InitializeComponent();

    buttons = new Button[] { button1, button2, button4,
    button5, button3, button7,
    button8, button9, button11,
    button12, button13, button14,
    button16, button6, button10,
    button15 };

    newGame();

    }

    void newGame()
    {
    for (int i = 0; i < buttons.Length; i++)
    {
    buttons[i].Content = null;
    }

    for (int i = 0; i < buttons.Length; i++)
    {
    int z = random.Next(16 - i);
    int position = -1;

    for (int k = 0; k <= z; k++)
    {
    position++;
    while(buttons[position].Content != null)
    {
    position++;
    }
    }

    if(i < 15)
    {
    buttons[position].Content = i + 1;
    buttons[position].IsEnabled = true;
    }
    else
    {
    buttons[position].Content = "x";
    buttons[position].IsEnabled = false;
    emptyButton = position;
    }
    }
    }

    private void button_click(object sender, RoutedEventArgs e)
    {
    //welcher Knopf wurde gedrückt/ Button finden
    int buttonNumber = -1;
    for (int i = 0; i < buttons.Length; i++)
    {
    if(buttons[i] == sender)
    {
    buttonNumber = i;
    break;
    }
    }
    //Nachbar vom Feld?
    if (buttonNumber % 4 > 0 && buttonNumber == emptyButton +1
    || buttonNumber %4 <3 && buttonNumber == emptyButton -1
    || buttonNumber == emptyButton +4
    || buttonNumber == emptyButton -4)
    {
    object c = buttons[emptyButton].Content;
    buttons[emptyButton].Content =
    buttons[buttonNumber].Content;
    buttons[buttonNumber].Content = c;
    buttons[emptyButton].IsEnabled = true;
    buttons[buttonNumber].IsEnabled = false;

    emptyButton = buttonNumber;
    }
    else
    {
    MessageBox.Show("Verboten");
    }
    }

    }
    }

    Die Ausgabe habe ich als Anhang drangehängt. Nun mein problem:
    Wenn ich in der Ausgabe auf das Kästchen 4 oder 6 drücke soll sich die Zahl 4 oder 6 auf das Kästchen x verschieben. Ziel dieses kleinen Programmes ist solange zu spielen bis die Zahlen von 1 bis 15 in der richtigen Reihenfolge sind. Leider kann man die Zahlen 4 oder 6 nicht verschieben. Kann mir jemand helfen ?

    Liebe Grüße

    Martin
    Attached Files

  • #2
    Schon mal debuggt....
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Schon mal debuggt....

      Hallo Christian
      ja ich habe debuggt. Leider funkioniert es nicht.

      lg

      Martin

      Comment


      • #4
        Das kann nicht sein. Wenn du deine Klick-Methode debuggst musst du sehen können, warum du bei den angegebenen Werten in dem else-Zweig landest. Prüfe dann deine Variablen
        Christian

        Comment

        Working...
        X