Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/46: Рейтинг темы: голосов - 46, средняя оценка - 4.70
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723

Теоритический вопрос

22.01.2010, 20:42. Показов 9871. Ответов 61
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
на форуме очень много задач по матрицам и массивам, я так понимаю их много задают в институтах...
вопрос собственно вот в чем, неужели они так важны? стоит ли тоже на это обратить внимание? действительно это часто применяется в практике?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2010, 20:42
Ответы с готовыми решениями:

Теоритический вопрос
У меня к вам такой вопрос: можно ли вызвать функцию в другой функции и как это сделать если это возможно?

Теоритический вопрос по трансформатору.
Имеется трансформатор с двухполярным питанием 15-0-15 от него подключен усилитель, тоже с двуполярным питанием. Собственно вопрос: Можно...

Теоритический вопрос по IP адресам
Имеется адрес 164.139.26.110 и Маска 11111111.11111111.11111111.00000000 надо определить: – класс адреса; – максимально возможное...

61
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
28.01.2010, 19:55  [ТС]
Студворк — интернет-сервис помощи студентам
тогда не 2 мерные наверное а 3-х мерные?
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
то есть так примерно выглядить должно?... ну если б на бумаге)
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
28.01.2010, 22:04
Да, так. Но это 2у-мерный массив!
Но поле 3х3 в этой игре является вырожденным. Не интересно будет играть. Лучше сразу делать 5х5 или более.
1
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
03.02.2010, 19:21  [ТС]
Цитата Сообщение от body90 Посмотреть сообщение
Да, так. Но это 2у-мерный массив!
Но поле 3х3 в этой игре является вырожденным. Не интересно будет играть. Лучше сразу делать 5х5 или более.
блин, помоги с проверкой... я короче написал проверку, но она через Ифы у меня...все работает, но если добавлять еще больше реальзации, то ваще запутаешься... к томуже как то все сложно у меня получилось...
вот проект
Вложения
Тип файла: rar XandO.rar (38.7 Кб, 29 просмотров)
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
04.02.2010, 00:33
К сожалению, на данный момент я нахожусь в больнице и проект просто нет чем открыть. Надеюсь, к следующей неделе меня выпишут и я попробую найти время и помочь. А что именно у Вас не получилось реализовать?
0
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
04.02.2010, 02:32  [ТС]
Цитата Сообщение от body90 Посмотреть сообщение
К сожалению, на данный момент я нахожусь в больнице и проект просто нет чем открыть. Надеюсь, к следующей неделе меня выпишут и я попробую найти время и помочь. А что именно у Вас не получилось реализовать?
сочувствую и желаю скорейшего выздоровления!!!
реализовать то все получилось, вроде работает все как нужно, но слишком за мудрено как то вышло...
+ я хотел чтобы потом кнопки выигрышной комбинации стали красными, сделать то это не проблема, но если я начну это добавлять, то код получится ой какой запутанный и сложный... просто хотел спросить совета, может получится как то попроще это все сделать...
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
04.02.2010, 09:05
Огромное спасибо!

Я выше писал идею. Условно пронумеруйте каждый вариант выигрыша. А метод, который проверяет есть выигрыш или нет, пусть возвращает этот условный номер и в зависимости от этого числа делать красными определенные кнопки. Конечно, условий будет много, но их можно сделать через один свитч - будет на много удобнее и красивее. От проверок всё равно не избавиться.
1
5 / 5 / 0
Регистрация: 01.02.2010
Сообщений: 98
17.02.2010, 22:11
2 body90

