IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Windows版c++打方块?,附源码(免费复制) -> 正文阅读

[C++知识库]Windows版c++打方块?,附源码(免费复制)

最近好久没写游戏了,这次再该大家写一个游戏

上移键发射方块,填满一行得分

不多说了,直接摆上源码

#include<bits/stdc++.h>//打方块 Windows10
#include<windows.h>
using namespace std;
int fen,mb[10][18],leaf;

void kg(int a) {
?? ?for(int i=0; i<a; i++)
?? ??? ?cout<<' ';
}

void go(int x, int y) {
?? ?COORD p;
?? ?p.X=(x-1)*2;
?? ?p.Y=y-1;
?? ?SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}

void printtu(int x,int y,bool a) {
?? ?go(x,y);
?? ?cout<<"■";
?? ?if(x>2&&x<11) {
?? ??? ?go(x-1,y+1);
?? ??? ?cout<<"■■■";
?? ?} else if(x==2) {
?? ??? ?go(x,y+1);
?? ??? ?cout<<"■■";
?? ?} else if(x==11) {
?? ??? ?go(x-1,y+1);
?? ??? ?cout<<"■■";
?? ?} else;

?? ?if(a)
?? ??? ?for(int i=0; i<18; i++) {
?? ??? ??? ?go(2,i+2);
?? ??? ??? ?kg(20);
?? ??? ?}

?? ?Sleep(100);

?? ?go(x,y);
?? ?kg(2);
?? ?if(x>2&&x<11) {
?? ??? ?go(x-1,y+1);
?? ??? ?kg(6);
?? ?} else if(x==2) {
?? ??? ?go(x,y+1);
?? ??? ?kg(4);
?? ?} else if(x==11) {
?? ??? ?go(x-1,y+1);
?? ??? ?kg(4);
?? ?} else;
?? ?go(14,5);
?? ?kg(4);
?? ?cout<<"\b\b\b\b"<<fen;

?? ?if(a)
?? ??? ?for(int i=0; i<18; i++) {
?? ??? ??? ?go(2,i+2);
?? ??? ??? ?for(int o=0; o<10; o++) {
?? ??? ??? ??? ?if(mb[o][i])
?? ??? ??? ??? ??? ?cout<<"■";
?? ??? ??? ??? ?else kg(2);
?? ??? ??? ?}
?? ??? ?}
}

void sj(int x) {
?? ?int i;
?? ?for(i=19;; i--) {
?? ??? ?go(x,i);
?? ??? ?cout<<"■";
?? ??? ?Sleep(10);
?? ??? ?cout<<"\b\b";
?? ??? ?kg(2);
?? ??? ?if(i<3)break;
?? ??? ?if(mb[x-2][i-3]==1)break;
?? ?}
?? ?mb[x-2][i-2]=1;
?? ?go(x,i);
?? ?cout<<"■";
?? ?fen-=10;
?? ?for(int o=0; o<10; o++)
?? ??? ?if(mb[o][i-2]==0)return;
?? ?for(int o=0; o<10; o++)
?? ??? ?mb[o][i-2]=0;
?? ?for(int o=i-2; o<17; o++)
?? ??? ?for(int j=0; j<10; j++)
?? ??? ??? ?mb[j][o]=mb[j][o+1];
?? ?for(int o=0; o<10; o++)
?? ??? ?mb[o][17]=0;
?? ?printtu(x,20,1);
?? ?fen+=100;
}

void mouse(int &x,int &y) {
?? ?POINT p;
?? ?HWND h=GetForegroundWindow();
?? ?GetCursorPos(&p);
?? ?ScreenToClient(h,&p);
?? ?x=p.x;
?? ?y=p.y;
}

