c++编程——俄罗斯方块(毫无挑战版)

来,我们直接上代码。


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <cstdlib>
#include <ctime>
#include <Windows.h>
#include <time.h>
#include <conio.h>
using namespace std;
bool zuobiao[20][20];
int x=5,y=0, defen=0,x2=6,y2=0,x3=7,y3=0,x4=8,y4=0;
void shuchu()
{
    system("cls");
    cout<<"得分:"<<defen<<endl;
    for(int i=0; i<20; i++)
    {
        for(int j=0; j<20; j++)
        {
            if(zuobiao[i][j]==1)
                cout<<"█";
            else
                cout<<"  ";
        }
        cout<<"|"<<endl;
    }
}
void anjian()
{
    if(_kbhit())
    {
        //获取键盘的输入字符*/
        switch(_getch())
        {
            case '4':
            case 75:/*左键*/
                zuobiao[y][x]=0;
                zuobiao[y2][x2]=0;
                zuobiao[y3][x3]=0;
                zuobiao[y4][x4]=0;
                x--;
                x2--;
                x3--;
                x4--;
                zuobiao[y][x]=0;
                zuobiao[y2][x2]=0;
                zuobiao[y3][x3]=0;
                zuobiao[y4][x4]=0;
                shuchu(); 
                break;
            case '6':
            case 77:/*右键*/
                zuobiao[y][x]=0;
                zuobiao[y2][x2]=0;
                zuobiao[y3][x3]=0;
                zuobiao[y4][x4]=0;
                x++;
                x2++;
                x3++;
                x4++;
                zuobiao[y][x]=0;
                zuobiao[y2][x2]=0;
                zuobiao[y3][x3]=0;
                zuobiao[y4][x4]=0;
                shuchu();
                break;
            case '2':
            case 80:/*向下键盘键 */
                zuobiao[y][x]=0;
                zuobiao[y2][x2]=0;
                zuobiao[y3][x3]=0;
                zuobiao[y4][x4]=0;
                y++;
                y2++;
                y3++;
                y4++;
                zuobiao[y][x]=1;
                zuobiao[y2][x2]=1;
                zuobiao[y3][x3]=1;
                zuobiao[y4][x4]=1;
                shuchu();
                break;
        }
    }
}
void de()
{
    bool zheng;
    for(int i=19; i>=0; i--)
    {
        zheng=true;
        for(int j=0; j<20; j++)
        {
            if(zuobiao[i][j]==0)
            {
                zheng=false;
                break;
            }
        }
        if(zheng==true)
        {
            for(int k=0; k<20; k++)
                zuobiao[i][k]=zuobiao[i-1][k];
            defen++;
        }
    }
}
void shezhichushi()
{
    de();
    y=0;
    y2=0;
    y3=0;
    y4=0;
    srand(time(NULL));
    int temp=rand()%2;
    if(temp==0)
    {
        //设置方块初始位置
        x=5;
        x2=6;
        x3=7;
        x4=8;
    }
    else
    {
        x=5;
        x2=6;
        x3=5;
        y3++;
        x4=6;
        y4++;        
    } 
    zuobiao[y][x]=1;
    zuobiao[y2][x2]=1;
    zuobiao[y3][x3]=1;
    zuobiao[y4][x4]=1;    

void yzb()
{     
    zuobiao[y][x]=0;
    zuobiao[y2][x2]=0;
    zuobiao[y3][x3]=0;
    zuobiao[y4][x4]=0;
    if(y>17)
        y=18;
    if(y2>17)
        y2=18;
    if(y3>17)
        y3=18;    
    if(y4>17)
        y4=18;
    y++;
    y2++;
    y3++;
    y4++;
    zuobiao[y][x]=1;
    zuobiao[y2][x2]=1;
    zuobiao[y3][x3]=1;
    zuobiao[y4][x4]=1;
    if((y2==19) || (zuobiao[y2+1][x2]==1) || (zuobiao[y4+1][x4]==1))
        shezhichushi();
}

void jvqin()
{
    cout<<"█            █                     ████           █            █             ███          "<<endl;
    _sleep(100);
    cout<<"█            █                   ██    ██         █            █             █  ██         "<<endl;
    _sleep(100);
    cout<<"█            █                  ██     ██         █            █             █    ██       "<<endl;
    _sleep(100);
    cout<<"█            █                 ██        ██       █            █             █      █     "<<endl;
    _sleep(100);
    cout<<"█            █                ██         ██       █            █             █       █   "<<endl;
    _sleep(100);
    cout<<"█            █               ██             █      █            █             █      █   "<<endl;
    _sleep(100);
    cout<<"█            █                               █       █            █             █    █       "<<endl;
    _sleep(100);
    cout<<"█            █                              █        █            █             █  █        "<<endl;
    _sleep(100);
    cout<<"█            █                            █          █            █             ██           "<<endl;
    _sleep(100);
    cout<<"█████████████                █            █████████████   █  ██                  "<<endl;
    _sleep(100);
    cout<<"              █                        █                            █             █      █       "<<endl;
    _sleep(100);
    cout<<"              █                      █                              █             █      █     "<<endl;
    _sleep(100);
    cout<<"              █                    █                                █             █    █        "<<endl; 
    _sleep(100);
    cout<<"              █                  █                                  █             █  █         "<<endl;
    _sleep(100);
    cout<<"              █                ██████████                  █             ██           "<<endl;
    _sleep(500);
    cout<<"                   424B号工作室"<<endl;
    system("pause");
}
int main() {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);    
    for(int i=0;;i++)
    {
        anjian();
        if(i%10000==0)
        {
            yzb();
            shuchu(); 
        } 
    }
    return 0;
}


点个赞呗!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值