А как вы решали оптимизационную задачу? Ведь выигрыш в игре - это фактически поиск наилучшего (устраивающего второго игрока - компьютер) решения. Вы использовали какой-либо минимаксный алгоритм или как-то иначе решали эту задачу?
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
19.02.2010, 15:47
Я сделал бОльшее ударение на сетевую игру. В игре с компьютером сделал небольшую логику отсюда:
http://ru.wikipedia.org/wiki/Крестики-нолики
0
5 / 5 / 0
Регистрация: 01.02.2010
Сообщений: 98
19.02.2010, 16:09
А, тут перебор просто вариантов ... а вообще, скорей всего можно сделать на базе нейронных сетей. Только это в шарпе давольно громоздко выдет, вот если бы подключить библиотеки Matlab'a...
0
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
19.02.2010, 16:16  [ТС]
громоздко это одно, будет ли работать быстрее??? ведь если взять поле 30х30, переборов ой сколько будет...
0
5 / 5 / 0
Регистрация: 01.02.2010
Сообщений: 98
19.02.2010, 16:38
На базе нейронных сетей - основное это обучить сеть, т.е. найти параметры целевой функции. А если простым перебором, то количество вариантов поля 30X30 можно посчитать прибегнув в комбинаторике
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
19.02.2010, 16:46
зачем нейронные сети, если тут и так логика небольшая?
0
5 / 5 / 0
Регистрация: 01.02.2010
Сообщений: 98
19.02.2010, 16:50
Вы про 3 на 3 поле или 30 на 30? Я понимаю, что перебором вариантов проще, но будет ли это "элегантным" решением... Ведь если поле 30 на 30, то тут придется, скорей всего, выделать основное поле в отдельные подргуппы, т.е. отдельные поля три на три (в зависимости от условия победы).
0
Заблокирован
19.02.2010, 18:14
Sequd , не много переделал твою прогу
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace XandO
{
    public partial class Form1 : Form
    {
        
        protected Button[] button = new Button[9];
        
        int allClick_ = -1;
        int _numb = -1;
 
        public int Numb
        {
            get { return _numb; }
            set { _numb = value; }
        }
 
        public Form1()
        {
            InitializeComponent();
            ButtonAdd();
        }
 
        
 
        public void ButtonAdd()
        {
            int _x = 10;
            int _y = 10;
            for (int i = 0; i < 3; i++)
            {
                _x += 50;
                button[i] = new Button();
                button[i].Name = Convert.ToString(i);
                button[i].Size = new System.Drawing.Size(50, 50);
                button[i].Location = new System.Drawing.Point(_x, _y);
 
                this.Controls.Add(button[i]);
            }
            _x = 10;
            for (int i = 3; i < 6; i++)
            {
                _y = 60;
                _x += 50;
                button[i] = new Button();
                button[i].Name = Convert.ToString(i);
                button[i].Size = new System.Drawing.Size(50, 50);
                button[i].Location = new System.Drawing.Point(_x, _y);
 
                this.Controls.Add(button[i]);
            }
            _x = 10;
            for (int i = 6; i < 9; i++)
            {
                _y = 110;
                _x += 50;
                button[i] = new Button();
                button[i].Name = Convert.ToString(i);
                button[i].Size = new System.Drawing.Size(50, 50);
                button[i].Location = new System.Drawing.Point(_x, _y);
 
                this.Controls.Add(button[i]);
            }
 
            for (int i = 0; i < button.Length; i++)
            {
                button[i].Click += new EventHandler(Form1_Click);
            }
        }
 
        void Form1_Click(object sender, EventArgs e)
        {
            Button temp = (Button)sender;
            temp.Enabled = false;
 
            for (int i = 0; i < button.Length; i++)
            {
                if (button[i] == temp)
                {
                    Numb = i;
                }
            }
 
            string str;
            allClick_++;
            if ((allClick_ % 2) == 0)
            {
                str = "X";
            }
            else
            {
                str = "O";
            }
            temp.Text = str;
 
            if (Controls["0"].Text == "X" && Controls["1"].Text == "X" && Controls["2"].Text == "X" ||
                Controls["3"].Text == "X" && Controls["4"].Text == "X" && Controls["5"].Text == "X" ||
                Controls["6"].Text == "X" && Controls["7"].Text == "X" && Controls["8"].Text == "X" ||
                Controls["0"].Text == "X" && Controls["3"].Text == "X" && Controls["6"].Text == "X" ||
                Controls["1"].Text == "X" && Controls["4"].Text == "X" && Controls["7"].Text == "X" ||
                Controls["2"].Text == "X" && Controls["5"].Text == "X" && Controls["8"].Text == "X" ||
                Controls["0"].Text == "X" && Controls["4"].Text == "X" && Controls["8"].Text == "X" ||
                Controls["2"].Text == "X" && Controls["4"].Text == "X" && Controls["6"].Text == "X")
            {
                label1.Text = "Выйгрыли крестики!!!";
                foreach (var control in this.Controls)
                {
                    Button B = control as Button;
                    if (B != null)
                    {
                        B.Enabled = false;
                    }
 
                }
            }
 
            if (Controls["0"].Text == "O" && Controls["1"].Text == "O" && Controls["2"].Text == "O" ||
                Controls["3"].Text == "O" && Controls["4"].Text == "O" && Controls["5"].Text == "O" ||
                Controls["6"].Text == "O" && Controls["7"].Text == "O" && Controls["8"].Text == "O" ||
                Controls["0"].Text == "O" && Controls["3"].Text == "O" && Controls["6"].Text == "O" ||
                Controls["1"].Text == "O" && Controls["4"].Text == "O" && Controls["7"].Text == "O" ||
                Controls["2"].Text == "O" && Controls["5"].Text == "O" && Controls["8"].Text == "O" ||
                Controls["0"].Text == "O" && Controls["4"].Text == "O" && Controls["8"].Text == "O" ||
                Controls["2"].Text == "O" && Controls["4"].Text == "O" && Controls["6"].Text == "O")
            {
                label1.Text = "Выйгрыли нолики!!!";
                foreach (var control in this.Controls)
                {
                    Button B = control as Button;
                    if (B != null)
                    {
                        B.Enabled = false;
                    }
 
                }
            }
 
        }
 
 
    }
}
0
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
19.02.2010, 18:34  [ТС]
да, так проверка гораздо лучше смотриться) спасибо! но вот зачем это? как это работает?
C#
1
2
3
4
5
6
7
                foreach (var control in this.Controls)
                {
                    Button B = control as Button;
                    if (B != null)
                    {
                        B.Enabled = false;
                    }
я так понимаю что это перебор контролов идет, но что там происходит не совсем понимаю...
0
5 / 5 / 0
Регистрация: 01.02.2010
Сообщений: 98
19.02.2010, 22:12
foreach (var control in this.Controls)
Происходит перебор, строка var control означает - что при переборе, нам необязательно/ненужно знать тип переменной control.

Button B = control as Button; as - это операция приведения типа, ну т.е. нам теперь нужно знать тип переменной control :-). Если проще: Приведи переменную control к типу Button

