Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 72

Сделать так, чтоб программа разрешала использовать только русский алфавит

07.10.2014, 16:52. Показов 2569. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа, которая строит таблицу, но не в этом суть. Программа великовата и я обрезал части, которые не играют роли в вопросе, который я хочу задать.

Вот код программы. "Tabliza[j].Z" хранит фамилию работника. Как мне сделать так, чтоб программа разрешала использовать только русский алфавит и только с большой буквы при вводе фамилии. А в остальных случаях необходимо выдавать предупреждение. Помогите разобраться.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int i;
            Console.WriteLine("Сколько строк в таблице?");
            i = int.Parse(Console.ReadLine());
            Line[] Tabliza = new Line[i];           
            for (int j = 0; j < i; j++)
            {
                Tabliza[j] = new Line();
            }
            for (int j = 0; j < i; j++)
            {
                Console.WriteLine("Введите фамилию работника");
                Tabliza[j].Z = Console.ReadLine();
                Console.WriteLine("Введите кол-во изготовленных им деталей");
                Tabliza[j].P = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Введите кол-во небракованных");
                Tabliza[j].F = Convert.ToDouble(Console.ReadLine());
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("№\t Фамилия\t Деталей всего\t Принято");
            Console.WriteLine();
            for (int j = 0; j < i; j++)
            {
                Console.WriteLine("{0}\t {1}\t\t {2}\t\t {3}\t\t", j + 1, Tabliza[j].Z, Math.Round(Tabliza[j].P, 2), Math.Round(Tabliza[j].F, 2));
            }
            Console.ReadKey();
        }
    }
    class Line
    {
        string z;
        double p, f;
 
        public string Z
        {
            get { return z; }
            set { z = value; }
        }
 
        public double P
        {
            get { return p; }
            set { p = value; }
        }
 
        public double F
        {
            get { return f; }
            set { f = value; }
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.10.2014, 16:52
Ответы с готовыми решениями:

Шифр Цезаря. Использовать только русский алфавит
Нужно написать в Windows Form шифр Цезаря. Использовать только русский алфавит, сделать защиту на ввод цифр.

Не получается использовать русский алфавит
Работаю в Rad studio 10.2 и 10.1 подключаю алфавит через текстовой файл в программе. С английским алфавитом на всех компьютерах программа...

как сделать так чтоб менялся только ul.menu li a
есть такой CSS ul.menu li a { font-family: Tahoma, Geneva, sans-serif; text-decoration: none; background: #556A73; ...

23
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 17:09
BsSlayer, ну например в WinForms на OnTextChange я писал
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
if (tb.Text.Length > 0)
            {
                if (tb.Text.Length > 1)
                {
                    char[] tbText = tb.Text.ToCharArray();
                    string simbol = tbText[tbText.Length - 1].ToString();
                    if (Regex.IsMatch(simbol, @"[^а-я]+"))
                    {
                        tb.Text = tb.Text.Substring(0, tb.Text.Length - 1);
                        tb.SelectionStart = tb.Text.Length;
                    }
                }
                else
                {
                    if (Regex.IsMatch(tb.Text, @"[^А-Яа-я]+"))
                    {
                        tb.Text = String.Empty;
                        tb.SelectionStart = 0;
                    }
                    else
                    {
                        tb.Text = tb.Text.ToUpper();
                        tb.SelectionStart = 1;
                    }
                }
            }
на консоли честно говоря не знаю
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
07.10.2014, 17:15
BsSlayer,
Почему бы самому не производить требуемые преобразования, а пользователь пусть как угодно вводит фамилию.
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 17:23
XRoy, я хотел такое тоже предложить, но что если юзер начнет вводить цифры и латиницу?

Добавлено через 5 минут
Цитата Сообщение от BsSlayer Посмотреть сообщение
А в остальных случаях необходимо выдавать предупреждение
хотя если так то можно обойтись пост-обработкой через регулярку
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
07.10.2014, 17:26
meksik,
Ввели текст, проверили на недопустимые символы и преобразовали в нужный формат.
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 17:35
C#
1
2
3
4
5
6
7
8
9
10
string lastname = Console.ReadLine(); 
if (Regex.IsMatch(lastname, @"[^А-Яа-я]+") && lastname.Length > 0) 
{
    char [] ln = lastname.ToCharArray()[0].ToUpper();
    for (int i = 1; i < ln.Length; i++) ln[i].ToLower();
    lastname = new string(ln);
}
else {
    Console.WriteLine("Строка содержала недопустимые символы");
}
0
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 72
07.10.2014, 17:40  [ТС]
Цитата Сообщение от meksik Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
string lastname = Console.ReadLine(); 
if (Regex.IsMatch(lastname, @"[^А-Яа-я]+") && lastname.Length > 0) 
{
    char [] ln = lastname.ToCharArray()[0].ToUpper();
    for (int i = 1; i < ln.Length; i++) ln[i].ToLower();
    lastname = new string(ln);
}
else {
    Console.WriteLine("Строка содержала недопустимые символы");
}
Можете, пожалуйста, написать это так, чтоб подходило под мою программу? Просто никак не разберусь, что менять, чтоб подставить в код...
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
07.10.2014, 17:41
meksik,
У вас к примеру Салтыков-Щедрин будет не верной фамилией.
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 17:48
XRoy, мелочь, а не приятно)) и вообще регулярка то неверная)) @"[^А-Яа-я]+"

