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


<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" Loaded="Window_Loaded" SizeChanged="Window_SizeChanged">

        
        <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.Row="0" Grid.Column="0"
                   FontSize="24"
                   VerticalAlignment="Top"
                   Margin="0,19,20,0"/>


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

       
        <Button Name="HintFriend"
                Content="Зв. другу" Grid.Column="0"
                Margin="185,19,60,10"
                Background="Lime"
                Click="Button_Click_2" Grid.ColumnSpan="2"/>

        <Button Name="Hint50"
                Content="50/50" Grid.Column="1"
                Margin="140,19,100,10"
                Background="Lime"
                Click="Button_Click_50" Grid.ColumnSpan="2"/>

        <Button Name="HintHall"
                Content="Помощь зала" Grid.Column="2"
                Margin="100,19,142,10"
                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="4"
                Height="50"
                Width="200"
                Background="Lime"
                HorizontalAlignment="Center"
                VerticalAlignment="Center"
                Click="AnswerForQuestion"/>

    </Grid>
</Window>


using System;
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 = 0;
        int score = 0;

        bool hint50 = false;
        bool hintHall = false;
        bool hintFriend = false;

        List<AfQ> list = new List<AfQ>();

        public MainWindow()
        {
            InitializeComponent();
            list = AfQ.GetQuestions();
            UpdateQuestion();
        }


        private void UpdateQuestion()
        {
            var q = list[Numb];

            QuestionNumber.Text = "Вопрос № " + q.Number.ToString();
            QuestionText.Text = q.Question;

            Answer1.Content = q.Answer1;
            Answer2.Content = q.Answer2;
            Answer3.Content = q.Answer3;
            Answer4.Content = q.Answer4;

            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;

            

            ScoreText.Text = "Очки: " + score.ToString();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            double windowWidth = this.ActualWidth;
            double answerWidth = (windowWidth - 80) / 2;

            Answer1.Width = answerWidth;
            Answer2.Width = answerWidth;
            Answer3.Width = answerWidth;
            Answer4.Width = answerWidth;

            UpdateQuestion();
        }

        private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            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 = list[Numb];
            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 = score + q.Price;
                MessageBox.Show("Правильно! +" + q.Price.ToString() + " очков");
                Numb++;

                if (Numb >= list.Count)
                {
                    MessageBox.Show("Победа! Ваш счет: " + score.ToString());
                    Close();
                }
                else
                {
                    UpdateQuestion();
                }
            }
            else
            {
                MessageBox.Show("Неправильно! Итог: " + score.ToString());
                Close();
            }


        }
        private void Button_Click_50(object sender, RoutedEventArgs e)
        {
            if (hint50) return;

            var q = list[Numb];

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

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

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

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

            hint50 = true;
        }

        private void Button_Click_Hall(object sender, RoutedEventArgs e)
        {
            if (hintHall) return;

            MessageBox.Show("Зал считает, что это правильный ответ ");
            hintHall = true;
        }

        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            if (hintFriend) return;

            var q = list[Numb];
            MessageBox.Show("Друг думает: " + q.RightAnswer);
            hintFriend = true;
        }
    }
}



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 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=100 },
                new AfQ { Number=2, Question="Столица Германии?", Answer1="Берлин", Answer2="Париж", Answer3="Рим", Answer4="Мадрид", RightAnswer="Берлин", FiftyFiftyAnswer1="Берлин", FiftyFiftyAnswer2="Париж", Price=200 },
                new AfQ { Number=3, Question="2+2?", Answer1="3", Answer2="4", Answer3="5", Answer4="6", RightAnswer="4", FiftyFiftyAnswer1="4", FiftyFiftyAnswer2="5", Price=300 },
                new AfQ { Number=4, Question="Цвет неба?", Answer1="Синий", Answer2="Красный", Answer3="Зеленый", Answer4="Черный", RightAnswer="Синий", FiftyFiftyAnswer1="Синий", FiftyFiftyAnswer2="Красный", Price=400 },
                new AfQ { Number=5, Question="Сколько дней в неделе?", Answer1="5", Answer2="6", Answer3="7", Answer4="8", RightAnswer="7", FiftyFiftyAnswer1="7", FiftyFiftyAnswer2="6", Price=500 },
                new AfQ { Number=6, Question="Столица Франции?", Answer1="Берлин", Answer2="Париж", Answer3="Рим", Answer4="Лондон", RightAnswer="Париж", FiftyFiftyAnswer1="Париж", FiftyFiftyAnswer2="Лондон", Price=600 },
                new AfQ { Number=7, Question="3*3?", Answer1="6", Answer2="9", Answer3="12", Answer4="3", RightAnswer="9", FiftyFiftyAnswer1="9", FiftyFiftyAnswer2="6", Price=700 },
                new AfQ { Number=8, Question="Цвет травы?", Answer1="Красный", Answer2="Синий", Answer3="Зеленый", Answer4="Желтый", RightAnswer="Зеленый", FiftyFiftyAnswer1="Зеленый", FiftyFiftyAnswer2="Желтый", Price=800 },
                new AfQ { Number=9, Question="Столица Италии?", Answer1="Рим", Answer2="Париж", Answer3="Берлин", Answer4="Мадрид", RightAnswer="Рим", FiftyFiftyAnswer1="Рим", FiftyFiftyAnswer2="Мадрид", Price=900 },
                new AfQ { Number=10, Question="10/2?", Answer1="2", Answer2="5", Answer3="10", Answer4="20", RightAnswer="5", FiftyFiftyAnswer1="5", FiftyFiftyAnswer2="10", Price=1000 },
                new AfQ { Number=11, Question="Сколько месяцев в году?", Answer1="10", Answer2="11", Answer3="12", Answer4="13", RightAnswer="12", FiftyFiftyAnswer1="12", FiftyFiftyAnswer2="11", Price=1100 },
                new AfQ { Number=12, Question="Столица Испании?", Answer1="Мадрид", Answer2="Рим", Answer3="Берлин", Answer4="Париж", RightAnswer="Мадрид", FiftyFiftyAnswer1="Мадрид", FiftyFiftyAnswer2="Рим", Price=1200 },
                new AfQ { Number=13, Question="5*5?", Answer1="10", Answer2="20", Answer3="25", Answer4="30", RightAnswer="25", FiftyFiftyAnswer1="25", FiftyFiftyAnswer2="20", Price=1300 },
                new AfQ { Number=14, Question="Самая длинная река?", Answer1="Нил", Answer2="Волга", Answer3="Амазонка", Answer4="Дон", RightAnswer="Нил", FiftyFiftyAnswer1="Нил", FiftyFiftyAnswer2="Амазонка", Price=1400 },
                new AfQ { Number=15, Question="Столица Японии?", Answer1="Токио", Answer2="Пекин", Answer3="Сеул", Answer4="Бангкок", RightAnswer="Токио", FiftyFiftyAnswer1="Токио", FiftyFiftyAnswer2="Сеул", Price=1500 },
                new AfQ { Number=16, Question="7+8?", Answer1="14", Answer2="15", Answer3="16", Answer4="17", RightAnswer="15", FiftyFiftyAnswer1="15", FiftyFiftyAnswer2="14", Price=1600 },
                new AfQ { Number=17, Question="Сколько континентов?", Answer1="5", Answer2="6", Answer3="7", Answer4="8", RightAnswer="6", FiftyFiftyAnswer1="6", FiftyFiftyAnswer2="7", Price=1700 },
                new AfQ { Number=18, Question="Столица США?", Answer1="Нью-Йорк", Answer2="Вашингтон", Answer3="Лос-Анджелес", Answer4="Чикаго", RightAnswer="Вашингтон", FiftyFiftyAnswer1="Вашингтон", FiftyFiftyAnswer2="Нью-Йорк", Price=1800 },
                new AfQ { Number=19, Question="9*9?", Answer1="81", Answer2="72", Answer3="90", Answer4="99", RightAnswer="81", FiftyFiftyAnswer1="81", FiftyFiftyAnswer2="72", Price=1900 },
                new AfQ { Number=20, Question="Самый большой океан?", Answer1="Атлантический", Answer2="Индийский", Answer3="Тихий", Answer4="Северный", RightAnswer="Тихий", FiftyFiftyAnswer1="Тихий", FiftyFiftyAnswer2="Атлантический", Price=2000 },
                new AfQ { Number=21, Question="Сколько часов в сутках?", Answer1="12", Answer2="24", Answer3="36", Answer4="48", RightAnswer="24", FiftyFiftyAnswer1="24", FiftyFiftyAnswer2="12", Price=2100 },
                new AfQ { Number=22, Question="Столица Китая?", Answer1="Пекин", Answer2="Токио", Answer3="Сеул", Answer4="Шанхай", RightAnswer="Пекин", FiftyFiftyAnswer1="Пекин", FiftyFiftyAnswer2="Шанхай", Price=2200 },
                new AfQ { Number=23, Question="4*6?", Answer1="20", Answer2="22", Answer3="24", Answer4="26", RightAnswer="24", FiftyFiftyAnswer1="24", FiftyFiftyAnswer2="20", Price=2300 },
                new AfQ { Number=24, Question="Самая высокая гора?", Answer1="Эверест", Answer2="Килиманджаро", Answer3="Альпы", Answer4="Урал", RightAnswer="Эверест", FiftyFiftyAnswer1="Эверест", FiftyFiftyAnswer2="Альпы", Price=2400 },
                new AfQ { Number=25, Question="C# разработан компанией?", Answer1="Google", Answer2="Microsoft", Answer3="Apple", Answer4="IBM", RightAnswer="Microsoft", FiftyFiftyAnswer1="Microsoft", FiftyFiftyAnswer2="Google", Price=2500 }
            };
        }
    }
}