Ну и дальше доступ к члену кнопеи и установка его в false - т.е. делает ее недоступной
if (B != null)
{
B.Enabled = false;
}
0
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
20.02.2010, 00:59  [ТС]
C#
1
B != null
я вот этого не понимаю... как она может быть нолевой, тем более что мы их перебирали?
0
5 / 5 / 0
Регистрация: 01.02.2010
Сообщений: 98
20.02.2010, 02:14
2 Sequd
Условия захода в цикл, если выражение (B != null)=true. А вы до этого на чем писали? != (не равно) - это давольно распространеный бинарный оператор отношения.
0
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
20.02.2010, 02:56  [ТС]
я знаю что это такое, меня интересует почему null
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
20.02.2010, 03:49
Цитата Сообщение от Sequd Посмотреть сообщение
Button B = control as Button;
Если control нельзя привести к Button, то B будет равно null
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2010, 03:49

Теоритический вопрос по блок схемам
Сделал программу (по ООП в программе 1 класс и четыре метода на каждый метод нужна блок схема) и теперь надо составить блок схему. Вопрос...

Солнечная энергия + акум + gsm (чисто теоритический вопрос)
Позволю себе пофантазировать: собираем девайс, который продолжительное время при помощи солнечных элементов копит заряд на...

Теоритический вопрос.Чем отличаються функции ключевых слов public и protected при описании классов?
Не могу уловить разницы.Подскажите!:)

Теоритический вопро по матрицам.
Мне надо составить подпрограмму умножения двух матриц.{понятное дело не сложно} И используя её найти k-ю степень квадратной матрицы. ...

Вопрос по SetParent (поэтому, наверное, это вопрос к NickStaves)
Есть набор форм, назовём их 'интерфейсными'. Есть отдельная форма, назовём её 'хранилищем'. Сама по себе она нигде не используется: лишь...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru