⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c++俄罗斯方块程序.txt

📁 c++俄罗斯方块应用开发
💻 TXT
📖 第 1 页 / 共 2 页
字号:
            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 + -