C++ 别踩白块小游戏练习

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <easyx.h>
#include <graphics.h>
#include <time.h>
#include <tchar.h>
int map[4];//数组保存的是黑块
int n = 0; // 
void  init()//初始化黑方块区域
{
    for (int i = 0; i < 4; i++)
    {

        map[i] = rand() % 4; //取随机值0 - 3;
    }

}
void draw()//贴背景图片
{
    BeginBatchDraw();
    cleardevice();//把之前的画板清楚
    setlinecolor(RED);//设置颜色
    setfillcolor(WHITE);
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            //绘制白色矩形
            fillrectangle(j * 100, i * 120, (j + 1) * 100, (i + 1) * 120);
        }
    }
    //
    setfillcolor(BLACK);
    for (int i = 0; i < 4; i++) //每一行需要填充的方块
    {
        fillrectangle(map[i] * 100, i * 120, (map[i] + 1) * 100, (i + 1) * 120); //填充矩形 定位要填充的矩形的的左上角坐标和右下角坐标

    }

    EndBatchDraw(); //结束批量绘图,把中间的内容统一绘制到界面
}
int i; //x轴坐标
int j; //y轴坐标
int  play()// 开始玩耍 用鼠标点击方块
{
    MOUSEMSG msg = GetMouseMsg();//鼠标消息初始化
    switch (msg.uMsg)
    {
    case WM_LBUTTONDOWN: //如果鼠标消息按下左键 进入循环
        i = msg.y / 120;  //判断鼠标的位置相对于游戏区的位置
        j = msg.x / 100;  //判断鼠标的位置相对于游戏区的位置
        if (map[3] == j && i == 3)  //判断鼠标点击的位置是不是黑色方块 i==3 判断鼠标点击的位置是不是最下面一行,最下面一行为3
        {
            for (int a = 3; a > 0; a--)//使用循环改变方块的值
            {
                map[a] = map[a - 1];

            }
            map[0] = rand() % 4;//最上面一排的方块重新赋值
            
            n++;
        }
        else
            return 1;
        break;
    }
    return 0;
}
int main()
{

    initgraph(4 * 100, 4 * 120);//初始化界面
    srand((unsigned)time(NULL)); //随机数
    init();
    while (1)
    {
        draw();
        if (play() == 1)
        {
            TCHAR str[100]; //
            wsprintf(str, _T("总共消除了%d个方块"), n);
            if (MessageBox(GetHWnd(), str, _T("游戏结束,是否在来一次"), MB_YESNO) == IDYES) //判断判断游戏是否需要继续
            {

                init(); //重新初始化方块随机位置
                draw(); //重新初始化画板
                n = 0;
                continue;
            }
            else
                break;

        }



    }
closegraph();//关闭绘图界面
return 0; }

 

原文链接: https://www.cnblogs.com/shenji/p/12493220.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++ 别踩白块小游戏练习

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/335269

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午10:04
下一篇 2023年3月1日 下午10:04

相关推荐