读书人

C语言写的游戏:quot;能解题者,你就是李白诗

发布时间: 2012-03-28 15:40:03 作者: rapoo

C语言写的游戏:"能解题者,你就是李白诗仙!"
整本C语言二级教材我才看了前4章,C语言不过如此.....
我经常问自己:"我是天才吗?"
"我是天才!".....
本文章献给广大的C语言初学者,劳动者,开发者...
本程序用BC++ Builder,C语言编写。源工程和执行文件下载地址:
http://cid-c3a069dbfb1fcc3d.skydrive.live.com/self.aspx/.Public/BC++%20Game.zip live空间共享文件夹
http://download.csdn.net/source/1739966 CSDN下载,需要2积分

C/C++ code
char Tab=18;void Switchby(char a,char order[][5]);void Prpoem(char poem[][5],char order[]);//游戏由BC++,C语言编写,普通函数不需要加头文件。建议你们还是加上常用的头文件,可以保证某些函数正常使用。void main(){void RandomAnyby(char poem[][5],char order[]);char poem[20][5]={"|床","|前","|明","|月","|光","|疑","|是","|地","|上","|霜",\                  "|\xc5\x65","|\xee\x5e","|\xcd\xfb","|\xc3\xf7","|\xd4\xc2",\                  "|\xb5\xcd","|\xee\x5e","|\xcb\xbc","|  ","|\xe0\x6c"};char order[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};char by;#define T "\t\t"#define H "___________"    system("color e");    Prpoem(poem,order);    getch();    RandomAnyby(poem,order);    while(by=getch()){     if(by=='w'||by=='s'||by=='a'||by=='d')Switchby(by,order);     Prpoem(poem,order);    }}void Prpoem(char poem[][5],char order[]){//gotoxy()函数是界面输出与流畅的关键,千万不要使用clrscr(),"cls",否则本游戏宣布无望。int i;    gotoxy(1,1);    for(i=0;i<20;i++){     if(i==0)printf("\n"T T T"\xec\x6f\n"T H T"\xd2\xb9\n"T);     if(i==5||i==10||i==15)printf("\n"T H"\n"T);     printf("%s",poem[order[i]]);     if(i==4||i==14)printf("|,");else if(i==9||i==19)printf("|.");     if(i==4)printf(T"\xd4\x8a");    }}void Switchby(char a,char order[][5]){int re,i,agen;    switch (a){     case 'w':      re=Tab%5,agen=order[0][re];      for(i=0;i<3;i++)order[i][re]=order[i+1][re];      order[3][re]=agen;Tab=Tab-5<0?15+re:Tab-5;break;     case 's':      re=Tab%5,agen=order[3][re];      for(i=3;i>0;i--)       order[i][re]=order[i-1][re];      order[0][re]=agen;Tab=Tab+5>19?re:Tab+5;break;     case 'a':      re=Tab/5;agen=order[re][0];      for(i=0;i<4;i++)order[re][i]=order[re][i+1];      order[re][4]=agen;Tab=Tab-1<re*5?re*5+4:Tab-1;break;     case 'd':      re=Tab/5;agen=order[re][4];      for(i=4;i>0;i--)order[re][i]=order[re][i-1];      order[re][0]=agen;Tab=Tab+1>re*5+4?re*5:Tab+1;break;     }printf("\t\t%02d",Tab);}void RandomAnyby(char poem[][5],char order[]){//n,难度,=1最简单;之后就要花些脑子咯。15如果你解不了,放心,运气好的时候很容易通关。本人靠运气以过20。char n=20,by,r,i;                srand(time(0));    while(n){    r=(1+rand()%7);              if(11*r%4==0) by='w';    if(11*r%4==1) by='a';    if(11*r%4==2) by='d';    if(11*r%4==3) by='s';    for(i=0;i<r;i++)     Switchby(by,order),Prpoem(poem,order);    n--;}}/*代码合理运用了一维,二维数组。写这样的游戏程序,定以CPU使用为最高标准,否则再简单的代码和再聪明的头脑,也是拖累速度。如果你用VC的请你自行翻译,或者请你将源码贴上来。据我目前了解,VC下要处理两个问题:    1.BC可以使用gotoxy()函数,这个函数只不过移动光标而已。VC不能,但是有其它方法。    2.BC,VC下子过程如何用二维来使用和访问一维数组?BC中直接使用指针就可以了,VC下可能要传递N个指针*/


10年前,我在一所学校的地摊上买了一本....
.....
本文来自我的博客 [url]http://hi.baidu.com/moji4[/url]
从静悄悄的学校里走出来的我,很难再相信......
更详细的代码,著解,背景,思路,原理..请到我的博客去看。
希望明年二级等考可以使用BC++ Builder:

[解决办法]
楼主努力!
[解决办法]
呃 gotoxy ...
[解决办法]
LZ继续加油。。。。
------解决方案--------------------


靠,楼主好强啊,我C语言就不会,感觉看的懂,自己写就写不出来
[解决办法]
楼主加油啊
[解决办法]
佩服、、
[解决办法]
.
[解决办法]
PFPF
[解决办法]
天才楼主,别来CSDN这个小地方了,也别用C语言了,赶紧发明个C++++语言把微软搞掉吧
[解决办法]
有点自信是好的 不过不要盲目自信啊
能解题就是李白诗仙 。。。。 帖子名很像广告 诗仙不是随便谁能封的
[解决办法]
我来看静夜思的
[解决办法]

探讨
我来看静夜思的

[解决办法]
加油,楼主!

我支持你!
[解决办法]
不错,支持你。

读书人网 >C++ Builder

热点推荐