| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 739 人关注过本帖
标题:俄罗斯的问题??
取消只看楼主 加入收藏
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
结帖率:100%
收藏
已结贴  问题点数:50 回复次数:6 
俄罗斯的问题??
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <bios.h>
#include <dos.h>
#define SPACE 0x3920
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x011b
#define WIDTH 12 /**/
#define HIGH 22 /**/
#ifndef CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 18
#endif
int x=230,y=40;
struct block
{
int a[4][2];
int color;
}box[]={
{1,0,1,0,1,0,1,0,2},
{1,1,0,1,0,1,0,0,6},
{1,1,1,0,1,0,0,0,7},
{0,1,1,1,0,1,0,0,9}
};
showbox(int n)
{
int i,j;
setcolor(8);
setfillstyle(1,box[n].color);
for(i=0;i<4;i++)
for(j=0;j<2;j++)
{
if(box[n].a[i][j]==1)
{rectangle(x+i*20,y+j*20,x+i*20+20,y+j*20+20);
floodfill(x+i*20+10,y+j*20+10,8);}
}
}
clearbox()
{
int i,j;
setcolor(14);
setfillstyle(1,14);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{rectangle(x+i*20,y+j*20,x+i*20+20,y+j*20+20);
floodfill(x+i*20+10,y+j*20+10,14);}
}
initgame()
{
int gdriver=DETECT,gmode;
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver,&gmode,"");
cleardevice();
}
showgame()
{
int i,j;
setcolor(9);
setfillstyle(1,14);
rectangle(200,40,400,440);
floodfill(210,41,9);
moveto(100,40);
outtext("vs by xufan");
rectangle(98,38,190,60);
}
main()
{ int n;
int key;
initgame();
showgame();
n=rand()%4;
showbox(n);
while(!kbhit())
{key=bioskey(0);
if(key==ESC)
return 0;
if(key==DOWN)
{clearbox();y+=20;showbox(n);}
}

}
 这个是我的代码 我的意思是 界面上一个方块由我键盘控制下降 没有变形 不自已下落,也就是说它是静止的方块降到我和界面底后 我想再出来一个方块 我用 if(y>=440) goto loop; 可是不行 不是运行不了 是我一按下键 就退出了 这个要怎么解决啊 ??  
 也可以用你们自己的方法,总之是实现方块的再现 就OK
搜索更多相关主题的帖子: 俄罗斯 
2010-12-22 15:37
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
哎!
2010-12-22 15:46
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
是不是没注释啊 我加
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <bios.h>
#include <dos.h>
#define SPACE 0x3920
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x011b
#define WIDTH 12 /**/
#define HIGH 22 /**/
#ifndef CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 18
#endif
int x=230,y=40;/*方块的起始坐标*/
struct block/*方块结构*/
{
int a[4][2];
int color;
}box[]={
{1,0,1,0,1,0,1,0,2},
{1,1,0,1,0,1,0,0,6},
{1,1,1,0,1,0,0,0,7},
{0,1,1,1,0,1,0,0,9}
};
showbox(int n)/*显示方块*/
{
int i,j;
setcolor(8);
setfillstyle(1,box[n].color);
for(i=0;i<4;i++)
for(j=0;j<2;j++)
{
if(box[n].a[i][j]==1)
{rectangle(x+i*20,y+j*20,x+i*20+20,y+j*20+20);
floodfill(x+i*20+10,y+j*20+10,8);}/*填充颜色*/
}
}
clearbox()/*清除方块*/
{
int i,j;
setcolor(14);
setfillstyle(1,14);
for(i=0;i<4;i++)
for(j=0;j<4;j++)/*这里我改成了 主要是到底的时候问题j<2*/
{rectangle(x+i*20,y+j*20,x+i*20+20,y+j*20+20);
floodfill(x+i*20+10,y+j*20+10,14);}/*用游戏背景色填充*/
}
initgame()/*画图初始化*/
{
int gdriver=DETECT,gmode;
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver,&gmode,"");
cleardevice();
}
showgame()/*游戏主界面*/
{
int i,j;
setcolor(9);
setfillstyle(1,14);
rectangle(200,40,400,440);
floodfill(210,41,9);
moveto(100,40);
outtext("vs by xufan");
rectangle(98,38,190,60);
}
main()
{ int n;
int key;
initgame();
showgame();
n=rand()%4;
showbox(n);
while(!kbhit())
{key=bioskey(0);
if(key==ESC)
return 0;
if(key==DOWN)
{clearbox();y+=20;showbox(n);}
}

2010-12-22 15:54
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
我用if(y>=440) 这个貌似没作用 不知道咋搞的
2010-12-22 16:16
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
自己顶下
2010-12-22 16:47
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
没有回答 还是??
2010-12-22 19:21
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
OK 好了 !
2010-12-22 20:21
快速回复:俄罗斯的问题??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055912 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved