UML діаграми станів. 14 страница
Frame.GoBack(); } } }
Клас OnePlayer.xaml.cs
using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.Storage; using Windows.UI.Popups; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkID=390556
namespace Quiz { /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class OnePlayer: Page { List<Classes.Items> items; int randNumb; int countTrueUnsver = 0; string category;
public OnePlayer() { this.InitializeComponent(); }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name=«e»>Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { category = e.Parameter.ToString(); }
private void Gen_Quest() Продовження дод. В
{ Random rand = new Random(); randNumb = rand.Next(0, items.Count);
txtQuestion.Text = items[randNumb].question; btnUnsver1Text.Text = items[randNumb].unsver1; btnUnsver2Text.Text = items[randNumb].unsver2; btnUnsver3Text.Text = items[randNumb].unsver3; btnUnsver4Text.Text = items[randNumb].unsver4; }
private async void Page_Loaded(object sender, RoutedEventArgs e) { using (HttpClient httpClient = new HttpClient()) { HttpRequestMessage request = new HttpRequestMessage(); httpClient.BaseAddress = new Uri(«https://api.parse.com/1/classes/» + category); request.Method = new HttpMethod(«GET»); request.Headers.Add(«X-Parse-Application-Id», «q8r9XYoXbEw1kXsWIXbyCNQm9ylcWfAS0fqlWWNx»);
request.Headers.Add(«X-Parse-REST-API-Key», «2nke5LSbXQmTiA9FaVytlBihjOOz4fPcoxjEHlee»);
var response = await httpClient.SendAsync(request); var text = await response.Content.ReadAsStringAsync();
System.Diagnostics.Debug.WriteLine(text);
JObject results = JObject.Parse(text); items = new List<Classes.Items>(); foreach (var result in results[«results»]) { items.Add(new Classes.Items() { question = (string)result[«Question»], unsver1 = (string)result[«unsver1»], unsver2 = (string)result[«unsver2»], unsver3 = (string)result[«unsver3»], unsver4 = (string)result[«unsver4»], trueUnsver = (string)result[«trueUnsver»] }); //item.Add(new Item() { driveId = (string)result[«parentReference»][«driveId»], id = (string)result[«parentReference»][«id»], path = (string)result[«parentReference»][«path»] }); }
Gen_Quest(); } }
private async void btnUnsverText_Tapped(object sender, TappedRoutedEventArgs e) { string unsver = (sender as TextBlock).Text.ToString();
if (unsver == items[randNumb].trueUnsver) { MessageDialog md1 = new MessageDialog(«Это был правильный ответ!»); await md1.ShowAsync();
countTrueUnsver++; txtScore.Text = countTrueUnsver.ToString(); Продовження дод. В
Gen_Quest(); } else { MessageDialog md1 = new MessageDialog(«Вы отетили не верно! Правильный ответ: «+ items[randNumb].trueUnsver); await md1.ShowAsync();
MessageDialog md = new MessageDialog(«Игра окночена! Сохранить результат в рекордах?»); UICommand cancelBtn = new UICommand(«Нет»); cancelBtn.Invoked = cancelBtn_CLick; UICommand yesBtn = new UICommand(«Да»); yesBtn.Invoked = yesBtn_CLick;
md.Commands.Add(cancelBtn); md.Commands.Add(yesBtn);
await md.ShowAsync(); } }
private async void yesBtn_CLick(IUICommand command) {
HttpClient httpClient = new HttpClient(); HttpRequestMessage request = new HttpRequestMessage(); httpClient.BaseAddress = new Uri(«https://api.parse.com/1/classes/Record»); httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(«application/json»));
string data = «{\»Name\»:\»«+ ApplicationData.Current.LocalSettings.Values[«UserName»].ToString() + «\»,\»Score\»:» + countTrueUnsver + «,\»Mode\»:\»4btn\»}»;
request.Headers.Add(«X-Parse-Application-Id», «q8r9XYoXbEw1kXsWIXbyCNQm9ylcWfAS0fqlWWNx»); request.Headers.Add(«X-Parse-REST-API-Key», «2nke5LSbXQmTiA9FaVytlBihjOOz4fPcoxjEHlee»);
request.Method = new HttpMethod(«POST»);
// var response = await httpClient.PostAsync(request, new StringContent(data, System.Text.Encoding.UTF8, «application/json»)); request.Content = new StringContent(data, System.Text.Encoding.UTF8, «application/json»); await httpClient.SendAsync(request);
//var text = await response.Content.ReadAsStringAsync();
//Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; //Windows.Storage.StorageFile sampleFile = await storageFolder.GetFileAsync(«Records.xml»); //string text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);
//string newText = text.Replace(«</records>«, «\n<record>« Продовження дод. В
// + «</name>« // + «\n<score>« // + countTrueUnsver // + «</score>« // + «\n</record>« // + «\n</records>«);
//StorageFile sampleFile2 = await storageFolder.CreateFileAsync(«Records.xml», CreationCollisionOption.OpenIfExists); //await Windows.Storage.FileIO.WriteTextAsync(sampleFile2, newText);
//System.Diagnostics.Debug.WriteLine(newText);
MessageDialog md = new MessageDialog(«Рекорд успешно сохранен!»); await md.ShowAsync(); Frame.GoBack(); }
private void cancelBtn_CLick(IUICommand command) { Frame.GoBack(); } } }
Клас Menu.xaml.cs
using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.Storage; using Windows.UI.Popups; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkID=390556
namespace Quiz { /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class Menu: Page { List<Classes.Items> items; Продовження дод. В
bool playerAdverPanelStatus = false; string category = null;
public Menu() { this.InitializeComponent(); }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name=«e»>Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) {
}
private void goBack_click(object sender, TappedRoutedEventArgs e) { Frame.GoBack(); }
private void Page_Loaded(object sender, RoutedEventArgs e) { txtPlayerName.Text = ApplicationData.Current.LocalSettings.Values[«UserName»].ToString(); comboBox.SelectedItem = «sda»; }
private void btnOnePlayer_Click(object sender, TappedRoutedEventArgs e) { if (playerAdverPanelStatus == false) { advencedPanelForOnePlayer.Visibility = Windows.UI.Xaml.Visibility.Visible; playerAdverPanelStatus = true; } else { advencedPanelForOnePlayer.Visibility = Windows.UI.Xaml.Visibility.Collapsed; playerAdverPanelStatus = false; } }
private async void btnChooseUnsver_Click(object sender, TappedRoutedEventArgs e) { try { if (!string.IsNullOrEmpty(comboBox.SelectedItem.ToString())) { Frame.Navigate(typeof(OnePlayer), category); } } catch { MessageDialog md = new MessageDialog(«Пожалуйста, выберите категорию!»); md.ShowAsync(); Продовження дод. В
} }
private void btnRecord_Click(object sender, TappedRoutedEventArgs e) { Frame.Navigate(typeof(Records)); } private async void btnYourUnsver_Click(object sender, TappedRoutedEventArgs e) { try { if (!string.IsNullOrEmpty(comboBox.SelectedItem.ToString())) { Frame.Navigate(typeof(OnePlayer2), category); } } catch { MessageDialog md = new MessageDialog(«Пожалуйста, выберите категорию!»); md.ShowAsync(); } }
private async void btnTwoPlayer_Click(object sender, TappedRoutedEventArgs e) { try { if (!string.IsNullOrEmpty(comboBox.SelectedItem.ToString())) { Frame.Navigate(typeof(TwoPlayer), category); } } catch { MessageDialog md = new MessageDialog(«Пожалуйста, выберите категорию!»); md.ShowAsync(); } }
private void cmbBoxTime_SelectionChanged(object sender, SelectionChangedEventArgs e) { switch(((ComboBoxItem)comboBox.SelectedItem).Content.ToString()) { case «Спорт»: category = «Sport»; break; case «Животные»: category = «Animals»; break; } } } } Клас MainPage.xaml.cs
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using System.Xml.Linq; Продовження дод. В
using Windows.Foundation; using Windows.Foundation.Collections; using Windows.Phone.UI.Input; using Windows.Storage; using Windows.UI.Popups; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=391641
namespace Quiz { /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class MainPage: Page { Classes.User[] com;
public MainPage() { this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
HardwareButtons.BackPressed += HardwareButtons_BackPressed; hideStatusBar(); } async void hideStatusBar() { await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync(); }
void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { if (Frame.CanGoBack) { e.Handled = true; Frame.GoBack(); } else Application.Current.Exit(); } /// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name=«e»>Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { // TODO: Prepare page for display here.
// TODO: If your application contains multiple pages, ensure that you are Продовження дод. В
// handling the hardware Back button by registering for the // Windows.Phone.UI.Input.HardwareButtons.BackPressed event. // If you are using the NavigationHelper provided by some templates, // this event is handled for you. }
private async void Page_Loaded(object sender, RoutedEventArgs e) { try { StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder; StorageFile sampleFile2 = await folder.CreateFileAsync(«Users.xml», CreationCollisionOption.FailIfExists); string text = «<?xml version=\»1.0\» encoding=\»utf-8\»?>« + «\n<users>« + «\n</users>«; await Windows.Storage.FileIO.WriteTextAsync(sampleFile2, text.ToString()); } catch {
}
Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; Windows.Storage.StorageFile sampleFile = await storageFolder.GetFileAsync(«Users.xml»); string users_text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);
XDocument xDoc = XDocument.Parse(users_text);
com = xDoc.Root.Elements(«user»).Select(p => { return new Classes.User() { login = p.Element(«login»).Value, pass = p.Element(«pass»).Value }; }).ToArray();
}
private void btnRegist_Click(object sender, RoutedEventArgs e) { Frame.Navigate(typeof(Registration)); }
private async void btnAouth_Click(object sender, RoutedEventArgs e) { MessageDialog md;
if (string.IsNullOrWhiteSpace(txtLogin.Text) || string.IsNullOrWhiteSpace(txtPass.Password)) { Продовження дод. В
md = new MessageDialog(«Пожалуйста заполните все поля!»); await md.ShowAsync(); return; }
for (int i = 0; i < com.Length; i++) { if (string.Equals(txtLogin.Text, com[i].login, StringComparison.CurrentCultureIgnoreCase) && string.Equals(txtPass.Password, com[i].pass, StringComparison.CurrentCultureIgnoreCase)) { ApplicationData.Current.LocalSettings.Values[«UserName»] = com[i].login; Frame.Navigate(typeof(Menu)); return; } }
md = new MessageDialog(«Неправильный логин или пароль!»); await md.ShowAsync(); } } }
Клас Items.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Quiz.Classes { public class Items { public string question { get; set; } public string unsver1 { get; set; } public string unsver2 { get; set; } public string unsver3 { get; set; } public string unsver4 { get; set; } public string trueUnsver { get; set; } } }
Клас Record.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Quiz.Classes { public class Record { Закінчення дод. В
public string name { get; set; } public string score { get; set; } public string mode { get; set; } } }
Клас User.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Quiz.Classes { public class User { public string login { get; set; } public string pass { get; set; } } }
|