95 lines
2.5 KiB
C#
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);
|
|
}
|
|
}
|
|
} |