求俄罗斯方块高手视频帮助

俄罗斯方块设计思路_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
俄罗斯方块设计思路
上传于||文档简介
&&讲​解​了​利​用​ ​单​片​ ​及​ 26设​计​额​落​实​方​块​的​具​体​思​路​ ​给​那​些​单​片​机​的​初​学​者​提​供​些​许​思​路
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢最强大脑第三季18岁少年盲打俄罗斯方块
最强大脑第三季吴淞昊资料背景曝光 盲打俄罗斯方块太牛气
时间: 17:26:51&&来源:&&编辑:网易娱乐
  吴淞昊300秒盲打俄罗斯方块引震惊
  本期节目中,吴淞昊将挑战&挺住300秒&盲打俄罗斯方块。不同于以往挑战项目&单打独斗&的风格,这一次,吴淞昊还将面临与6位俄罗斯方块高手同台竞技的考验!
  正式挑战前,吴淞昊小试牛刀,与高手们&拼手速&速打俄罗斯方块,速度之快让人根本来不及看清方块下落的过程。
  他的表现让评审陶晶莹惊呼:&简直是幽灵般的俄罗斯方块!& 郭敬明也惊叹道:&超酷的!&而在正式挑战中,吴淞昊面临的将是&盲打&俄罗斯方块,游戏界面10行以下会被遮挡!
  吴淞昊只有30秒的时间观察初始残局,还要在300秒内不触及警戒线,难度将大大升级!
  任志强又放&大炮& 质疑节目用托儿
  而吴淞昊的表现却引起了大佬任志强的质疑。他首先怀疑现场其他6位俄罗斯方块是不是托儿,对此,主持人蒋昌建表示这些高手都是从网上招募,所有招募的电子痕迹也是有存留的。紧接着,任志强又质疑吴淞昊的能力更关乎小脑与大脑无关,他指出&小脑占主导地位,大脑占次要地位&。
  而Dr.魏认为吴淞昊在速打的过程中用到了空间能力、计算能力,而这些都是大脑功能,所以大脑在这个过程中并非占次要地位。
