Как исползовать 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д