📄 c++俄罗斯方块程序.txt
字号:
break;
case 6:
// ¨?
//¨?¨?¨?
org[0][0]=block[0][0] =10; org[0][1]=block[0][1] =0;
org[1][0]=block[1][0] =9; org[1][1]=block[1][1] =1;
org[2][0]=block[2][0] =10; org[2][1]=block[2][1] =1;
org[3][0]=block[3][0] =11; org[3][1]=block[3][1] =1;
break;
default:
SendMessage (hwnd, MS_NEWBLOCK, 0, 0);
break;
}
return 0;
case WM_TIMER:
// ????ê±???ú????·??é??×??ˉ??ò?ò?DD
for(i=0; i<4; i++)
block[i][1]++;
// ?ì2é??·??é????ò?ê?·?±?μμ×?£??′?D????ò?oóD?????ê?·?óD??·?????
for(i=0; i<4; i++)
if(cells[ block[i][0] ][ block[i][1] ])
{
for(i=0; i<4; i++)
cells[ org[i][0] ][ org[i][1] ]=1;
if(top>org[0][1]-2) top=org[0][1]-2;
if (top<1)
{
KillTimer (hwnd, 1);
MessageBox (hwnd, "ó??·?áê?,?′??í?3? !", "í?3?", MB_OK);
PostQuitMessage (0);
}
SendMessage (hwnd, MS_NEWBLOCK, 0, 0);
return 0;
}
SendMessage (hwnd, MS_DRAW, 0, 0);
return 0;
// ?ìó|?ü?ì????
case WM_KEYDOWN:
r=0;
switch((int)wParam)
{
case VK_LEFT:
for(i=0; i<4; i++)
block[i][0]--;
break;
case VK_RIGHT:
for(i=0; i<4; i++)
block[i][0]++;
break;
case VK_DOWN:
for(i=0; i<4; i++)
block[i][1]++;
break;
// °′[?òé??ü]£???·??é???3ê±??Dy×a
//??·??é??μ?Dy×a2?ê????yμ?Dy×a£???ê??ù?Y2?í?μ???·??é??D?×′oí
// ????·??é??Dy×a1yμ?′?êyà′ò??ˉ???Dμ?ò????ò??????·?????£?′ó??
// ′?μ?Dy×aμ?D§1? ?a?ù×?oü?′?ó£???·¨2?1?àí??£?μ?ê??ü1?±£3???·?
// ?é??Dy×aê±μ???D?±è???è?¨?£
case VK_UP:
r=1;
flag++; //??·??é??Dy×a?ó£±
switch(sel) // sel′ú±íμ±?°??·??é??μ?D?×′
{
case 0: break;
case 1:
flag =flag%2;
for(i=0; i<4; i++)
{
block[i][(flag+1)%2] =org[2][(flag+1)%2];
block[i][flag] =org[2][flag]-2+i;
}
break;
case 2:
flag =flag%2;
if(flag)
{ block[0][1] +=2; block[3][0] -=2; }
else
{ block[0][1] -=2; block[3][0] +=2; }
break;
case 3:
flag =flag%2;
if(flag)
{ block[0][1] +=2; block[3][0] +=2; }
else
{ block[0][1] -=2; block[3][0] -=2; }
break;
case 4:
flag=flag%4;
switch(flag)
{
case 0:
block[2][0] +=2; block[3][0] +=2;
block[2][1] +=1; block[3][1] +=1;
break;
case 1:
block[2][0] +=1; block[3][0] +=1;
block[2][1] -=2; block[3][1] -=2;
break;
case 2:
block[2][0] -=2; block[3][0] -=2;
block[2][1] -=1; block[3][1] -=1;
break;
case 3:
block[2][0] -=1; block[3][0] -=1;
block[2][1] +=2; block[3][1] +=2;
break;
}
break;
case 5:
flag=flag%4;
switch(flag)
{
case 0:
block[2][0] +=1; block[3][0] +=1;
block[2][1] +=2; block[3][1] +=2;
break;
case 1:
block[2][0] +=2; block[3][0] +=2;
block[2][1] -=1; block[3][1] -=1;
break;
case 2:
block[2][0] -=1; block[3][0] -=1;
block[2][1] -=2; block[3][1] -=2;
break;
case 3:
block[2][0] -=2; block[3][0] -=2;
block[2][1] +=1; block[3][1] +=1;
break;
}
break;
case 6:
flag =flag%4;
switch(flag)
{
case 0:
block[0][0]++; block[0][1]--;
block[1][0]--; block[1][1]--;
block[3][0]++; block[3][1]++;
break;
case 1:
block[1][0]++; block[1][1]++; break;
case 2:
block[0][0]--; block[0][1]++; break;
case 3:
block[3][0]--; block[3][1]--; break;
}
break;
}
break;
}
// ?D????·??é??Dy×aoóD?????ê?·?óD??·?????£?è?óD£??òDy×aè???
for(i=0; i<4; i++)
if(cells[ block[i][0] ][ block[i][1] ])
{
if(r) flag +=3;
for(i=0; i<4; i++)
for(j=0; j<2; j++)
block[i][j]=org[i][j];
return 0;
}
SendMessage(hwnd, MS_DRAW, 0, 0);;
return 0;
// ??3yμ±?°??·??é??£?2¢?úD?μ???????D???????·??é??
case MS_DRAW:
hdc =GetDC (hwnd);
Cover (hdc, org);
for(i=0; i<4; i++)
for(j=0; j<2; j++)
org[i][j]=block[i][j];
DrawBlock (hdc,block);
ReleaseDC (hwnd, hdc);
return 0;
// °′????·??????ó??????ó??·??óòμ???·?????
case WM_PAINT:
hdc =BeginPaint (hwnd, &ps);
hpen =CreatePen (PS_SOLID,1,RGB(255,255,255));
SelectObject (hdc,hpen);
for (i=top; i<H-1; i++)
for(j=1; j<=W; j++)
if( cells[j][i] )
DrawCell (hdc, (j-1)*CELL, (i-1)*CELL, j*CELL, i*CELL);
DeleteObject (hpen);
EndPaint (hwnd, &ps);
return 0;
case WM_DESTROY:
KillTimer (hwnd, 1);
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam);
}
/************************************************************/
/* ?áê?
* ×¢êíê±??: 2003/01/04 SAT
* óú 1???ê?èy??êD?¨DD?Téá
*/
/************************************************************/
-------------------------------------------------------------------------------------
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
----------------------------------------------------------------------------------------
// stdafx.cpp : source file that includes just the standard includes
// ToyBricks.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -