Initial commit
This commit is contained in:
30
Complete/Views/MainWindow.xaml
Normal file
30
Complete/Views/MainWindow.xaml
Normal file
@@ -0,0 +1,30 @@
|
||||
<Window x:Class="SudokuWeek4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Sudoku="clr-namespace:SudokuWeek4"
|
||||
Title="Week4 - Sudoku" PreviewKeyDown="mainGrid_PreviewKeyDown" PreviewMouseLeftButtonUp="Window_PreviewMouseLeftButtonUp">
|
||||
<DockPanel>
|
||||
<Menu DockPanel.Dock="Top" KeyboardNavigation.DirectionalNavigation="None">
|
||||
<MenuItem Header="Game">
|
||||
<MenuItem Header="Enable Sudoku DLL" Click="MenuItem_EnableDLL" />
|
||||
<MenuItem Header="2x2" Tag="2" Click="MenuItem_ResetBoard" />
|
||||
<MenuItem Header="3x3" Tag="3" Click="MenuItem_ResetBoard" />
|
||||
<MenuItem Header="4x4" Tag="4" Click="MenuItem_ResetBoard" />
|
||||
<MenuItem Header="Enable/Disable CheatMode" Click="MenuItem_CheatMode" />
|
||||
<MenuItem Header="Save game" Click="MenuItem_Save" />
|
||||
<MenuItem Header="Load game" Click="MenuItem_Load" />
|
||||
<MenuItem Header="Quit game" Click="MenuItem_Quit" />
|
||||
</MenuItem>
|
||||
<Separator/>
|
||||
<Separator/>
|
||||
<MenuItem Header="Hint" Click="MenuItem_Hint" />
|
||||
<Separator/>
|
||||
<Separator/>
|
||||
<MenuItem Header="Lazymode">
|
||||
<MenuItem Header="Solve (Partially)" Click="MenuItem_SolvePartially" />
|
||||
<MenuItem Header="Solve (Completely)" Click="MenuItem_Solve" />
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
<Border BorderBrush="Black" BorderThickness="3" Margin="5">
|
||||
<UniformGrid Name="mainGrid" />
|
||||
</Border>
|
||||
</DockPanel>
|
||||
</Window>
|
95
Complete/Views/MainWindow.xaml.cs
Normal file
95
Complete/Views/MainWindow.xaml.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user