主页 > 科技生活 >psp好游戏_单片机俄罗斯方块,C语言编程思路,在线等 >

psp好游戏_单片机俄罗斯方块,C语言编程思路,在线等

单片机俄罗斯方块,C语言编程思路,在线等
同作为单片机爱好示,以51单片机做过,并且还专门总一下,做了一个文档,自己做的,那是在学校做课程设计都写得认真,你可以看下。并且有程序和移植实例,单片机和电脑上都测试通过。欢迎交流!
详细见参考链接!追问

看不太懂参考资料里的。
我做的是16*24点阵,6块8*8拼起来的,这种例程网上又找不到,现在自己编程编到一半,不知道下一部了。

4个二进制位最多能表达到16种状态,你的东东“总共7种方块,19种变形”,我认为要表达至少用5位。追问

看图,74HC573搞定。追答

图看不清,你能搞定就好,祝你成功!追问

点击图片,跳出一个窗口,右键》》另存为》》找到图片保存位置》》打开》》查看大图。
如何用C++控制台编程编写俄罗斯方块,不要MFC编程。


控制台只字符串来话要求基础还是蛮高的,
假如要做先要确定游戏的架构,有主体 全局 有地图 角色 NPC模块都分开,就是面向对象思想,

控制台游戏重点是,要把画的东西都写入缓冲区,然后再画出,否者会闪屏

我写个重要的给你吧

这是写入缓冲数组里面
void DrawBufferString( int iX, int iY, const char* szText, int iFRColor, int iBGColor )
{
if( iX < 0 || iX >= GAME_WIDTH ||
iY < 0 || iY >= GAME_HEIGHT )
{
return;
}

int iLen = strlen( szText );

WORD clr = iFRColor|iBGColor;

int l = ( iX + iLen > GAME_WIDTH )?( GAME_WIDTH - iX ):iLen;

strncpy( &g_ScreenBuffer[iY][iX], szText, l );

for( int i = 0; i < l; i++)
{
g_ColorBuffer[iY][iX+i] = clr;
}
}
这是写出
void DrawBufferToString()
{
HANDLE hConsole = GetStdHandle( STD_OUTPUT_HANDLE );

COORD rd = { 0, 0 };

DWORD wd = 0;

for( int i = 0; i < GAME_HEIGHT; i++)
{
WriteConsoleOutputCharacter( hConsole, g_ScreenBuffer[i], GAME_WIDTH, rd, &wd );

rd.Y++;
}

rd.Y = 0;

for( int i = 0; i < GAME_HEIGHT; i++)
{
WriteConsoleOutputAttribute( hConsole, g_ColorBuffer[i], GAME_WIDTH, rd, &wd );

rd.Y++;
}

DeleteObject( hConsole );
}承接,出售与Matlab,ASP.NET,vc,ASPEN毕业设计和课计或者文献翻译等课题,成品部分罗列infocenter?ADUIN=975941553&ADSESSION=1241335843&ADTAG=CLIENT.QQ.1855_QQUrlReportBlankZone.0 ­
你可以在需要的那子下留下联系方式或者直接加该QQ为好友祥谈定制您需要的设计.请期待更多的作品,希望得到您的认可,满足您的要求.
编程 俄罗斯方块
//setShape.cs
var currentShape:MovieClip = new MovieClip();
var waitingShape:MovieClip = new MovieClip();
var blockCount:int=1;
var iteration:int=0;
var color:ColorTransform;

newShape();
setShape();
function setShape():void {
//get the next one
currentShape=waitingShape;
//add to stage
stage.addChild(currentShape);
//set position
currentShape.x=255;
currentShape.y=Math.round(currentShape.height/30)*-30;
//set the next one
newShape();
}
function newShape():void {
switch (Math.round(6*Math.random())) {
case 0 :
var shape_0:MovieClip = new shape0();
color=new ColorTransform(0.5,0,0,1,100,100,0,0);
waitingShape=shape_0;
blockCount=5;
break;
case 1 :
var shape_1:MovieClip = new shape1();
color=new ColorTransform(0,0,0,1,125,0,0,0);
waitingShape=shape_1;
blockCount=3;
break;
case 2 :
var shape_2:MovieClip = new shape2();
color=new ColorTransform(0,0,0,1,0,125,0,0);
waitingShape=shape_2;
blockCount=3;
break;
case 3 :
var shape_3:MovieClip = new shape3();
color=new ColorTransform(0,0,0,1,50,50,50,0);
waitingShape=shape_3;
blockCount=4;
break;
case 4 :
var shape_4:MovieClip = new shape4();
color=new ColorTransform(0,0,0,1,0,100,75,0);
waitingShape=shape_4;
blockCount=5;
break;
case 5 :
var shape_5:MovieClip = new shape5();
color=new ColorTransform(0,0,0,1,125,0,0,0);
waitingShape=shape_5;
blockCount=5;
break;
case 6 :
var shape_6:MovieClip = new shape6();
color=new ColorTransform(0,0,0,1,125,0,0,0);
waitingShape=shape_6;
blockCount=3;
break;
}
panel.shapeBox.shapeHolder.addChild(waitingShape);
waitingShape.x = (panel.shapeBox.shapeHolder.width - waitingShape.width)/2;
waitingShape.y = (panel.shapeBox.shapeHolder.height - waitingShape.height)/2;
while (iteration< blockCount) {
waitingShape["cube"+iteration].cubeFill.transform.colorTransform=color;
iteration++;
}

}
请问,谁见过这道题?编程题,类似俄罗斯方块,但是比俄罗斯方块要简单,只有两种形状

题中底部的第三字,应该是2吧。此题就是递归的每一列统计参考下面代码:
inta[11][10]={0};
intsum[11]={0};
//对a数组进行初始化赋值,代码略(未赋值的元素仍是0,赋值的元素变为1)
for(i=0;i<11;i++)//循环每一列
for(k=0;k<10;k++)//循环每一行
sum[i]+=a[i][k];
//输出sum数组,代码略。追问

不是2,是3,因为图中第四行有一个横着的形状,它落下来之后,右半部分要落在高度为2的方块形状上面,右半部分高度为3,那么它的左半部分也应该为3。我做这道题的时候也是像你这么做的,用了嵌套的for循环。做出来了。但是,我想问问,这道题最专业的做法,是不是用到了深搜和广搜呢?我做的时候只是用了for循环加一个自定义的函数(判断方块是水平还是垂直形状)。我怕我做的方法不对。


上一篇: 下一篇: