Загрузка данных
<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 }
};
}
}
}