Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Prime_one
12 / 12 / 3
Регистрация: 24.11.2013
Сообщений: 31
#1

Структура в структуре

11.12.2013, 01:20. Просмотров 494. Ответов 4
Метки нет (Все метки)

Пишу карточную игру, есть структура карты и структура игрока, в структуре игрока есть массив структур карт.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public struct Player // Описываем структуру игрока
        {
            public int name;    //имя игрока.
            public Cards[] player_card;                      
        }
 
        public struct Cards // Описываем структуру карты
        {
            public int name;    
            public string masti;             
        }
        Cards [] koloda = new Cards [32];
        Player [] players = new Player [4];
Как глобально инициализировать Cards[] player_card; ? У меня они инициализируются при загрузке формы вот так
C#
1
2
3
4
 for (int i = 0; i < 4; i++)
            {
                players[i].player_card = new Cards [8];
            }
Но из-за этого к players[i].player_card нет доступа из других событий.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2013, 01:20
Ответы с готовыми решениями:

Поиск в структуре
Есть структура Stock в которой есть: предмет, количество, цена.Которая...

Вопрос по структуре кода
Добрый день. У меня есть примерно такой код: while (условие1) { ...

Массив в структуре не заполняется
Уважаемые форумчане , подскажите такой вопрос , имеется структура ...

Сброс флага в структуре KBDLLHOOKSTRUCT
Здравствуйте! Я совершенный новичек в C#. Как программист, тоже до сего момента...

Доступ к структуре через список List
Добрый день. Есть такой вот код: public struct TempS { ...

4
ViterAlex
6413 / 3613 / 1482
Регистрация: 11.02.2013
Сообщений: 7,964
Завершенные тесты: 3
11.12.2013, 01:24 #2
players[i] нужно объявить на уровне класса
0
Prime_one
12 / 12 / 3
Регистрация: 24.11.2013
Сообщений: 31
11.12.2013, 01:42  [ТС] #3
Сделал из структуры игрока класс, теперь даже так
C#
1
2
3
4
 for (int i = 0; i < 4; i++)
            {
                players[i].player_card = new Cards [8];
            }
не инициализирует. Точнее теперь это
C#
1
Player [] players = new Player [4];
не работает, не могу получить доступ к players[i].
0
агерон
314 / 280 / 57
Регистрация: 12.10.2009
Сообщений: 1,098
11.12.2013, 02:07 #4
сделай как то так
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
using System.Collections.Generic;
 
namespace _1036742
{
    public enum ESuit
    {
        Hearts,
        Diamonds,
        Clubs,
        Spades
    }
 
    public enum EWeight
    {
        Six,
        Seven,
        Eight, 
        Nine, 
        Ten, 
        Jack, 
        Queen, 
        King, 
        Ace
    }
 
    public class Card
    {
        public Card(ESuit suit, EWeight weight)
        {
            Suit = suit;
            Weight = weight;
        }
 
        public ESuit Suit { get; set; }
        public EWeight Weight { get; set; }
    }
 
    public class Player
    {
        public Player(string name, List<Card> cards)
        {
            Name = name;
            Cards = cards;
        }
 
        public string Name { get; set; }
        public List<Card> Cards { get; set; }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}
0
Grishaco
436 / 360 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
11.12.2013, 10:45 #5
Если я правильно понял, вам не хочется делать вот так

C#
1
players[i].player_card = new Cards [8];
Тогда добавьте конструктор в структуру Player, передавайте туда значение массива player_card и в нем ее инициализируйте, только без явного вызова конструктора, вы получите структуру без инициализации

C#
1
2
3
4
5
6
7
8
9
10
public struct Player // Описываем структуру игрока
    {
        public int name; //имя игрока.
        public Cards[] player_card;
 
        public Player(int i) : this()
        {
            player_card = new Cards[i];
        }
    }
0
11.12.2013, 10:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2013, 10:45

Рекурсивная функция для подсчета количества в структуре TreeView
Здравствуйте. Прошу помочь разобраться и написать рекурсивную функцию для...

Может ли порядок объявления переменных в структуре влиять на ее размер?
Здравствуйте. Недавно обнаружил интересную вещь. Есть вот такой код: struct A...

Структура программы
Здравствуйте. Есть класс Form1 и еще несколько классов реализующих логику, а...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru