#include 在v++中怎么搞???

跳舞的傻子 2014-04-24 12:55:19
最近在自学c,找了个源码 想敲一下!但是错的!!求大神 帮帮忙!
#include <graphics.h>
#include <stdio.h>
#include <algorithm>

int inv_number(int parr[]) {
int sum = 0;
for ( int i = 0; i < 15; ++i ) { // calc inversion number
for ( int j = 0; j < i; ++j ) {
if ( parr[j] > parr[i] ) ++sum;
}
}
return sum;
}

void make_random_map( int arr[][4] ) {
int a, b, sum;
int* parr = ( int* )arr;
for ( int i = 0; i<16; ++i) { // 初始化
parr[i] = i + 1;
}
std::reverse( &parr[4], &parr[8] ); // 调整为
std::reverse( &parr[12], &parr[15] ); // Z形排列
sum = inv_number(parr) % 2; // 算出Z形的逆序数
for ( int i = 0; i<10000; i++ ) { // 打乱
a = random( 15 );
b = random( 15 );
std::swap( parr[a], parr[b] );
}
sum ^= inv_number(parr) % 2; // 与打乱后的逆序数比较
if ( sum ) std::swap( parr[0], parr[1] ); // 奇数则相邻对调一次,保证为偶数
std::reverse( &parr[4], &parr[8] ); // 还原为
std::reverse( &parr[12], &parr[15] ); // 原排列
}

void draw_gameview( int arr[][4] ) {
cleardevice();
PIMAGE img = newimage();
for ( int i = 0; i < 4; i++ ) {
for ( int j = 0; j < 4; j++ ) {
char resName[16];
if ( arr[i][j] != 16 ) {
sprintf( resName, "TU%d", arr[i][j] );
getimage( img, "IMAGE", resName );
putimage( i*200, j*150, img );
}
}
}
}

void game_control( int arr[][4] ) {
int x, y;
for ( int i = 0; i < 4; i++ ) {
for ( int j = 0; j < 4; j++ )
if ( arr[i][j]==16 ) x = i, y = j;
}
key_msg k = getkey();
if ( k.msg == key_msg_down && k.key == key_up ) {
if ( y < 3 )
std::swap( arr[x][y], arr[x][y+1] );
} else if ( k.msg == key_msg_down && k.key == key_down ) {
if ( y > 0 )
std::swap( arr[x][y], arr[x][y-1] );
} else if ( k.msg == key_msg_down && k.key == key_left ) {
if ( x < 3 )
std::swap( arr[x][y], arr[x+1][y] );
} else if ( k.msg == key_msg_down && k.key == key_right ) {
if ( x > 0 )
std::swap( arr[x][y], arr[x-1][y] );
}
}

int are_you_win( int arr[][4] ) {
int sum = 0;
for ( int i = 0; i < 4; i++ ) {
for ( int j = 0; j < 4; j++ )
if ( arr[i][j] == j*4+i+1 )
sum++;
}
if ( sum >= 16 ) {
PIMAGE img = newimage();
getimage( img, "IMAGE", "WIN" );
putimage( 0, 0, img );
return 1;
}
return 0;
}

void welcome() {
PIMAGE img = newimage();
getimage( img, "IMAGE", "START" );
putimage( 0, 0, img );
getkey();
delimage( img );
}

int main() {
setinitmode( 0 );
initgraph( 800, 600 );
setrendermode( RENDER_MANUAL );
randomize();

welcome();
{
int arr[4][4]= {0};
make_random_map( arr );

draw_gameview( arr );
while ( !are_you_win( arr ) ) {
game_control( arr );
draw_gameview( arr );
}
}
getch();
closegraph();
return 0;
}

错误代码
cpp(1) : fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory
...全文
366 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
乐百川 2014-04-24
  • 打赏
  • 举报
回复
貌似需要装对应的图形库,而且每个图形库用法还大同小异……
baichi4141 2014-04-24
  • 打赏
  • 举报
回复
graphics.h并不是C标准库,不同的编译器有的有这个库有的没有,即使有也不代表和其他编译器的版本相同 要学的话,找一些符合你所用编译器的源码,或者找一些符合语言标准的源码

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