|
1楼 /*进入tc运行游戏,按上下左右键控制,任何时候按ESC键退出*/ #include <stdio.h> #include <conio.h> #include <dos.h> #include <graphics.h> #define LEFT 120 #define TOP 40 #define RIGHT 520 #define BOTTOM 440 #define SMALL 20 int b[20][20]; /*用来保存地图信息*/ b[20][20]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1}, {1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1}, {1,0,1,0,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1}, {1,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,1,0,1}, {1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,0,0,1,0,1}, {1,1,0,0,1,1,0,0,1,0,0,1,0,1,1,0,1,0,0,1}, {1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,1}, {1,0,1,1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1}, {1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,1,1}, {1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,1}, {1,0,1,1,1,0,0,1,1,1,0,1,1,0,1,0,1,1,0,1}, {1,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1}, {1,1,0,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,1,1}, {1,0,0,0,1,0,1,1,0,1,0,1,0,0,0,1,0,0,0,1}, {1,0,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,1}, {1,0,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1}, {1,0,1,1,0,0,0,0,1,0,1,1,0,0,1,0,0,0,1,1}, {1,0,0,0,0,1,0,1,1,0,0,0,0,1,1,0,1,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}}; void drawcake(int x,int y) /*划方块*/ { setfillstyle(SOLID_FILL,BLUE); bar(LEFT+1+x*SMALL,TOP+1+y*SMALL,RIGHT-1-19*SMALL+x*SMALL,BOTTOM-1-19*SMALL+y*SMALL); } void draw(int x,int y) /*划小方块*/ { setfillstyle(SOLID_FILL,RED); bar(LEFT+5+x*SMALL,TOP+5+y*SMALL,RIGHT-5-19*SMALL+x*SMALL,BOTTOM-5-19*SMALL+y*SMALL); } void undraw(int x,int y) /*擦去小方块*/ { setfillstyle(SOLID_FILL,BLACK); bar(LEFT+5+x*SMALL,TOP+5+y*SMALL,RIGHT-5-19*SMALL+x*SMALL,BOTTOM-5-19*SMALL+y*SMALL); } main() { int gr=DETECT,gm,k=0,i,j,x=1,y=1,ch; float f; initgraph(&gr,&gm,""); cleardevice(); setbkcolor(0); for(i=0;i<20;i++) for(j=0;j<20;j++) if(b[i][j]==1)drawcake(j,i); draw(x,y); do{ ch=bioskey(0); switch(ch) { case 19200: /*按向左键*/ if(b[y][x-1]==0) { undraw(x,y); b[y][x]=0; x--; draw(x,y); b[y][x]=2; break; } case 19712: /*按向右键*/ if(b[y][x+1]==0) { undraw(x,y); b[y][x]=0; x++; draw(x,y); b[y][x]=2; break; } case 18432: /*按向上键*/ if(b[y-1][x]==0) { undraw(x,y); b[y][x]=0; y--; draw(x,y); b[y][x]=2; break; } case 20480: /*按向下键*/ if(b[y+1][x]==0) { undraw(x,y); b[y][x]=0; y++; draw(x,y); b[y][x]=2; break; } } if(b[18][18]==2)ch=283; }while(ch!=283); if(b[18][18]==2)printf(" 恭贺你成功地走出了迷宫!"); getch(); } /*此程序所有权归计算机网络安全研究协会,另外我编有地图编辑器,以后再发*/ /*柳云飞2004-11-3*/ /*c语言并不难,只要你认真学,对他感兴趣*/ |
|
|
|
| 211.69.22.* |
4楼 |
|
|
|
8楼 (接上)我最近编的程序----迷宫的地图编辑器 : http://post.baidu.com/f?kz=5823783 |
|
|
|
|
10楼 |
|
|
|
| 202.116.20.* |
11楼 你说的好象在c语言好象不行,用背景色很好了. |
|
|
| 218.22.29.* |
13楼 我也想买一本 有什么好书介绍给我啊 |
|
|
| 218.58.53.* |
14楼 |
|
|
| 218.19.34.* |
15楼 不过不可以随机生成. 我也想写一个,要随机生成的... QQ:375020128 |
|
|
| 211.87.135.* |
18楼 |
|
|
| 220.172.75.* |
19楼 希望有这方面爱好的加我: QQ:81933797 |
|
|
| 218.19.34.* |
20楼 http://post.baidu.com/f?kz=11120413 |
|
|
| 202.206.40.* |
21楼 说明: 计算机从文件中随机抽取指定长度的单词(长度由玩家决定),随机显示单词中的若干字母给玩家,在限定次数内猜中得分,否则失分,结束游戏时显示总分。 要求:1.单词保存在文件中。2.单词由计算机随机抽出。3.单词中显示的字母由计算机随机抽出。4.由程序计算得失分值。5.玩家按"ESC"退出。 麻烦哪位大哥、大姐帮忙编个c语言程序,不胜感谢!!! 说明: 计算机从文件中随机抽取指定长度的单词(长度由玩家决定),随机显示单词中的若干字母给玩家,在限定次数内猜中得分,否则失分,结束游戏时显示总分。 要求:1.单词保存在文件中。2.单词由计算机随机抽出。3.单词中显示的字母由计算机随机抽出。4.由程序计算得失分值。5.玩家按"ESC"退出。 麻烦哪位大哥、大姐帮忙编个c语言程序,不胜感谢!!! 说明: 计算机从文件中随机抽取指定长度的单词(长度由玩家决定),随机显示单词中的若干字母给玩家,在限定次数内猜中得分,否则失分,结束游戏时显示总分。 要求:1.单词保存在文件中。2.单词由计算机随机抽出。3.单词中显示的字母由计算机随机抽出。4.由程序计算得失分值。5.玩家按"ESC"退出。 |
|
|
| 218.77.73.* |
24楼 上面的程序可以运行呀,用TC编译吧! |
|
|
| 61.167.60.* |
25楼 |
|
|
| 221.8.35.* |
26楼 |
|
|
| 210.31.112.* |
28楼 楼主,运行你这个程序时候左方向键和上方向键碰墙时自动弹回,而右和下不会 是什么原因啊 |
|
|
| 210.31.112.* |
29楼 可大家谁知道是什么原因啊 先谢啊 |
|
|
| 210.21.11.* |
30楼 |
|
|
| 221.232.143.* |
31楼 |
|
|
|
32楼 case 19200: /*按向左键*/ if(b[y][x-1]==0) { undraw(x,y); b[y][x]=0; x--; draw(x,y); b[y][x]=2; break; } 这段是怎么运行的,看不太懂啊~~` 解说一下,先谢~~~~`` |
|
|
|