Добавлено через 1 минуту
C#
1
if (Regex.IsMatch(lastname, @"[А-Яа-я-]+") && lastname.Length > 0) //Поправочка
Добавлено через 2 минуты
тогда и это будет неверно работать, если учесть возможность ввода сложной фамилии
C#
1
2
char [] ln = lastname.ToCharArray()[0].ToUpper();
for (int i = 1; i < ln.Length; i++) ln[i].ToLower();
Это сначала разбивать на массив строк по "-" и проходить по каждому элементу массива
0
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 72
07.10.2014, 17:53  [ТС]
Пишет, что "ни одна из перегрузок метода ToUpper не принимает 0 аргументов"
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.10.2014, 17:58
Цитата Сообщение от meksik Посмотреть сообщение
А-Яа-я
Диапазон тоже неверный, в него не входит буква ё
C#
1
2
Console.WriteLine(!Regex.IsMatch("Емое", @"[^А-Яа-я]+"));
Console.WriteLine(!Regex.IsMatch("Ёмое", @"[^А-Яа-я]+"));
Надо [^А-Яа-яЁё]
Цитата Сообщение от meksik Посмотреть сообщение
Это сначала разбивать на массив строк по "-" и проходить по каждому элементу массива
Можно обойтись и теми же регулярками
C#
1
2
Console.WriteLine(Regex.IsMatch("Салтыков", @"[А-Яа-яЁё]+(?:-[А-Яа-яЁё]+)?"));
Console.WriteLine(Regex.IsMatch("Салтыков-Щедрин", @"[А-Яа-яЁё]+(?:-[А-Яа-яЁё]+)?"));
0
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 72
07.10.2014, 18:10  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Диапазон тоже неверный, в него не входит буква ё
C#
1
2
Console.WriteLine(!Regex.IsMatch("Емое", @"[^А-Яа-я]+"));
Console.WriteLine(!Regex.IsMatch("Ёмое", @"[^А-Яа-я]+"));
Надо [^А-Яа-яЁё]

