Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Где нужно в коде использовать кавычки, а где апостроф https://www.cyberforum.ru/ csharp-beginners/ thread632295.html
Чем отличаются " от ' ? Этот код не работаетstring str = "My name is Andrey!"; string arr = str.Split(" "); а вот этот работаетstring str = "My name is Andrey!"; string arr = str.Split(' ');
Установка и запуск сервиса C#
Доброго времени суток Решил я значит ради интереса сервис написать(тк не знаю как это всё работает и хочу получить опыт в этом деле) и сразу столкнулся с проблемой установки сервиса в систему вот состряпал такой код public partial class Service1 : ServiceBase { /// Главная точка входа для приложения. static void Main() {
C# Как создать события для "тика" таймера Как создать события для "тика" таймера? пытался так сделать, но это не правильно private void Form1_Load(object sender, EventArgs e) { Timer timer = new Timer(); timer.Interval = 2000; timer.Enabled = true; https://www.cyberforum.ru/ csharp-beginners/ thread632286.html C# Не найден адресуемый компонент "VBIDE" https://www.cyberforum.ru/ csharp-beginners/ thread632285.html
Подскажите как с этим бороться!!!
Происходит ли "утечка памяти" при повторном выполнении: Bitmap bm1 = new Bitmap C#
Здравствуйте ! Подскажите, пожалуйста, происходит ли "утечка памяти" при создании объекта bm1 и, если не сложно - как её избежать. private void timer1_Tick(object sender, EventArgs e) { if (num < 5) num++; else timer1.Enabled = false;
C# Считывание и запись в файл https://www.cyberforum.ru/ csharp-beginners/ thread632239.html
Здравствуйте! Опишите как считать информацию а потом записать ее в файл на примере: input.txt 5 3 output.txt 8 Тоесть нужно вывести сумму 2-х чисел в input.txt а результат вывести в output.txt
C# Сайты для тренинга Здравствуйте! Извините что может не там тему создал, но все-же... Может кто знает сайты типа: http://********/ Там полно всяких задачек... Только вот там не поддерживается C#! Я вот нашел 1 сайт: http://judge.suiai.edu.ua/ru/ но вот он какой-то не популярный. https://www.cyberforum.ru/ csharp-beginners/ thread632232.html C# Работа с перечислениями
Допустим я обьявил перечисление enum Day { monday = 1, tuesday, wednesday, thursday, friday, saturday, sunday,
C# Использование FileSystemWatcher для поддиректорий https://www.cyberforum.ru/ csharp-beginners/ thread632209.html
Хочу отслеживать изменения в фс (копирование, удаление, создание файлов, переименование). Есть же программы для Windows подобного рода, вот хочу свой вариант небольшой написать. Для этой цели я нашёл FileSystemWatcher (вообще я сначала нашёл FileSystemWatcher, а потом уже захотел написать такое приложение), но он отслеживает не все изменения. Если натравить его на конкретный файл то работать...
C# Оптимальная замена одного текста другим привет как заменить один текст на другой? Точнее какие структуру лучше применить и как заменять? желательно без костылей (без своих функций) вроде bad{ zamena{ q, z, w, x, e c } } string text = "ssdkwewqe"; https://www.cyberforum.ru/ csharp-beginners/ thread632164.html
C чего начать практику по с шарпу для начинающего программера C#
Подскажите, с чего начать практику по с шарпу для начинающего программера??? Теория мало помогает(
C# Запуск Binscope из приложения Короче,надо,чтобы прога на шарпе запускала анализатор Binscope Синтаксис командной строки для запуска таков binscope.exe /output c:\users\kurdenkova\BinScopeLogs /target C:\_TEST.exe /output c:\users\kurdenkova\BinScopeLogs /target C:\_TEST.exe это параметры А теперь вопрос using System; using System.Collections.Generic; using System.Linq;using System.Text; using... https://www.cyberforum.ru/ csharp-beginners/ thread632132.html
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
03.08.2012, 17:48 0

Обращение к элементу коллекции по индексу - C# - Ответ 3326797

03.08.2012, 17:48. Показов 12735. Ответов 8
Метки (Все метки)

Ответ

Я тут подумал и понял, что я идиот. Тут же напрашивается одна структура данных, а я пытаюсь все извратиться через другие... В общем, я тут написал небольшую заготовку (заинтересовала меня эта идея), ногами прошу не пинать, вот моя примерная реализация класса Snake

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
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
 
 
namespace Snake
{
    class Snake
    {
        public enum EDirection //Перечисление направления, куда идем
        {
            N,S,E,W,None
        }
 
        private readonly Dictionary<EDirection, Point> _dictionary = new Dictionary<EDirection, Point> //Словарь, переводит направление в относительные координаты
                                                           {
                                                               {EDirection.N, new Point(0, -1)}, //Север
                                                               {EDirection.S, new Point(0, 1)},  //Юг
                                                               {EDirection.W, new Point(-1, 0)}, //Запад
                                                               {EDirection.E, new Point(1, 0)},  //Восток
                                                               {EDirection.None, new Point(0, 0)}
                                                           };
 
        private struct Segment //Структура сегментов. Фактически тот же Point, только с перегрузкой нескольких операторов, для того, чтобы можно было легко складывать относительные координаты.
        {
            private readonly int _x;
            private readonly int _y;
 
                                                    
            public Segment(int x, int y) : this()   
            {
                _x = x;
                _y = y;
            }
 
            public Segment(Point p) : this(p.X, p.Y) {}
 
            
            public static Segment operator +(Segment lhs, Segment rhs)
            {
                return new Segment(lhs._x + rhs._x, lhs._y + rhs._y);
            }
 
            #region Point<->Segment implementation
 
            public static implicit operator Point(Segment segment)
            {
                return new Point(segment._x, segment._y);
            }
 
            public static implicit operator Segment(Point p)
            {
                return new Segment(p.X, p.Y);
            }
 
            #endregion
        }
 
        private readonly Queue<Segment> _snake; //Сама змейка
        private Segment _head;                  //Голова
        private readonly Size _size;            //Размеры карты
        public static Point Food { get; private set; } //Координаты клетки с едой
        public Snake(int n, Size mapSize)              //Конструктор, определяет размеры карты и начальное количество сегментов змеи
        {
            _snake = new Queue<Segment>();
            _size = mapSize;
            var p = new Point(_size.Width/2 - n/2, _size.Height/2); //Ставим змейку на середину карты
            for (int i = 0; i < n; i++)
            {
                _snake.Enqueue(new Segment(p));
                p.X++;
            }
            _head = p;
        }
 
        public List<Point> GetCoords()
        {
            return _snake.Select(segment => (Point) segment).ToList(); //Возвращаем список координат змеи
        }
 
        public bool Move(EDirection direction)                         //Передвигаем змею. Если она себя кусает, возвращаем true;
        {
            var s = _head + _dictionary[direction];
            if (_snake.Contains(s))
                return true;
            _head = s;
            _snake.Enqueue(s);
            if (_head == Food) //Если змея попала на клетку с едой, мы рандомную клетку заполняем едой
            {
                var r = new Random();
                var p = new Point();
                do
                {
                    p.X = r.Next(_size.Width);
                    p.Y = r.Next(_size.Height);
                } while (!_snake.Contains(p));
                Food = p;
            }
            else _snake.Dequeue(); //Иначе, чтобы змея не увеличилась, убираем последний сегмент
            return false; //Мы себя не укусили, значит false
        }
    }
}


Вернуться к обсуждению:
Обращение к элементу коллекции по индексу C#
Вложения
Тип файла: rar Snake.rar (1.66 Мб, 9 просмотров)
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2012, 17:48
Готовые ответы и решения:

Обращение к элементу ТЧ по индексу
Задали учебную задачу произвести сортировку ТЧ документа не встроенной функцией, а вручную по...

Обращение к элементу по индексу в Virtual String Tree
Приветствую всех. Получаю у элемента AbsoluteIndex. Как далее осуществить обращение к элементу по...

Обращение к элементу коллекции map
Всем привет, есть коллекция map: map &lt;string, vector&lt;string&gt;&gt; mp; В ней содержатся следующие...

Обращение к элементу структуры в коллекции
Здравствуйте, объясните пожалуйста каким образом я могу обратиться к элементу структуры...

8
03.08.2012, 17:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2012, 17:48
Помогаю со студенческими работами здесь

Что быстрее? Обращение к элементу массива или к элементу структуры?
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом и получается...

Binding к индексу внутри коллекции
Доброго времени суток. Вопрос: У нас имеется коллекция неких объектов. У каждого объекта имеется...

Изменение члена коллекции по индексу элемента, используя Reflection
Добрых времени суток. Есть DataGridView, при изменении ячейки которого, нужно изменить и...

QJsonObject обращение по индексу
{ &quot;a&quot; : &quot;100&quot;, &quot;b&quot; : &quot;200&quot;, &quot;c&quot; : &quot;300&quot; } Значение можно достать зная его ключ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru