Загрузка данных


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfApp1
{
    public class AfQ
    {
        public int Number { get; set; }
        public string Question { get; set; }

        public string Answer1 { get; set; }
        public string Answer2 { get; set; }
        public string Answer3 { get; set; }
        public string Answer4 { get; set; }

        public string RightAnswer { get; set; }

        public string FiftyFiftyAnswer1 { get; set; }
        public string FiftyFiftyAnswer2 { get; set; }
        public string FakeAnswerToKeep { get; set; }
        public int Price { get; set; }

        public static List<AfQ> GetQuestions()
        {
            return new List<AfQ>()
            {
               new AfQ { Number=1, Question ="Первый президент в России?", Answer1="Ельцин", Answer2="Сталин", Answer3="Рузвельт", Answer4="Путин", RightAnswer="Ельцин", FiftyFiftyAnswer1="Ельцин", FiftyFiftyAnswer2="Сталин", Price=16000},
               new AfQ { Number=2, Question ="Как называется самая большая планета солнечной системы?", Answer1= "Земля", Answer2="Сатурн", Answer3="Юпитер", Answer4="Уран", RightAnswer="Юпитер", FiftyFiftyAnswer1="Юпитер", FiftyFiftyAnswer2="Сатурн", Price=18000 },
               new AfQ { Number=3, Question ="Кто написал роман 'Война и Мир'?", Answer1="Толстой", Answer2="Достоевский", Answer3="Чехов", Answer4="Гоголь", RightAnswer="Толстой", FiftyFiftyAnswer1="Толстой", FiftyFiftyAnswer2="Достоевский",  Price=22000},
               new AfQ { Number=4, Question="Сколько дней в високосном году?", Answer1="364", Answer2="365", Answer3="366", Answer4="367", RightAnswer="366", FiftyFiftyAnswer1="366", FiftyFiftyAnswer2="365", Price=22000 },
               new AfQ { Number=5, Question="Кто изобрёл телефон?", Answer1="Никола Тесла", Answer2="Томас Эдисон", Answer3="Александр Белл", Answer4="Гульельмо Маркони",  RightAnswer="Александр Белл",  FiftyFiftyAnswer1="Александр Белл", FiftyFiftyAnswer2="Томас Эдисон", Price=24000 },
               new AfQ { Number=6, Question="Какой витамин вырабатывается под воздействием солнца?", Answer1="A", Answer2="B", Answer3="C", Answer4="D",  RightAnswer="D", FiftyFiftyAnswer1="D", FiftyFiftyAnswer2="C", Price=26000 },
               new AfQ { Number=7, Question="Кто является основателем Apple?", Answer1="Билл Гейтс", Answer2="Стив Джобс", Answer3="Илон Маск", Answer4="Марк Цукерберг", RightAnswer="Стив Джобс", FiftyFiftyAnswer1="Стив Джобс", FiftyFiftyAnswer2="Билл Гейтс", Price=28000 },
               new AfQ { Number=8, Question="Кто написал картину «Чёрный квадрат»?",  Answer1="Репин", Answer2="Малевич", Answer3="Кандинский", Answer4="Шагал", RightAnswer="Малевич",  FiftyFiftyAnswer1="Малевич", FiftyFiftyAnswer2="Репин", Price=30000 },
               new AfQ { Number=9,  Question="Кто основал компанию Microsoft?", Answer1="Стив Джобс", Answer2="Билл Гейтс", Answer3="Илон Маск", Answer4="Марк Цукерберг", RightAnswer="Билл Гейтс", FiftyFiftyAnswer1="Билл Гейтс", FiftyFiftyAnswer2="Стив Джобс",  Price=32000 },
               new AfQ { Number=10, Question="Сколько цветов в радуге?", Answer1="5", Answer2="6", Answer3="7", Answer4="8",  RightAnswer="7", FiftyFiftyAnswer1="7", FiftyFiftyAnswer2="6", Price=34000 },
               new AfQ { Number=11, Question="Какой газ преобладает в атмосфере Земли?", Answer1="Кислород", Answer2="Углекислый газ", Answer3="Азот", Answer4="Водород", RightAnswer="Азот", FiftyFiftyAnswer1="Азот", FiftyFiftyAnswer2="Кислород", Price=36000 },
               new AfQ { Number=12, Question="Кто нарисовал «Мону Лизу»?", Answer1="Микеланджело", Answer2="Рафаэль", Answer3="Леонардо да Винчи", Answer4="Ван Гог", RightAnswer="Леонардо да Винчи", FiftyFiftyAnswer1="Леонардо да Винчи", FiftyFiftyAnswer2="Микеланджело", Price=38000 },
               new AfQ { Number=13, Question="Сколько минут в одном часе?",  Answer1="50", Answer2="60", Answer3="70", Answer4="100", RightAnswer="60",  FiftyFiftyAnswer1="60", FiftyFiftyAnswer2="50", Price=40000 },
               new AfQ { Number=14, Question="Кто первым полетел в космос?", Answer1="Нил Армстронг", Answer2="Юрий Гагарин", Answer3="Валентина Терешкова", Answer4="Базз Олдрин", RightAnswer="Юрий Гагарин",  FiftyFiftyAnswer1="Юрий Гагарин", FiftyFiftyAnswer2="Нил Армстронг", Price=42000 },
               new AfQ { Number=15, Question="Сколько бит в одном байте?", Answer1="4", Answer2="8", Answer3="16", Answer4="32",  RightAnswer="8",  FiftyFiftyAnswer1="8", FiftyFiftyAnswer2="16", Price=44000 },
               new AfQ { Number=16, Question="Сколько игроков в футбольной команде на поле?",  Answer1="9", Answer2="10", Answer3="11", Answer4="12", RightAnswer="11", FiftyFiftyAnswer1="11", FiftyFiftyAnswer2="10", Price=46000 },
               new AfQ { Number=17,  Question="Что мы едим утром после сна?",  Answer1="Ужин", Answer2="Завтрак", Answer3="Обед", Answer4="Полдник", RightAnswer="Завтрак", FiftyFiftyAnswer1="Завтрак", FiftyFiftyAnswer2="Обед", Price=48000 },
               new AfQ { Number=18, Question="Сколько граней у куба?", Answer1="4", Answer2="6", Answer3="8", Answer4="12", RightAnswer="6", FiftyFiftyAnswer1="6", FiftyFiftyAnswer2="8", Price=50000 },
               new AfQ { Number=19, Question="Что включают, когда темно?", Answer1="Телевизор", Answer2="Свет", Answer3="Холодильник", Answer4="Чайник", RightAnswer="Свет", FiftyFiftyAnswer1="Свет", FiftyFiftyAnswer2="Телевизор",  Price=52000 },
               new AfQ { Number=20, Question="По признаку Даламбера ряд сходится, если...",   Answer1="предел отношения a_{n+1}/a_n < 1", Answer2="предел a_n = 0", Answer3="сумма частичных сумм ограничена", Answer4="члены ряда монотонны", RightAnswer="предел отношения a_{n+1}/a_n < 1",   FiftyFiftyAnswer1="предел отношения a_{n+1}/a_n < 1", FiftyFiftyAnswer2="предел a_n = 0",  Price=54000 },
               new AfQ { Number=21, Question="Столица Мексики?", Answer1="Мехико", Answer2="Гвадалахара", Answer3="Монтеррей", Answer4="Пуэбла",  RightAnswer="Мехико",  FiftyFiftyAnswer1="Мехико", FiftyFiftyAnswer2="Гвадалахара",  Price=56000 },
               new AfQ {  Number=22, Question="Столица Таиланда?", Answer1="Бангкок", Answer2="Пхукет", Answer3="Чиангмай", Answer4="Паттайя",   RightAnswer="Бангкок",  FiftyFiftyAnswer1="Бангкок", FiftyFiftyAnswer2="Пхукет",  Price=58000 },
               new AfQ {  Number=23,  Question="Столица Южной Кореи?", Answer1="Сеул", Answer2="Пусан", Answer3="Инчхон", Answer4="Тэгу", RightAnswer="Сеул",   FiftyFiftyAnswer1="Сеул", FiftyFiftyAnswer2="Пусан",  Price=60000 },
               new AfQ { Number=24,  Question="Столица Нидерландов?", Answer1="Амстердам", Answer2="Роттердам", Answer3="Гаага", Answer4="Утрехт",  RightAnswer="Амстердам", FiftyFiftyAnswer1="Амстердам", FiftyFiftyAnswer2="Роттердам", Price=62000 },
               new AfQ {  Number=25,  Question="Столица России?", Answer1="Москва", Answer2="Санкт-Петербург", Answer3="Киев", Answer4="Минск",  RightAnswer="Москва",  FiftyFiftyAnswer1="Москва", FiftyFiftyAnswer2="Санкт-Петербург", Price=62000 }
            };
        }
    }
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
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 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;
        }
        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();
            }
        }

        
        private void Button_Click_50(object sender, RoutedEventArgs e)
        {
            if (hint50 == true)
            {
                string FiftyFiftyAnswer1 = "";
                string FiftyFiftyAnswer2 = "";
                FiftyFiftyAnswer1 = qwest.Where(m => m.Number == Numb).Select(m => m.FiftyFiftyAnswer1).FirstOrDefault();

                FiftyFiftyAnswer2 = qwest.Where(m => m.Number == Numb).Select(m => m.FiftyFiftyAnswer2).FirstOrDefault();

                if (Answer1.Content.ToString() != FiftyFiftyAnswer1 && Answer1.Content.ToString() != FiftyFiftyAnswer2)
                    Answer1.Visibility = Visibility.Hidden;

                if (Answer2.Content.ToString() != FiftyFiftyAnswer1 && Answer2.Content.ToString() != FiftyFiftyAnswer2)
                    Answer2.Visibility = Visibility.Hidden;

                if (Answer3.Content.ToString() != FiftyFiftyAnswer1 && Answer3.Content.ToString() != FiftyFiftyAnswer2)
                    Answer3.Visibility = Visibility.Hidden;

                if (Answer4.Content.ToString() != FiftyFiftyAnswer1 && Answer4.Content.ToString() != FiftyFiftyAnswer2)
                    Answer4.Visibility = Visibility.Hidden;

                hint50 = false;
                Hint50.Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
            }
            else
            {
                MessageBox.Show("Подсказка уже использована!", "ошибка!");
            }
        }

        
        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 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 ;

            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;
        }
    }
}
<Window x:Class="WpfApp1.MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        FontSize="20"
        FontWeight="Bold"
        Title="Кто хочет стать миллионером?" Height="600" Width="800">

    <Grid Background="White">


        <Grid.RowDefinitions>
            <RowDefinition Height="60"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="100"/>
            <RowDefinition/>
            <RowDefinition Height="80"/>
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>


        <TextBlock Name="QuestionNumber" Grid.Column="0"
                   FontSize="24"
                   VerticalAlignment="Center"
                   Margin="10,0,10,0" Height="40"/>


        <TextBlock Name="ScoreText" Grid.Column="3"
                   Text="Очки: 0"
                   FontSize="18"
                   HorizontalAlignment="Center"
                   VerticalAlignment="Top"
                   Margin="0,14,0,0" RenderTransformOrigin="0.652,0.627" Height="43" Width="130"/>


        <Button Name="HintFriend"
                Content="Зв. другу" Grid.Column="0"
                Margin="196,14,62,14"
                Background="Lime"
                Click="Button_Click_2" Grid.ColumnSpan="2"/>

        <Button Name="Hint50"
                Content="50/50" Grid.Column="1"
                Margin="138,14,115,14"
                Background="Lime"
                Click="Button_Click_50" Grid.ColumnSpan="2"/>

        <Button Name="HintHall"
                Content="Помощь зала" Grid.Column="2"
                Margin="85,14,170,14"
                Background="Lime"
                Click="Button_Click_Hall" Grid.ColumnSpan="2"/>


        <TextBlock Name="QuestionText"
                   Grid.Row="2" Grid.ColumnSpan="4"
                   FontSize="22"
                   TextWrapping="Wrap"
                   Margin="20"
                   VerticalAlignment="Center"/>


        <Grid Grid.Row="3" Grid.ColumnSpan="4" Margin="20">

            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>

            <RadioButton Name="Answer1"
                         Grid.Row="0" Grid.Column="0"
                         Margin="10"
                         FontSize="18"
                         Background="LightGray"
                         BorderBrush="Black"
                         BorderThickness="2"
                         Padding="20"/>

            <RadioButton Name="Answer2"
                         Grid.Row="0" Grid.Column="1"
                         Margin="10"
                         FontSize="18"
                         Background="LightGray"
                         BorderBrush="Black"
                         BorderThickness="2"
                         Padding="20"/>

            <RadioButton Name="Answer3"
                         Grid.Row="1" Grid.Column="0"
                         Margin="10"
                         FontSize="18"
                         Background="LightGray"
                         BorderBrush="Black"
                         BorderThickness="2"
                         Padding="20"/>

            <RadioButton Name="Answer4"
                         Grid.Row="1" Grid.Column="1"
                         Margin="10"
                         FontSize="18"
                         Background="LightGray"
                         BorderBrush="Black"
                         BorderThickness="2"
                         Padding="20"/>
        </Grid>


        <Button Content="Ответить"
                Grid.Row="4" Grid.ColumnSpan="2"
                Height="63"
                Width="204"
                Background="Lime"
                HorizontalAlignment="Left"
                VerticalAlignment="Top"
                Click="AnswerForQuestion" Grid.Column="1" Margin="116,7,0,0"/>

    </Grid>
</Window>