Можно обойтись и теми же регулярками
C#
1
2
Console.WriteLine(Regex.IsMatch("Салтыков", @"[А-Яа-яЁё]+(?:-[А-Яа-яЁё]+)?"));
Console.WriteLine(Regex.IsMatch("Салтыков-Щедрин", @"[А-Яа-яЁё]+(?:-[А-Яа-яЁё]+)?"));
Подскажите как это можно переделать под мою программу? Пишет что-то про перегруженные аргументы... Я в C# пока нуб, объясните как сделать или просто код напишите, пожалуйста.
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 18:12
BsSlayer, я неверно написал, не тестил просто, так набросал по быстрому, перепишу
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.10.2014, 18:14
C#
1
2
3
bool isValid(string surname) {
    return Regex.IsMatch(surname, @"[А-Яа-яЁё]+(?:-[А-Яа-яЁё]+)?");
}
Потом просто проверяете
C#
1
2
3
4
5
6
7
8
if(!isValid(Tabliza[j].Z))
{
    //ошибка
}
else
{
    //ок
}
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 18:24
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        string lastname = Console.ReadLine();
        if (Regex.IsMatch(lastname, @"[А-Яа-яЁё]+(?:-[А-Яа-яЁё]+)?") && lastname.Length > 0) 
        {
            char [] ln = lastname.ToCharArray();
            ln[0] = Char.ToUpper(ln[0]);
            for (int i = 1; i < ln.Length; i++) ln[i] = Char.ToLower(ln[i]);
            lastname = new string(ln);
            Console.WriteLine(lastname);
        }
        else {
            Console.WriteLine("Строка содержала недопустимые символы");
        }
        Console.ReadKey();
Добавлено через 2 минуты
Цитата Сообщение от KOPOJI Посмотреть сообщение
Можно обойтись и теми же регулярками
я не настолько силен в регулярках) писать их умею, но чтоб хорошую написать, убиваю много времени)