相关搜索词
最八卦观娱
近期,电视剧《新边城浪子》正在热播,剧
陈坤 被台媒爆料删光和赵薇的合影,仔细
《半妖倾城》中聂倾城和明夏两个人之间的
《致我们终将逝去的青春》电视剧版的郑微
霍建华林心如相识相知十多年,已经是老熟
李易峰被谣传吸毒谁是幕后黑手,吴亦凡被
两档节目从开播就受到很多关注,最大的卖
近两年盗墓题材的影视作品已经成为了一种
近日,继《太子妃升职记》被下架之后,《
《笑傲江湖》第二季已经完美收官了,那么
尚之潮-尚品生活 潮行天下 shangc.net, Inc. Rights Reserved.鲁ICP备号只需一步,快速开始
后使用快捷导航没有帐号?
查看: 473|回复: 10
俄罗斯方块正在进行时,求高手帮着看看哪里错了,附思路
签到天数: 118 天[LV.6]常住居民II
本帖最后由 漠水 于
11:10 编辑
(1)建立一个二维数组利用结构体space-&a[][]作为存储空间,首次初始化令数组空间存储为0,当存储为1时显示
(2)应用结构体变量存储方块在矩阵中的位置p-&a1,p-&a2和偏移p-&x,p-&y
(3)利用链表节点作为方块,判断遍历,输出和判断方块的位置和是否碰底或接触
(4)接触后到达底部或者即将碰撞则直接存储入二维数组,利用横坐标p-&a+p-&x和纵坐标p-&a2+p-&y判断
问题是,碰底后消失?看不出问题在哪里,(问题应该在judge函数中)求解答?第一个是显示的界面,第二个是测试的界面界面,发现测试的结果是
循环停止在判断条件成立的时候,求解释
已完成旋转(进行),左右下的位移,下面是显示界面代码
#include&stdio.h&
#include&conio.h&
#include&malloc.h&
#include&graphics.h&
#define NULL 0
#define kuan 15
#define gao 30
typedef struct h //构建节点,a1,a2代表在矩阵中的坐标(a1,a2),x,y代表位移
{
int a1,a2,x,y;
struct h *
}h;
typedef struct space //定义空间
{
int a[kuan][gao];
}
space *creatspace() //创建初始化空间,a[30][15]=0
{
int x,y;
space *p;
p=(space *)malloc(sizeof(space));
for(x=0;x&x++)
for(y=0;y&y++)
p-&a[x][y]=0;
void out(space *p) //空间输出
{
int x,y;
for(x=0;x&x++)
for(y=0;y&y++)
if(p-&a[x][y]==1)
{
setfillcolor(YELLOW);
bar(x*10,y*10,x*10+10,y*10+10);
}
}
h *creat(int n)
{
h *head,*p1,*p2,*p3,*p4;
head=(h*)malloc(sizeof(h));
p2=(h*)malloc(sizeof(h));
p3=(h*)malloc(sizeof(h));
p4=(h*)malloc(sizeof(h));
p1=
p1-&next=p2;
p2-&next=p3;
p3-&next=p4;
p4-&next=NULL;
if(n==1) //判定显示什么样的方块--|
{
p1-&a1=0;
p1-&a2=0;
p2-&a1=0;
p2-&a2=1;
p3-&a1=0;
p3-&a2=2;
p4-&a1=1;
p4-&a2=2;
p1-&x=p2-&x=p3-&x=p4-&x=p1-&y=p2-&y=p3-&y=p4-&y=2;
}
void xian(h *head) //显示
{
h *p;
p=
while(p!=0)
{
setfillcolor(YELLOW);
bar((p-&a1+p-&x)*10,(p-&a2+p-&y)*10,(p-&a1+p-&x)*10+10,(p-&a2+p-&y)*10+10);
void xiao(h *head) //消失
{
h *p;
p=
while(p!=0)
{
setfillcolor(BLACK);
bar((p-&a1+p-&x)*1,(p-&a2+p-&y)*10,(p-&a1+p-&x)*10+10,(p-&a2+p-&y)*10+10);
void xuan(h *head) //旋转
{
p=
while(p!=0)
{
a=p-&a1;
p-&a1=2-p-&a2;
p-&a2=a;
p=p-&
//方向开始
void left(h *head)
{
p=
while(p!=NULL)
{
p-&x=p-&x-1;
p=p-&
}
}
void right(h *head)
{ h *p;
p=
while(p!=NULL)
{
p-&x=p-&x+1;
p=p-&
}
}
void down(h *head)
{ h *p;
p=
while(p!=NULL)
{
p-&y=p-&y+1;
p=p-&
}
}
//方向结束
int judge(space *p,h *head) //判定方块是否到底,交接存储,将方块的横纵坐标存入存储空间space中
{
int e=0;
h *q;
q=
while(q!=NULL)
{
if(p-&a[q-&a1+q-&x][q-&a2+(q-&y)+1]==1||(q-&a2+q-&y)==gao) e=1; //直接y的下一个已经有值或者到底了
if(e==1)
{
q=
while(q!=NULL)
{
p-&a[q-&a1+q-&x][q-&a2+q-&y]=1;
}
}
void main()
{
int a[4][4];
int e=0;
space *p;
p=creatspace();
h * //初始化开始
initgraph(kuan*10,gao*10); //建立图像
head=creat(1); // 创建新的方块
while(1)
{ xian(head);
Sleep(500);
xiao(head);
if(!kbhit())
{
down(head);
}
else
{
if(getch()==119) //w键
{
xuan(head);
}
down(head); //无论是否键入都要向下一格
} //else结束
e=judge(p,head);
if(e==1)
{
head=creat(1);
e=0;
}
out(p);
} //while结束
closegraph();
#include&stdio.h&
#include&conio.h&
#include&malloc.h&
#include&graphics.h&
#define NULL 0
#define kuan 15
#define gao 30
typedef struct h //构建节点,a1,a2代表在矩阵中的坐标(a1,a2),x,y代表位移
{
int a1,a2,x,y;
struct h *
}h;
h *creat(int n)
{
h *head,*p1,*p2,*p3,*p4;
head=(h*)malloc(sizeof(h));
p2=(h*)malloc(sizeof(h));
p3=(h*)malloc(sizeof(h));
p4=(h*)malloc(sizeof(h));
p1=
p1-&next=p2;
p2-&next=p3;
p3-&next=p4;
p4-&next=NULL;
if(n==1) //判定显示什么样的方块--|
{
p1-&a1=0;
p1-&a2=0;
p2-&a1=0;
p2-&a2=1;
p3-&a1=0;
p3-&a2=2;
p4-&a1=1;
p4-&a2=2;
p1-&x=p2-&x=p3-&x=p4-&x=p1-&y=p2-&y=p3-&y=p4-&y=2;
}
void xuan(h *head) //旋转
{
p=
while(p!=0)
{
a=p-&a1;
p-&a1=2-p-&a2;
p-&a2=a;
p=p-&
//方向开始
void down(h *head)
{ h *p;
p=
while(p!=NULL)
{
p-&y=p-&y+1;
printf(&p-&a1=%d p-&a2=%d p-&x=%d p-&y=%d\n&,p-&a1,p-&a2,p-&x,p-&y);
p=p-&
//方向结束
typedef struct space //定义空间
{
int a[kuan][gao];
}
space *creat() //创建初始化空间,a[30][15]=0
{
int x,y;
space *p;
p=(space *)malloc(sizeof(space));
for(x=0;x&x++)
for(y=0;y&y++)
p-&a[x][y]=0;
void out(space *p) //空间输出
{
int x,y;
for(x=0;x&x++)
for(y=0;y&y++)
if(p-&a[x][y]==1)
{
printf(&p-&a[%d][%d]=%d&,x,y,p-&a[x][y]);
}
}
int judge(space *p,h *head) //判定方块是否到底,交接存储,将方块的横纵坐标存入存储空间space中
{
int e=0;
h *q;
q=
while(q!=NULL)
{
if(p-&a[q-&a1+q-&x][q-&a2+(q-&y)+1]==1||(q-&a2+q-&y)==gao) e=1; //直接y的下一个已经有值或者到底了
if(e==1)
{
q=
while(q!=NULL)
{
p-&a[q-&a1+q-&x][q-&a2+q-&y]=1;
}
}
void main()
{
int e=0;
space *p;
p=creat();
h * //初始化开始
head=creat(1); // 创建新的方块
while(1)
{
Sleep(1000);
if(!kbhit())
{
down(head);
}
else
{
if(getch()==119) //w键
{
xuan(head);
}
down(head); //无论是否键入都要向下一格
} //else结束
e=judge(p,head);
if(e==1)
{
head=creat(1);
e=0;
}
out(p);
printf(&\n&);
} //while结束
汗。。。。。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 632 天[LV.9]以坛为家II
汗。。。。。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 118 天[LV.6]常住居民II
一个q=q-&next忘记加叫让我卡了一天,悲催的试调啊
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 118 天[LV.6]常住居民II
judge函数中第二个循环if(e==1)中后面忘记q=q-&next
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 26 天[LV.4]偶尔看看III
我草,你写的注释太简单了,自己能看懂吗
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 118 天[LV.6]常住居民II
我草,你写的注释太简单了,自己能看懂吗
呃,问题已经被我自己解决了,注释基本上都在最前面啊,就是怕你们看不懂所以才把基本思路给说了,其实变量就是2个结构体,一个是存储空间space,存储二维数组的,一个是用来链表用来存储方块的,下面是已经修改过的代码#include&stdio.h&
#include&conio.h&
#include&malloc.h&
#include&graphics.h&
#define NULL 0
#define kuan&&15
#define gao& &30
typedef struct h& && &&&//构建节点,a1,a2代表在矩阵中的坐标(a1,a2),x,y代表位移
{
int a1,a2,x,y;& && && && &
struct h *
}h;
typedef struct space& && && &//定义空间
{
& & & & int& & & & a[kuan][gao];
}
space *creatspace()& && && && && &//创建初始化空间,a[30][15]=0
{
& & & & int x,y;
& & & & space *p;
& & & & p=(space *)malloc(sizeof(space));
& & & & for(x=0;x&x++)
& & & & for(y=0;y&y++)
& & & & & & & & p-&a[x][y]=0;
& & & &
}
void out(space *p)& && && & //空间输出
{
& & & & int x,y;
& & & & & & & & for(x=0;x&x++)
& & & & & & & & for(y=0;y&y++)
& & & & & & & & if(p-&a[x][y]==1)
& & & & & & & & {
& & & & & & & & & & & & setcolor(BLUE);
& & & & & & & & & & & & setfillcolor(YELLOW);
& & & & & & & & & & & & bar(x*10,y*10,x*10+10,y*10+10);
& & & & & & & & }
}
h *creat(int n)
{
h *head,*p1,*p2,*p3,*p4;
head=(h*)malloc(sizeof(h));
p2=(h*)malloc(sizeof(h));
p3=(h*)malloc(sizeof(h));
p4=(h*)malloc(sizeof(h));
p1=
p1-&next=p2;
p2-&next=p3;
p3-&next=p4;
p4-&next=NULL;
& & & & if(n==1)& && && && && & //判定显示什么样的方块--|
& & & & {
& & & & p1-&a1=0;
& & & & p1-&a2=0;
& & & & p2-&a1=0;
& & & & p2-&a2=1;
& & & & p3-&a1=0;
& & & & p3-&a2=2;
& & & & p4-&a1=1;
& & & & p4-&a2=2;
& & & & p1-&x=p2-&x=p3-&x=p4-&x=p1-&y=p2-&y=p3-&y=p4-&y=2;
& & & & }
void xian(h *head)& && && && && && && & //显示
{
& & & & h *p;
& & & & p=
& & & & while(p!=0)
& & & & {
& & & & & & & & setfillcolor(YELLOW);
& & & & & & & & bar((p-&a1+p-&x)*10,(p-&a2+p-&y)*10,(p-&a1+p-&x)*10+10,(p-&a2+p-&y)*10+10);
& & & & & & & & p=p-&
& & & & }
}
void xiao(h *head)& && && && && && && & //消失
{
& & & & h *p;
& & & & p=
& & & & while(p!=0)
& & & & {
& & & & & & & & setfillcolor(BLACK);
& & & & & & & & bar((p-&a1+p-&x)*1,(p-&a2+p-&y)*10,(p-&a1+p-&x)*10+10,(p-&a2+p-&y)*10+10);
& & & & & & & & p=p-&
& & & & }
}
void xuan(h *head)& && && && && && && &&&//旋转
{
&&
& & & & h*p;
& & & &
& & & & p=
& & & & while(p!=0)
& & & & {
& & & & & & & & & & & & & & & & & & & & & & & &
& & & & & & & & a=p-&a1;
& & & & & & & & p-&a1=2-p-&a2;
& & & & & & & & p-&a2=a;
& & & & & & & & p=p-&
& & & & & & & &
& & & & }
}
//方向开始
void left(h *head)
{
& & & & h *p;
p=
while(p!=NULL)
{
p-&x=p-&x-1;
p=p-&
}
}
void right(h *head)
{ h *p;
p=
while(p!=NULL)
{
p-&x=p-&x+1;
p=p-&
}
}
void down(h *head)
{ h *p;
p=
while(p!=NULL)
{
p-&y=p-&y+1;
p=p-&
}
}
//方向结束
int judge(space *p,h *head)& && && && && && & //判定方块是否到底,交接存储,将方块的横纵坐标存入存储空间space中
{
& & & & int e=0,n=0;
& & & & h *q;
& & & & q=
& & & & while(q!=NULL)
& & & & & & & & {
& & & & & & & & & & & & if(p-&a[q-&a1+q-&x][q-&a2+(q-&y)+1]==1||(q-&a2+q-&y)==gao) //直接y的下一个已经有值或者到底了
& & & & & & & & & & & & {& &
& & & & & & & & & & & & & & & & e=1;& && && && && && &&&
& & & & & & & & & & & & if(q-&a2+q-&y==gao)n=1;& && && && && && && && && && && && &//到底的话另外在判断
& & & & & & & & & & & & }& && && && && && && && && &
& & & & & & & & & & & & q=q-&
& & & & & & & & & & & && && && && && && && && && && && &&&
& & & & & & & & }
& & & & & & & & if(e==1&&n==0)& && && && && && && && && &&&//碰边
& & & & & & & & {
& & & & & & & & & & & & q=
& & & & & & & & & & & & printf(&有\n&);
& & & & & & & & & & & & while(q!=NULL)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & p-&a[q-&a1+q-&x][q-&a2+q-&y]=1;
& & & &
& & & & & & & & & & & & & & & & q=q-&
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & & if(e==1&&n==1)& && && && && && && && &&&//到底
& & & & & & & & {
& & & & & & & & & & & & q=
& & & & & & & & & & & & printf(&到底\n&);
& & & & & & & & & & & & while(q!=NULL)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & p-&a[q-&a1+q-&x][q-&a2+q-&y-1]=1;
& & & & & & & & & & & &
& & & & & & & & & & & & & & & & q=q-&
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & &
}
void main()
{& &
& & & & int e=0;
& & & & space *p;
& & & & p=creatspace();
& & h *& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & //初始化开始
& & & & initgraph(kuan*10,gao*10);& & & & & & & & & & & & & & & & //建立图像
& & & & head=creat(1);& & & & & & & & & & & & & & & & & & & & & & & & & & & & //&&创建新的方块
& & & & while(1)& & & &
& & & & {& & & & xian(head);
& & & & & & & & Sleep(500);
& & & & & & & & xiao(head);
& & & & & & & & if(!kbhit())
& & & & & & & & {
& & & & & & & & & & & & down(head);
& & & & & & & & }
& & & & & & & & else
& & & & & & & & {
& & & & & & & & & & & & if(getch()==119)& && & //w键
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & xuan(head);
& & & & & & & & & & & & }
& & & & & & & & & & & & down(head);& && && &//无论是否键入都要向下一格
& & & & & & & & }& && && && && && && &&&//else结束
& & & &
& & & & & & & & e=judge(p,head);
& & & & & & & & if(e==1)
& & & & & & & & {
& & & & & & & & & & & & head=creat(1);
& & & & & & & & & & & & e=0;
& & & & & & & & }
& & & & & & & & out(p);
& & & & }& & & & & & & & & & & & & & & & & & & & & & & & & & & & //while结束
& & closegraph();
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 118 天[LV.6]常住居民II
汗。。。。。
诶,我知道代码太长了就没什么太大的机会会有人仔细去看了,然后自己测试解决了,太伤心了,我的100鱼币啊
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 632 天[LV.9]以坛为家II
诶,我知道代码太长了就没什么太大的机会会有人仔细去看了,然后自己测试解决了,太伤心了,我的100鱼币 ...
噗。。。。。。。。居然给我了。。么么哒。。。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 118 天[LV.6]常住居民II
噗。。。。。。。。居然给我了。。么么哒。。。
点进来了说明你有打算帮着解决,你又是第一个到的,有回复说明你有看,有心就该感谢,鱼币收不回来无所谓,关键是有收获一切都好说
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 632 天[LV.9]以坛为家II
点进来了说明你有打算帮着解决,你又是第一个到的,有回复说明你有看,有心就该感谢,鱼币收不回来无所谓 ...
恩恩。。本来想帮你看看的。。结果。。一进来。。代码好长。。顿时就给跪了。。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
签到天数: 145 天[LV.7]常住居民III
鸭蛋,下手太慢。 可恶
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的***!
站长推荐 /1
为了促进论坛学习交流、互相分享经验心得,鱼C论坛与15PB信息安全教育共同筹办此次活动。旨在记录大家学习编程的心路历程,分享一些学习经验和技巧……
•••(
Powered by

参考资料

 

随机推荐