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