Добавлено через 3 минуты
а вообще я говорил про пост-обработку, если даже строка пройдет через регулярку, все равно регистр мб не тот или ещё что)
0
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 72
07.10.2014, 18:39  [ТС]
Спасибо большое, но я попробовал вставить ваш код в свой и не работает( Пишет, что Regex не существует в текущем контексте... Что я сделал не так? Вот код:
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
using System;
using System.Collections.Generic;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.BackgroundColor = ConsoleColor.Gray;
            Console.Clear();
            Console.SetWindowSize(120, 32);
            Console.Title = "Відомість випуску деталей робітниками цеху";
            int Schetchik = 0;
            string YorN;
            int i = 999;
            double aSum = 0, bSum = 0, cSum = 0;
            Line[] Tabliza = new Line[i];
            Console.WriteLine("Введите значения в таблицу в таком порядке: фамилия работника, кол-во изготовленных им деталей и кол-во принятых\n");
            for (int j = 0; j < i; j++)
            {
                Tabliza[j] = new Line();
            }
            for (int j = 0; j < i; j++)
            {
                Schetchik++;
                YorN = "";
                Console.WriteLine("Введите фамилию работника №{0}:", j + 1);
                Tabliza[j].Z = Console.ReadLine();
                Tabliza[j].Z = Console.ReadLine();
                if (Regex.IsMatch(Tabliza[j].Z, @"[А-Яа-яЁё]+(?:-[А-Яа-яЁё]+)?") && Tabliza[j].Length > 0)
                {
                    char[] ln = Tabliza[j].Z.ToCharArray();
                    ln[0] = Char.ToUpper(ln[0]);
                    for (int a = 1; a < ln.Length; a++) ln[a] = Char.ToLower(ln[a]);
                    Tabliza[j].Z = new string(ln);
                    Console.WriteLine(Tabliza[j]);
                }
                else
                {
                    Console.WriteLine("Строка содержала недопустимые символы");
                }
                Console.WriteLine("Введите кол-во произведённых им деталей:");
                Tabliza[j].P = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Введите кол-во НЕ бракованных деталей:");
                Tabliza[j].F = Convert.ToDouble(Console.ReadLine());
 
                Console.WriteLine("Продолжить ввод данных? Введите 'y' для продолжения и 'n' для построения таблицы");
                YorN = Console.ReadLine();
                if (YorN == "n") j = i;
            }
            Console.WriteLine();
            Console.WriteLine("|_______________________________________________________________________________|");
            Console.WriteLine("| №\t Фамилия\t Деталей всего\t Принято\t Брак шт.\t Брак % |");
            Console.WriteLine("|_______________________________________________________________________________|");
            for (int j = 0; j < Schetchik; j++)
            {
                Console.WriteLine("| {0}\t {1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}\t|", j + 1, Tabliza[j].Z, Math.Round(Tabliza[j].P, 2), Math.Round(Tabliza[j].F, 2), Math.Round(Tabliza[j].B1, 2), Math.Round(Tabliza[j].B2, 2));
                aSum = aSum + Tabliza[j].P;
                bSum = bSum + Tabliza[j].F;
                cSum = cSum + Tabliza[j].B1;
            }
            Console.WriteLine("|_______________________________________________________________________________|");
            Console.WriteLine("|\t Сумма\t\t {0}\t\t {1}\t\t {2}\t\t\t|", aSum, bSum, cSum);
            Console.WriteLine("|_______________________________________________________________________________|");
            Console.ReadKey();
        }
    }
    class Line
    {
        string z;
        double p, f, b1, b2;
 
        public string Z
        {
            get { return z; }
            set { z = value; }
        }
 
        public double P
        {
            get { return p; }
            set { p = value; }
        }
 
        public double F
        {
            get { return f; }
            set { f = value; }
        }
 
        public double B1
        {
            get
            {
                b1 = p - f;
                return b1;
            }
        }
 
        public double B2
        {
            get
            {
                b2 = b1 * 100 / p;
                return b2;
            }
        }
    }
}
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 19:09
BsSlayer,
пространство имен то забыли подключить)
C#
1
using System.Text.RegularExpressions;
0
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 72
07.10.2014, 19:33  [ТС]
Цитата Сообщение от meksik Посмотреть сообщение
BsSlayer,
пространство имен то забыли подключить)
C#
1
using System.Text.RegularExpressions;
Всё равно, когда ввожу фамилию на русском и с большой буквы, то вылазит надпись "Введено неверно" и потом продолжается ввод. Любой текст каким-то образом проходит не через if, а через else и пишет ошибку, но ввод не прекращается... Вот запустите ту программу, что я последнюю скинул и гляньте. Очень нужна помощь, уже не знаю как исправить...
Да и Length подчёркивало...
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
07.10.2014, 19:57
BsSlayer, я лично проверял свою фамилию вот в таком виде кРюЧкОв
вернуло Крючков)
покажи код, как ты реализовал
0
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 72
07.10.2014, 20:50  [ТС]
Вот мой код. И проблема ещё вот в чём: Даже когда ввожу некорректную фамилию, то надо лишний раз нажать Enter, а потом выскакивает предупреждение, но далее программа выполняется обычным чередом. Да и с корректной фамилией тоже пишет ошибку и дальше выполняется как ни в чём не бывало( Не знаю что и делать. Вот скрин работы программы картинка...
P.S. Оформление программы наляпано так, потому что препод сказал разнообразить внешний вид xD

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
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
 
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.BackgroundColor = ConsoleColor.Gray;
            Console.Clear();
            Console.SetWindowSize(120, 32);
            Console.Title = "Відомість випуску деталей робітниками цеху";
            int Schetchik = 0;
            string YorN;
            int i = 999;
            double aSum = 0, bSum = 0, cSum = 0;
            Line[] Tabliza = new Line[i];
            Console.WriteLine("Введите значения в таблицу в таком порядке: фамилия работника, кол-во изготовленных им деталей и кол-во принятых\n");
            for (int j = 0; j < i; j++)
            {
                Tabliza[j] = new Line();
            }
            for (int j = 0; j < i; j++)
            {
                Schetchik++;
                YorN = "";
                Console.WriteLine("Введите фамилию работника №{0}:", j + 1);
                Tabliza[j].Z = Console.ReadLine();
                Tabliza[j].Z = Console.ReadLine();
                if (Regex.IsMatch(Tabliza[j].Z, @"[А-Яа-я]+(?:-[А-Яа-я]+)?") && Tabliza[j].Length > 0)
                {
                    char[] ln = Tabliza[j].Z.ToCharArray();
                    ln[0] = Char.ToUpper(ln[0]);
                    for (int a = 1; a < ln.Length; a++) ln[a] = Char.ToLower(ln[a]);
                    Tabliza[j].Z = new string(ln);
                    Console.WriteLine(Tabliza[j]);
                }
                else
                {
                    Console.WriteLine("Строка содержала недопустимые символы. Перезапустите программу и введите фамилию на русском и с большой буквы!!!");
                }
                Console.WriteLine("Введите кол-во произведённых им деталей:");
                Tabliza[j].P = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("Введите кол-во НЕ бракованных деталей:");
                Tabliza[j].F = Convert.ToDouble(Console.ReadLine());
 
                Console.WriteLine("Продолжить ввод данных? Введите 'y' для продолжения и 'n' для построения таблицы");
                YorN = Console.ReadLine();
                if (YorN == "n") j = i;
            }
            Console.WriteLine();
            Console.WriteLine("|_______________________________________________________________________________|");
            Console.WriteLine("| №\t Фамилия\t Деталей всего\t Принято\t Брак шт.\t Брак % |");
            Console.WriteLine("|_______________________________________________________________________________|");
            for (int j = 0; j < Schetchik; j++)
            {
                Console.WriteLine("| {0}\t {1}\t\t {2}\t\t {3}\t\t {4}\t\t {5}\t|", j + 1, Tabliza[j].Z, Math.Round(Tabliza[j].P, 2), Math.Round(Tabliza[j].F, 2), Math.Round(Tabliza[j].B1, 2), Math.Round(Tabliza[j].B2, 2));
                aSum = aSum + Tabliza[j].P;
                bSum = bSum + Tabliza[j].F;
                cSum = cSum + Tabliza[j].B1;
            }
            Console.WriteLine("|_______________________________________________________________________________|");
            Console.WriteLine("|\t Сумма\t\t {0}\t\t {1}\t\t {2}\t\t\t|", aSum, bSum, cSum);
            Console.WriteLine("|_______________________________________________________________________________|");
            Console.ReadKey();
        }
    }
    class Line
    {
        string z;
        double p, f, b1, b2;
 
        public string Z
        {
            get { return z; }
            set { z = value; }
        }
 
        public double P
        {
            get { return p; }
            set { p = value; }
        }
 
        public double F
        {
            get { return f; }
            set { f = value; }
        }
 
        public double B1
        {
            get
            {
                b1 = p - f;
                return b1;
            }
        }
 
        public double B2
        {
            get
            {
                b2 = b1 * 100 / p;
                return b2;
            }
        }
 
        public int Length { get; set; }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2014, 20:50
Помогаю со студенческими работами здесь

А как сделать так, чтоб ubuntu был только на новом пользователе?
:cry: простите если тупой вопрос, но я совсем новенькая. Помогите пожалуйста моего пользователя не стирать, а на нового пользателя...

Сделать так чтоб данные в Datagridviev подгружались только по окончанию скролинга
При прокрутке в datagridview подгружаются данные из бд, как можно сделать так чтоб данные подгружались только по окончанию скролинга?...

Как сделать так чтоб программа читала файлы
как сделать так чтоб программа читала файлы с расширением dcm buk krg nrm nru prs pru spr spu trm CBX NMR NMU NTV помогите нужен...

Как можно сделать так чтоб программа работала быстрее?
Как можно сделать так чтоб программа работала быстрее?Думаю сделать через seek, чтобы при проверке файла программа проверяла ту позицию, из...

Сделать так чтоб программа с сигнатурами файла работала быстрее
Как можно сделать так чтоб программа работала быстрее?Думаю сделать через seek, чтобы при проверке файла программа проверяла ту позицию, из...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru