我对C ++很新,看了几个关于如何包含第二个cpp文件的其他主题,不确定我到底做错了什么...我主要是从网格数组和枚举中得到错误,以及显然我不能使用void作为minimax.h文件?只要我单独编译,main.cpp文件的其余部分就可以正常工作
minimax.cpp
#include <stdio.h> /* printf, scanf, puts, NULL */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
void minimax(Grid& grid, Color color_player)
{
int AI_Play;
/* initialize random seed: */
srand (time(NULL));
/* generate secret number between 0 and grid size: */
AI_Play = rand() % grid.size() + 0;
play(grid, AI_Play, color_player)
}
minimax.h
#ifndef MINIMAX_H_INCLUDED
#define MINIMAX_H_INCLUDED
minimax(Grid& grid, Color color_player)
#endif // MINIMAX_H_INCLUDED
的main.cpp
#include <SDL.h>
#include <stdio.h>
#include <array>
#include <iostream>
#include <minimax.h>
using namespace std;
//Connect Four Array
#define COLUMN 6
#define ROW 7
//Screen dimension constants
const int SCREEN_WIDTH = 364;
const int SCREEN_HEIGHT = 312;
enum Color {red, black, nothing};
typedef array<array<Color, ROW>, COLUMN> Grid;
答案 0 :(得分:0)
尝试更改
#include <minimax.h>
到
#include "minimax.h"
<header name>
用于内置标题。
您需要在Color
中加入Grid
和minimax.h
声明,或将其放在文件中的某个位置,然后将其包含在minimax.h
中。您的minimax.cpp
还应包含minimax.h
答案 1 :(得分:0)
您需要将Grid
和Color
的声明移至minimax.h - 否则他们将无法在minimax.cpp中看到。您还需要包含minimax.cpp中的minimax.h
此外,您应该声明返回类型&#39; void&#39;在你的函数中.h。文件。
答案 2 :(得分:0)
minimax()
不知道Grid
和Color
是什么,因为在定义minimax()
之前没有定义它们。您的代码需要看起来更像这样:
minimax.h
#ifndef MINIMAX_H_INCLUDED
#define MINIMAX_H_INCLUDED
#include <array>
//Connect Four Array
#define COLUMN 6
#define ROW 7
enum Color {red, black, nothing};
typedef std::array<std::array<Color, ROW>, COLUMN> Grid;
void minimax(Grid& grid, Color color_player);
#endif // MINIMAX_H_INCLUDED
minimax.cpp
#include "minimax.h"
#include <stdio.h> /* printf, scanf, puts, NULL */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
void minimax(Grid& grid, Color color_player)
{
int AI_Play;
/* initialize random seed: */
srand (time(NULL));
/* generate secret number between 0 and grid size: */
AI_Play = rand() % grid.size() + 0;
play(grid, AI_Play, color_player);
}
的main.cpp
#include <SDL.h>
#include <stdio.h>
#include <iostream>
#include "minimax.h"
//Screen dimension constants
extern const int SCREEN_WIDTH;
extern const int SCREEN_HEIGHT;
// use minimax() as needed, eg...
int main()
{
Grid grid;
...
minimax(grid, black);
...
return 0;
}