void m(int wt) {
lkr:
?? ?;
?? ?fen=-500;
?? ?leaf=8;
?? ?srand(time(0));
?? ?system("mode con cols=33 lines=24");

?? ?system("cls");
?? ?cout<<"┌ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┐"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆ 分数"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆ 生命"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆ ";
?? ?printf("%c %c %c %c\n",3,3,3,3);
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆ ";
?? ?printf("%c %c %c %c\n",3,3,3,3);
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"┆ ";
?? ?kg(20);
?? ?cout<<"┆"<<endl;
?? ?cout<<"└ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┄ ┘"<<endl;
lk:
?? ?;
?? ?for(int i=0; i<10; i++)
?? ??? ?for(int o=0; o<18; o++)
?? ??? ??? ?mb[i][o]=0;
?? ?int x=6;
?? ?for(int i=wt*10;;) {
?? ??? ?if(i<wt*10)goto asd;

?? ??? ?for(int i=0; i<10; i++)
?? ??? ??? ?for(int o=0; o<18; o++)
?? ??? ??? ??? ?if(mb[i][o]!=0)goto qwe;
?? ??? ?fen+=500;
qwe:
?? ??? ?;

?? ??? ?for(int o=0; o<10; o++)
?? ??? ??? ?if(mb[o][17]==1)goto as;

?? ??? ?for(int o=17; o>0; o--)
?? ??? ??? ?for(int j=0; j<10; j++)
?? ??? ??? ??? ?mb[j][o]=mb[j][o-1];

?? ??? ?for(int o=0; o<10; o++)
?? ??? ??? ?mb[o][0]=rand()%2;

asd:
?? ??? ?;
?? ??? ?if(GetAsyncKeyState(VK_RIGHT)!=0&&x<11)x++;
?? ??? ?if(GetAsyncKeyState(VK_LEFT)!=0&&x>2)x--;
?? ??? ?if(GetAsyncKeyState(VK_UP)!=0)sj(x);
?? ??? ?printtu(x,20,i>=wt*10);
?? ??? ?if(i<wt*10)i++;
?? ??? ?else i=1;
?? ?}
as:
?? ?;
?? ?for(int i=2; i<22; i++) {
?? ??? ?go(2,i);
?? ??? ?kg(20);
?? ?}
?? ?fen-=600;
?? ?switch(leaf) {
?? ??? ?case 1:
?? ??? ??? ?go(13,8);
?? ??? ??? ?cout<<' '<<' ';
?? ??? ??? ?break;
?? ??? ?case 2:
?? ??? ??? ?leaf--;
?? ??? ??? ?go(14,8);
?? ??? ??? ?cout<<' '<<' ';
?? ??? ??? ?goto lk;
?? ??? ?case 3:
?? ??? ??? ?leaf--;
?? ??? ??? ?go(15,8);
?? ??? ??? ?cout<<' '<<' ';
?? ??? ??? ?goto lk;
?? ??? ?case 4:
?? ??? ??? ?leaf--;
?? ??? ??? ?go(16,8);
?? ??? ??? ?cout<<' '<<' ';
?? ??? ??? ?goto lk;
?? ??? ?case 5:
?? ??? ??? ?leaf--;
?? ??? ??? ?go(13,9);
?? ??? ??? ?cout<<' '<<' ';
?? ??? ??? ?goto lk;
?? ??? ?case 6:
?? ??? ??? ?leaf--;
?? ??? ??? ?go(14,9);
?? ??? ??? ?cout<<' '<<' ';
?? ??? ??? ?goto lk;
?? ??? ?case 7:
?? ??? ??? ?leaf--;
?? ??? ??? ?go(15,9);
?? ??? ??? ?cout<<' '<<' ';
?? ??? ??? ?goto lk;
?? ??? ?case 8:
?? ??? ??? ?leaf--;
?? ??? ??? ?go(16,9);
?? ??? ??? ?cout<<' '<<' ';
?? ??? ??? ?goto lk;
?? ?}
?? ?go(5,7);
?? ?cout<<"你输了!";
?? ?go(3,8);
?? ?cout<<" ┆ 再来[R]┆ ┆ 返回[E]┆";
?? ?for(;;) {
?? ??? ?if(GetAsyncKeyState('R')!=0||GetAsyncKeyState('r')!=0)goto lkr;
?? ??? ?if(GetAsyncKeyState('E')!=0||GetAsyncKeyState('e')!=0)return;
?? ?}
}

