Как исползовать 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};

Объяснение кода листинга программы

  1. Объявляется перечисление color с двумя значениями: w и b.
  2. Объявляется перечисление piece_type с шестью значениями: pawn, knight, bishop, rook, queen, king.
  3. Создается структура piece, которая содержит два поля: color и piece.
  4. Инициализируется объект структуры piece с именем p.
  5. Присваивается значение полю color объекта p равное b.
  6. Присваивается значение полю piece объекта p равное rook.
  7. Или же можно инициализировать объект структуры piece сразу при создании с помощью списка значений в фигурных скобках, например, b, rook.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5