Sudoku/Sudoku_-_View/Views/MainWindow.xaml.cs

95 lines
2.5 KiB
C#

using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System;
using SudokuWeek4.ViewModels;
using System.Windows.Input;
namespace SudokuWeek4
{
public partial class MainWindow : Window
{
private int _boardSize = 3;
private Boolean _cheatMode = false;
private Boolean _sudokuDLL = true;
private MainViewModel _mainViewModel;
public MainWindow()
{
InitializeComponent();
_mainViewModel = new MainViewModel(mainGrid);
Reset(_boardSize);
}
// Reset the gameField
private void Reset(int boardSize) {
_mainViewModel.Reset(boardSize);
}
// Save the game
private void MenuItem_Save(object sender, RoutedEventArgs e)
{
_mainViewModel.Save();
}
// Load the game
private void MenuItem_Load(object sender, RoutedEventArgs e)
{
_mainViewModel.Load();
}
// Reset the gameField
private void MenuItem_ResetBoard(object sender, RoutedEventArgs e)
{
Reset(int.Parse(((MenuItem)sender).Tag.ToString()));
}
// Get a hint
private void MenuItem_Hint(object sender, RoutedEventArgs e)
{
_mainViewModel.ShowHint();
}
// Enable the sudoku DLL
private void MenuItem_EnableDLL(object sender, RoutedEventArgs e)
{
_mainViewModel.EnableDLL(_sudokuDLL =! _sudokuDLL);
}
// Solve the sudoku puzzle
private void MenuItem_Solve(object sender, RoutedEventArgs e)
{
_mainViewModel.SolvePuzzle();
}
// Solve the sudoku puzzle partially
private void MenuItem_SolvePartially(object sender, RoutedEventArgs e)
{
_mainViewModel.SolvePuzzle(2);
}
// Cheat
private void MenuItem_CheatMode(object sender, RoutedEventArgs e)
{
_mainViewModel.Cheat(_cheatMode =! _cheatMode);
}
// Exit the application
private void MenuItem_Quit(object sender, RoutedEventArgs e)
{
Application.Current.Shutdown(1);
}
// This method will check what to do if a key is pressed
private void mainGrid_PreviewKeyDown(object sender, KeyEventArgs key)
{
_mainViewModel.keyPressed(key);
}
private void Window_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs click)
{
_mainViewModel.mouseClicked(sender, click);
}
}
}