void dafangkuai() {}
int main() {
?? ?SetConsoleTitle("打方块Windows10");
?? ?int q=3;
a:
?? ?;
?? ?system("mode con cols=80 lines=25");
?? ?system("cls");
?? ?bool jh[8][27]= {0,0,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0};
?? ?for(int i=2; i<10; i++) {
?? ??? ?go(7,i);
?? ??? ?for(int o=0; o<27; o++) {
?? ??? ??? ?if(jh[i-2][o])
?? ??? ??? ??? ?cout<<"■";
?? ??? ??? ?else cout<<' '<<' ';
?? ??? ?}
?? ?}
?? ?go(17,11);
?? ?cout<<"|开始游戏|";
?? ?go(17,13);
?? ?cout<<"|设置游戏|";
?? ?go(17,15);
?? ?cout<<"|游戏规则|";
?? ?go(17,17);
?? ?cout<<"|退出游戏|";
?? ?go(1,23);
?? ?cout<<"[L]确定";
?? ?int y=1;
?? ?for(;;) {
?? ??? ?if(GetAsyncKeyState(VK_DOWN)!=0)y+=((y==4)?-3:1);
?? ??? ?if(GetAsyncKeyState(VK_UP)!=0)y-=((y==1)?-3:1);
?? ??? ?if(GetAsyncKeyState('l')!=0||GetAsyncKeyState('L')!=0)
?? ??? ??? ?switch(y) {
?? ??? ??? ??? ?case 1:
?? ??? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ??? ?m(q);
?? ??? ??? ??? ??? ?goto a;
?? ??? ??? ??? ?case 2:
?? ??? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ??? ?go(16,11);
?? ??? ??? ??? ??? ?cout<<' '<<q<<"秒增加一行";
?? ??? ??? ??? ??? ?go(16,10);
?? ??? ??? ??? ??? ?printf("[%c]",30);
?? ??? ??? ??? ??? ?go(16,12);
?? ??? ??? ??? ??? ?printf("[%c]",31);
?? ??? ??? ??? ??? ?go(1,23);
?? ??? ??? ??? ??? ?cout<<"[K]确定";
?? ??? ??? ??? ??? ?for(;;) {
?? ??? ??? ??? ??? ??? ?if(GetAsyncKeyState(VK_UP)!=0&&q<9) {
?? ??? ??? ??? ??? ??? ??? ?q++;
?? ??? ??? ??? ??? ??? ??? ?go(16,11);
?? ??? ??? ??? ??? ??? ??? ?cout<<' '<<q;
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ?if(GetAsyncKeyState(VK_DOWN)!=0&&q>1) {
?? ??? ??? ??? ??? ??? ??? ?q--;
?? ??? ??? ??? ??? ??? ??? ?go(16,11);
?? ??? ??? ??? ??? ??? ??? ?cout<<' '<<q;
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ?if(GetAsyncKeyState('k')!=0||GetAsyncKeyState('K')!=0)goto a;
?? ??? ??? ??? ??? ??? ?Sleep(100);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?case 3:
?? ??? ??? ??? ??? ?MessageBox(0,"点确定浏览规则" ,"规则",MB_OK);
?? ??? ??? ??? ??? ?MessageBox(0,"←→控制炮台","规则",MB_OK);
?? ??? ??? ??? ??? ?MessageBox(0,"满一行即消除","规则",MB_OK);
?? ??? ??? ??? ??? ?MessageBox(0,"每消除一行+100","规则",MB_OK);
?? ??? ??? ??? ??? ?MessageBox(0,"少一条命-100","规则",MB_OK);
?? ??? ??? ??? ??? ?MessageBox(0,"全部消除+500","规则",MB_OK);
?? ??? ??? ??? ??? ?MessageBox(0,"发射一炮-10","规则",MB_OK);
?? ??? ??? ??? ?case 4:
?? ??? ??? ??? ??? ?return 0;
?? ??? ??? ?}
?? ??? ?go(16,11);
?? ??? ?cout<<' '<<' ';
?? ??? ?go(22,11);
?? ??? ?cout<<' ';
?? ??? ?go(16,13);
?? ??? ?cout<<' '<<' ';
?? ??? ?go(22,13);
?? ??? ?cout<<' ';
?? ??? ?go(16,15);
?? ??? ?cout<<' '<<' ';
?? ??? ?go(22,15);
?? ??? ?cout<<' ';
?? ??? ?go(16,17);
?? ??? ?cout<<' '<<' ';
?? ??? ?go(22,17);
?? ??? ?cout<<' ';
?? ??? ?go(16,9+2*y);
?? ??? ?cout<<' '<<'>';
?? ??? ?go(22,9+2*y);
?? ??? ?cout<<'<';
?? ??? ?Sleep(100);
?? ?}
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:34:13  更:2021-07-30 12:34:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 4:31:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码