Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.04.2021
Сообщений: 11
UWP

Реализовать в xaml кнопку "Сыграть снова"

21.04.2023, 13:37. Показов 556. Ответов 1

Author24 — интернет-сервис помощи студентам
Всем добрейшего денёчка!
Очень нуждаюсь в помощи. Нужно реализовать игру в крэпс (кости).
В принципе, весь функционал готов, но(!) по условию нужно, чтобы после победы кнопка "Roll" становилась неактивной.
Теперь пытаюсь прикрутить кнопку "Play again", которая бы всё возвращала на начало игры, чтобы каждый раз не перезапускать программу, однако не могу понять, каким образом это можно сделать.
Отдельная сложность в том, что это всё собирается под UWP.
Подсобите, кто как видит.
Код сейчас такой имею:
C# Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
 
namespace craps_2023
{
    /// <summary>
    /// Пустая страница, которую можно использовать саму по себе или для перехода внутри фрейма.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        private Random rnd = new Random();
        private int point = 0;
 
        private enum Status {InitialRoll, PointRoll, Win, Lose}
        private Status state = Status.InitialRoll;
        public MainPage()
        {
            this.InitializeComponent();
        }
 
        private void Header_SelectionChanged(object sender, RoutedEventArgs e)
        {
 
        }
 
 
        private void Result_SelectionChanged(object sender, RoutedEventArgs e)
        {
 
        }
 
        private void GameMessage_SelectionChanged(object sender, RoutedEventArgs e)
        {
 
        }
 
        private void RollButton_Click(object sender, RoutedEventArgs e)
        {
            int roll1 = rnd.Next(1,7);
            int roll2 = rnd.Next(1,7);
            int sum = roll1 + roll2;
 
            Result.Text = String.Format("You got: {0} + {1} = {2}\n", roll1, roll2, sum);
 
            if (state == Status.InitialRoll)
            {
                if (sum == 7 || sum == 11)
                {
                    Result.Text += "YOU WON!";
                    state = Status.Win;
                }
                else if (sum == 2 || sum == 3 || sum == 12)
                {
                    Result.Text += "YOU LOST!";
                    state = Status.Lose;
                }
                else
                {
                    GameMessage.Text += String.Format("Your point to win is: {0}\n", sum);
                    point = sum;
                    state = Status.PointRoll;
                }
            }
 
            else if (state == Status.PointRoll)
            {
                if (sum == 7)
                {
                    Result.Text += "You lost!";
                    state = Status.Lose;
                }
                else if (sum == point)
                {
                    Result.Text += "You won!";
                    state = Status.Win;
                }
                else
                {
                    Result.Text += "Roll again!";
                }
            }
 
            if (state == Status.Win || state == Status.Lose)
            {
                RollButton.IsEnabled = false;
            }
        }
 
        private void PlayAgainButton_Click(object sender, RoutedEventArgs e)
        {
            
        }
    }
}
Вложения
Тип файла: zip craps_2023.zip (13.10 Мб, 0 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2023, 13:37
Ответы с готовыми решениями:

Дисаблинг, кнопка кнопку. На чистом XAML
Здравствуйте. &lt;Button/&gt; &lt;ToggleButton/&gt; Как задисаблить просто кнопку при помощи ToggleButton? Возможно на чистом...

Воспроизведение звука по нажатию на кнопку xaml
Пожалуйста, помогите решить проблему, вставил вот такой код, чтобы произвести звук по нажатию на кнопку System.Media.SoundPlayer...

[закрыт] WPF XAML. Добавление в кнопку изображения из словаря ресурсов
:help::help::help: Есть кнопка, есть словарь ресурсов с картинками. Нужно через XAML задать изображение для кнопки (изображение при этом...

1
0 / 0 / 0
Регистрация: 18.04.2021
Сообщений: 11
21.04.2023, 14:23  [ТС]
Сделал!
C# Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
 
namespace craps_2023
{
    /// <summary>
    /// Пустая страница, которую можно использовать саму по себе или для перехода внутри фрейма.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        private Random rnd = new Random();
        private int point = 0;
 
        private enum Status {InitialRoll, PointRoll, Win, Lose}
        private Status state = Status.InitialRoll;
        public MainPage()
        {
            this.InitializeComponent();
        }
 
        private void Header_SelectionChanged(object sender, RoutedEventArgs e)
        {
 
        }
 
 
        private void Result_SelectionChanged(object sender, RoutedEventArgs e)
        {
 
        }
 
        private void GameMessage_SelectionChanged(object sender, RoutedEventArgs e)
        {
 
        }
 
        private void RollButton_Click(object sender, RoutedEventArgs e)
        {
            int roll1 = rnd.Next(1,7);
            int roll2 = rnd.Next(1,7);
            int sum = roll1 + roll2;
 
            Result.Text = String.Format("You got: {0} + {1} = {2}\n", roll1, roll2, sum);
 
            if (state == Status.InitialRoll)
            {
                if (sum == 7 || sum == 11)
                {
                    Result.Text += "YOU WON!";
                    state = Status.Win;
                }
                else if (sum == 2 || sum == 3 || sum == 12)
                {
                    Result.Text += "YOU LOST!";
                    state = Status.Lose;
                }
                else
                {
                    GameMessage.Text += String.Format("Your point to win is: {0}\n", sum);
                    point = sum;
                    state = Status.PointRoll;
                }
            }
 
            else if (state == Status.PointRoll)
            {
                if (sum == 7)
                {
                    Result.Text += "YOU LOST!";
                    state = Status.Lose;
                }
                else if (sum == point)
                {
                    Result.Text += "YOU WON!";
                    state = Status.Win;
                }
                else
                {
                    Result.Text += "Roll again!";
                }
            }
 
            if (state == Status.Win || state == Status.Lose)
            {
                RollButton.IsEnabled = false;
            }
        }
 
        private void PlayAgainButton_Click(object sender, RoutedEventArgs e)
        {
            this.point = 0;
            state = 0;
            RollButton.IsEnabled = true;
            Result.Text = "";
            GameMessage.Text = "";
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2023, 14:23
Помогаю со студенческими работами здесь

WPF app, верстка в XAML, сделать одну кнопку шире остальных
Алоха, друзья ) Сегодня весь день изобретал велосипед собирал свой первый калькулятор. Очень увлекательное занятие - даже не заметил как...

XAML. Стилизовать кнопку овальной формы (со своим стилем) под стандартную
Есть стандартная кнопка (объемная) и есть кнопка эллиптической формы, которая потеряла объем (как я понимаю, из-за применения к ней стиля,...

Снова хром, снова сапопроизвольно открывается, снова bkrfdf.xyz и казино
Здравствуйте! Собственно, проблема уже не новая, хотя, как показывают сообщения форума, за последние дни выскочившая у многих. Через...

Как сделать кнопку снова видимой для пользователя после ее закрытия методом Hide()?
Дело в том, что ее нужно не просто заблокировать, а именно скрыть. Поэтому не подходит Button2.Enabled = True

В самом XAML'е основного общего проекта сделать ссылку на XAML с частного решения
Доброго времени суток. Подскажите, пожалуйста. Как можно подменить xaml xaml'ом, не знаю как правильно это выразить, поэтому поиск в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования. . . .
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025
Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер