C语言源代码是什么

如题

数字版“拼图”游戏C源代码:

#include<time.h>

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<windows.h>

int i, j, r, k;    //i、j、r用于循环, k存放随机数值


int m, n;     // m、n是当前空位的下标, t标记排序是否成功

int a[4][4];    //存储4×4共16个数字的数组

void show(void);    //输出数组表格

void csh(void);    //初始化界面

int  yes(void);     //判断排序是否成功

void up(void);      //数字向上移动到空位(空位则下移)

void down(void);  //数字向下移

void left(void);   //数字向左移

void rght(void);  //数字向右移

void inkey(void);   //按键操作

void gtxy(int x, int y) ; //控制光标移动的函数

int main(void)

{ while(1)

{csh( );

      while(1)

          { inkey();

           show();

           if ( yes( ) )

              {gtxy(6,12); printf("你成功了! 再来一局y/n?"); break;}

        }

      if(getch( )== ʹnʹ)break;

    }

return 0;

}

void csh(void)

{ r=0;

 CONSOLE_CURSOR_INFO cursor_info={1,0};  //以下两行是隐藏光标的设置

 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

for(i=0;i<4;i++)   //给数组a依序赋值

for(j=0;j<4;j++)
{ if (i==3 && j==3) a[i][j]=0;
else  a[i][j]=1+r++;

a[3][3]=a[1][1]; a[1][1]=0;  //把a[3][3]与a[1][1]的值交换一下

m=1; n=1;

srand((unsigned)time(0));  //初始化随机数发生器

for(r=0;r<500;r++)    //将数组各值打乱
{ k=rand( )%(4);     //取0-3随机数,分别代表上下左右四个方向
switch(k)
{ case 0: { up( ); break; }
case 1: {down( ); break; }
case 2: { left( ); break; }
case 3: { rght( ); break; }
}
}

printf("\n\n\t\t   数字拼图");

printf("\n\t┌──────┬──────┬──────┬──────┐");

printf("\n\t│      │      │      │      │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│      │      │      │      │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│      │      │      │      │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│      │      │      │      │");

printf("\n\t└──────┴──────┴──────┴──────┘");
show( );
}

void show(void)

{for(i=0;i<4;i++)

for(j=0;j<4;j++)  //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字

{gtxy(7*j+9,2*i+4); if(a[i][j]==0)printf("      │");

 else if(a[i][j]>9)printf("  %d  │",a[i][j]);

 else printf("   %d  │",a[i][j]);

}

}

 

void inkey(void)

{ int key;

key=getch( );
switch(key)
{ case 72: { up( ); break; }
case 80: {down( ); break; }
case 75: {left( ); break; }
case 77: { rght( ); break; }
}
}

void up(void)

{ if (m!=3)        //移动时要考虑空位"0"是否已经在边界
{ a[m][n]=a[m+1][n];  m++; a[m][n]=0; }
}


void down(void)

{ if (m!=0)
{a[m][n]=a[m-1][n];  m--; a[m][n]=0; }
}

void left(void)

{ if (n!=3)
{ a[m][n]=a[m][n+1]; n++; a[m][n]=0; }
}
void rght(void)

{ if (n!=0)
{ a[m][n]=a[m][n-1]; n--; a[m][n]=0; }
}

 

int yes(void)

{ r=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ if (a[i][j]!=1+r++) return (r==16)?1:0; }
}

 

void gtxy(int x, int y)  //控制光标移动的函数

{ COORD coord;

  coord.X = x;

  coord.Y = y;

  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-19
平常你看到的exe可执行文件是原代码生成的
C语言和其他高级语言一样都有编译连接的阶段
他生成exe可执行文件的过程是首先
源代码 -------- 通过编译-----生成.o后缀文件----连接函数库和系统的一些库文件-------最后生成exe文件
第2个回答  2012-02-19
就是c语言写的代码,用编程软件编译后就编成exe,就是平时我们用的程序了。本回答被提问者采纳
第3个回答  2012-02-19
就是编程人员用相应的语言编写的代码,文本信息
第4个回答  2012-02-19
就是一串文字,像记事本打开的文件一样。
相似回答