Как исползовать struct с enum - C (СИ)
Формулировка задачи:
Начал писать простенькие шахматы (просто с соблюдением правильности ходов).
Вот набросок:
Не знаю как присвоить полям фигуры.
Помогите пожалуйста.
#include <stdio.h> #include <stdlib.h> typedef struct{ enum color {White,Black}; enum pieceName {Pawn,Knight,Bishop,Rook,Queen,King}; }Piece; typedef struct{ enum vertical {a=1,b,c,d,e,f,g,h}; int horizontal[8] = {1,2,3,4,5,6,7,8}; Piece p; }Field; Field board[8][8]; int initialize(){ enum vertical a; int j; for(i=a;i<=h;i++){ for(j=1;j<=8;j++){ if(i==a){ if(j==1 || j==8){ Piece whiteRook; // board[i][j].piece = } } } } } int move(Field from, Field to){ if(isLegalMove(from, to)){ return 1; } else{ return 0; } } int isLegalMove(Field from, Field to){ return 1; } int main(void) { return EXIT_SUCCESS; }
Решение задачи: «Как исползовать struct с enum»
textual
Листинг программы
enum color {w, b}; enum piece_type {pawn, knight, bishop, rook, queen, king}; struct piece { enum color color; enum piece_type piece; } /* Создаем объект струкуры */ struct piece p; /* Заполнение структуры */ p.color = b; p.piece = rook; /* Или то же самое, но сразу при создании */ struct piece p = {b, rook};
Объяснение кода листинга программы
- Объявляется перечисление
color
с двумя значениями:w
иb
. - Объявляется перечисление
piece_type
с шестью значениями:pawn
,knight
,bishop
,rook
,queen
,king
. - Создается структура
piece
, которая содержит два поля:color
иpiece
. - Инициализируется объект структуры
piece
с именемp
. - Присваивается значение полю
color
объектаp
равноеb
. - Присваивается значение полю
piece
объектаp
равноеrook
. - Или же можно инициализировать объект структуры
piece
сразу при создании с помощью списка значений в фигурных скобках, например,b, rook
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д