数字版“拼图”游戏C源代码:include include include include include int i, j, r, k; //i、j、r用于循环, k存放随机数值 int m, n; // m、n是当前空位的下标, t标记排序是否成功 int a[4][4]; //存储4×4共16个数字的数组 ...
C语言源代码是什么
就是c语言写的代码,用编程软件编译后就编成exe,就是平时我们用的程序了。2012-02-19
数字版“拼图”游戏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);
}
2020-04-19
平常你看到的exe可执行文件是原代码生成的
C语言和其他高级语言一样都有编译连接的阶段
他生成exe可执行文件的过程是首先
源代码 -------- 通过编译-----生成.o后缀文件----连接函数库和系统的一些库文件-------最后生成exe文件2012-02-19
就是编程人员用相应的语言编写的代码,文本信息2012-02-19
就是一串文字,像记事本打开的文件一样。2012-02-19