Загрузка данных
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace WpfApp1
{
public partial class MainWindow : Window
{
int Numb = 1;
int score = 0;
bool hint50 = true;
bool hintHall = true;
bool hintFriend = true;
List<AfQ> qwest = new List<AfQ>();
Random rnd = new Random();
public MainWindow()
{
InitializeComponent();
qwest = AfQ.GetQuestions();
UpdateQuestion();
}
private void AnswerForQuestion(object sender, RoutedEventArgs e)
{
var q = qwest.Where(m => m.Number == Numb).FirstOrDefault();
string selected = "";
if (Answer1.IsChecked == true) selected = Answer1.Content.ToString();
if (Answer2.IsChecked == true) selected = Answer2.Content.ToString();
if (Answer3.IsChecked == true) selected = Answer3.Content.ToString();
if (Answer4.IsChecked == true) selected = Answer4.Content.ToString();
if (selected == "")
{
MessageBox.Show("Выберите ответ!");
return;
}
if (selected == q.RightAnswer)
{
score += q.Price;
MessageBox.Show("Правильно! +" + q.Price);
Numb++;
if (Numb > qwest.Count)
{
MessageBox.Show("Победа! Ваш счет: " + score);
Close();
}
else
{
UpdateQuestion();
}
}
else
{
MessageBox.Show("Неправильно! Итог: " + score);
Close();
}
}
// 50/50 (рис.1)
private void Button_Click_50(object sender, RoutedEventArgs e)
{
if (hint50 == true)
{
string a1 = qwest.Where(m => m.Number == Numb)
.Select(m => m.FiftyFiftyAnswer1).FirstOrDefault();
string a2 = qwest.Where(m => m.Number == Numb)
.Select(m => m.FiftyFiftyAnswer2).FirstOrDefault();
if (Answer1.Content.ToString() != a1 && Answer1.Content.ToString() != a2)
Answer1.Visibility = Visibility.Hidden;
if (Answer2.Content.ToString() != a1 && Answer2.Content.ToString() != a2)
Answer2.Visibility = Visibility.Hidden;
if (Answer3.Content.ToString() != a1 && Answer3.Content.ToString() != a2)
Answer3.Visibility = Visibility.Hidden;
if (Answer4.Content.ToString() != a1 && Answer4.Content.ToString() != a2)
Answer4.Visibility = Visibility.Hidden;
hint50 = false;
Hint50.Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
}
else
{
MessageBox.Show("ПОДСКАЗКА УЖЕ ИСПОЛЬЗОВАНА!", "ОШИБКА!");
}
}
// звонок другу (рис.2)
private void Button_Click_2(object sender, RoutedEventArgs e)
{
if (hintFriend == true)
{
hintFriend = false;
HintFriend.Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
var q = qwest.Where(m => m.Number == Numb).FirstOrDefault();
MessageBox.Show("Друг думает: " + q.RightAnswer);
}
else
{
MessageBox.Show("ПОДСКАЗКА УЖЕ ИСПОЛЬЗОВАНА!", "ОШИБКА!");
}
}
// помощь зала (упрощённая с процентами)
private void Button_Click_Hall(object sender, RoutedEventArgs e)
{
if (hintHall == true)
{
hintHall = false;
HintHall.Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
var q = qwest.Where(m => m.Number == Numb).FirstOrDefault();
int correct = rnd.Next(60, 80);
int w1 = rnd.Next(0, 100 - correct);
int w2 = rnd.Next(0, 100 - correct - w1);
int w3 = 100 - correct - w1 - w2;
string msg =
q.Answer1 + " — " + (q.Answer1 == q.RightAnswer ? correct : w1) + "%\n" +
q.Answer2 + " — " + (q.Answer2 == q.RightAnswer ? correct : w2) + "%\n" +
q.Answer3 + " — " + (q.Answer3 == q.RightAnswer ? correct : w3) + "%\n" +
q.Answer4 + " — " + (q.Answer4 == q.RightAnswer ? correct : rnd.Next(0, 20)) + "%";
MessageBox.Show(msg, "Мнение зала");
}
else
{
MessageBox.Show("ПОДСКАЗКА УЖЕ ИСПОЛЬЗОВАНА!", "ОШИБКА!");
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ResizeAnswers();
}
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
ResizeAnswers();
}
private void ResizeAnswers()
{
double windowWidth = this.ActualWidth;
double answerWidth = (windowWidth - 80) / 2;
Answer1.Width = answerWidth;
Answer2.Width = answerWidth;
Answer3.Width = answerWidth;
Answer4.Width = answerWidth;
}
// РИСУНОК 4 — В КОНЦЕ (как ты просил)
private void UpdateQuestion()
{
QuestionNumber.Text = "Вопрос № " + Numb;
QuestionText.Text = qwest.Where(m => m.Number == Numb)
.Select(m => m.Question).FirstOrDefault();
Answer1.Content = qwest.Where(m => m.Number == Numb)
.Select(m => m.Answer1).FirstOrDefault();
Answer2.Content = qwest.Where(m => m.Number == Numb)
.Select(m => m.Answer2).FirstOrDefault();
Answer3.Content = qwest.Where(m => m.Number == Numb)
.Select(m => m.Answer3).FirstOrDefault();
Answer4.Content = qwest.Where(m => m.Number == Numb)
.Select(m => m.Answer4).FirstOrDefault();
ScoreText.Text = "Очки: " + score + " | Цена: " +
qwest.Where(m => m.Number == Numb)
.Select(m => m.Price).FirstOrDefault();
Answer1.IsChecked = false;
Answer2.IsChecked = false;
Answer3.IsChecked = false;
Answer4.IsChecked = false;
Answer1.Visibility = Visibility.Visible;
Answer2.Visibility = Visibility.Visible;
Answer3.Visibility = Visibility.Visible;
Answer4.Visibility = Visibility.Visible;
}
}
}