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
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
Comment