目录

前言:

基本数据

头文件

using namespace std;以及变量

open()函数

play1()函数

最后就是main()

源码

效果图


前言:

今天我们来复刻一个4399经典小游戏Q版泡泡堂(爷青回)。(因为我4399没号,玩不了,555……)

实现效果:

1P:wasd移动,f放炸弹,2P:ijkl移动,h放炸弹,为了更好玩,自己可能被自己放的炸弹炸死,双方只有一条命。

基本数据

本作头文件:10个,行数:185(对比别人的800行还bug满天飞,很不错了)长度:3710

头文件

各头文件用途见注释。(有4个可以删除,具体见注释)

#include<algorithm>//习惯性动作
#include<fstream>//这是从存档版街篮复制下来的
#include<iostream>//这玩意用于输出(是人都知道)
#include<stdio.h>//同下
#include<cstdio>//同上
#include<iostream>//不小心打多了
#include<windows.h>/用于延时、控制字体颜色、输出等
#include<conio.h>//用于判断按键
#include <time.h>//习惯性动作
#include <stdlib.h>//习惯性动作

using namespace std;以及变量

用途见注释

using namespace std; //O炸弹,绿1P红2P,地图:5*5
int x1,y1,x2,y2;//1、2p坐标
int b1x=-2,b1y=-2;//1p炸弹
int b2x=-2,b2y=-2;//2p炸弹

open()函数

用于实现开机动画,即开始游戏界面。

int open() {cout<<"                   4399泡泡堂(简化版)"<<endl;cout<<"复刻:黑客小C"<<endl;cout<<"规则:1p:wasdf,2p:ikjlh,放下炸弹后(1p是右,2p是左)出现一个炸弹(一人一个),谁碰谁没";while(!kbhit()) {//循环到按下按键}system("cls");//删除控制台所有输出内容
}

play1()函数

一开始我想1、2p分开,后来发现会出bug,所以就放在一起写,如果大家写双人小游戏发现只有1p能一直动,2p有时候卡在一个点,动不了就可以试试写在一个函数。同样,请留意注释

int play1() {char p1;//储存按下键if(kbhit()) {p1=getch();if(p1=='w') {x1--;}if(p1=='a') {y1--;}if(p1=='s') {x1++;}if(p1=='d') {y1++;}if(p1=='f') {b1x=x1;b1y=y1;b1y++;}if(p1=='i') {x2--;}if(p1=='j') {y2--;}if(p1=='k') {x2++;}if(p1=='l') {y2++;}if(p1=='h') {b2x=x2;b2y=y2;b2y--;}}if(x1<0){x1=0;}if(x2<0){x2=0;}if(x1>4){x1=4;}if(x2>4){x2=4;}if(y1<0){x1=0;}if(y2<0){x2=0;}if(y1>4){x1=4;}if(y2>4){x2=4;}
//后面的if用于空气墙和移动
}

最后就是main()

本代码用了循环嵌套,运行一次局数不限,按o退出。

int main() {long long sfz;long long sfz2;cout<<"请输入身份证号:"<<endl;cin>>sfz;SYSTEMTIME sys;GetLocalTime(&sys);time_t now=time(0);tm *gmtm = gmtime(&now);tm *ltm = localtime(&now);y=1900 + ltm->tm_year;x=1 + ltm->tm_mon;z=y-2022;z*=4;system("cls");sfz2=sfz%1000000000000/100000000;if((sfz2-y)<18&&(sys.wDayOfWeek<5||sys.wHour<8||sys.wHour>9)){return 0;}char f;open();while(true) {b1x=-1;b1y=-2;b2x=-2;b2y=-2;if(f=='o') {break;}x1=0;y1=0;x2=4;y2=4;while(true) {out();play1();if((b1x==x2&&b1y==y2)||(b2x==x2&&b2y==y2)) {system("cls");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);cout<<"1p胜利";Sleep(2000);break;}if((b2x==x1&&b2y==y1)||(b1x==x1&&b1y==y1)) {system("cls");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);cout<<"2p胜利";Sleep(2000);break;}Sleep(200);}system("cls");cout<<"当前赛季:SSS"<<z<<endl;cout<<"按o退出";while(!kbhit()) {}f=getch();system("cls");}return 0;
}

源码

#include<algorithm>
#include<fstream>
#include<iostream>
#include<stdio.h>
#include<cstdio>
#include<iostream>
#include<windows.h>
#include<conio.h>
#include <time.h>
#include <stdlib.h>
using namespace std; //O炸弹,绿1P红2P,地图:5*5
int x1,y1,x2,y2;
int b1x=-2,b1y=-2;
int b2x=-2,b2y=-2;
int x,y,z;
int open() {cout<<"                  4399泡泡堂(简化版)"<<endl;cout<<"复刻:黑客小C"<<endl;cout<<"规则:1p:wasdf,2p:ikjlh,放下炸弹后(1p是右,2p是左)出现一个炸弹(一人一个),谁碰谁没"<<endl;cout<<"当前赛季:SSS"<<z<<endl;while(!kbhit()) {}system("cls");
}
int out() {system("cls");for(int i=-1; i<6; i++) {for(int j=-1; j<6; j++) {if(i>=1&&i<=3&&j>=1&&j<=3){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"*";} else if(i==-1||i==5) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED| FOREGROUND_BLUE|FOREGROUND_GREEN);cout<<"*";} else if(j==-1||j==5) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED| FOREGROUND_BLUE|FOREGROUND_GREEN);cout<<"*";} else if(i==x1&&j==y1) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);cout<<"*";} else if(i==x2&&j==y2) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);cout<<"*";} else if(i==b1x&&j==b1y) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);cout<<"O";}else if(i==b2x&&j==b2y){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);cout<<"O";}else {cout<<" ";}}cout<<endl;}
}
int play1() {char p1;if(kbhit()) {p1=getch();if(p1=='w') {x1--;}if(p1=='a') {y1--;}if(p1=='s') {x1++;}if(p1=='d') {y1++;}if(p1=='f') {b1x=x1;b1y=y1;b1y++;}if(p1=='i') {x2--;}if(p1=='j') {y2--;}if(p1=='k') {x2++;}if(p1=='l') {y2++;}if(p1=='h') {b2x=x2;b2y=y2;b2y--;}}if(x1<0){x1=0;}if(x2<0){x2=0;}if(x1>4){x1=4;}if(x2>4){x2=4;}if(y1<0){x1=0;}if(y2<0){x2=0;}if(y1>4){x1=4;}if(y2>4){x2=4;}
}
int main() {long long sfz;long long sfz2;cout<<"请输入身份证号:"<<endl;cin>>sfz;SYSTEMTIME sys;GetLocalTime(&sys);time_t now=time(0);tm *gmtm = gmtime(&now);tm *ltm = localtime(&now);y=1900 + ltm->tm_year;x=1 + ltm->tm_mon;z=y-2022;z*=4;system("cls");sfz2=sfz%1000000000000/100000000;if((sfz2-y)<18&&(sys.wDayOfWeek<5||sys.wHour<8||sys.wHour>9)){return 0;}char f;open();while(true) {b1x=-1;b1y=-2;b2x=-2;b2y=-2;if(f=='o') {break;}x1=0;y1=0;x2=4;y2=4;while(true) {out();play1();if((b1x==x2&&b1y==y2)||(b2x==x2&&b2y==y2)) {system("cls");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);cout<<"1p胜利";Sleep(2000);break;}if((b2x==x1&&b2y==y1)||(b1x==x1&&b1y==y1)) {system("cls");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);cout<<"2p胜利";Sleep(2000);break;}Sleep(200);}system("cls");cout<<"当前赛季:SSS"<<z<<endl;cout<<"按o退出";while(!kbhit()) {}f=getch();system("cls");}return 0;
}

效果图

绿1p红2p蓝炸弹白空气墙。

学废了吗?

4399Q版泡泡堂(DEVC++实现+解析)相关推荐

  1. 【Python游戏】Python实现一个Q版泡泡堂小游戏 | 附带源码

    相关文件 想学Python的小伙伴可以关注小编的公众号[Python日志] 有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!! 需要源码的小伙伴可以在公众号回复泡泡堂 Python ...

  2. 回忆杀,pythonQ版泡泡堂

    导语: 哈喽,要说起小时候玩过的经典游戏,QQ堂和泡泡堂是不能被忽略的.双堂作为小时候​炸弹人网络游戏的典范,承载了一代人的童年回忆,下面看看小编用python做的Q版泡泡堂吧! pythonQ版泡泡 ...

  3. 大家记忆中的Q版泡泡堂是不是这个样子的呀!Python实现简易Q版泡泡堂小游戏!!!

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 对了大家可以关注小编的公众号哟~~ Python日志 开发环境 Python版本:3.6.4 相关模块: pygame模块: 以及一些P ...

  4. Funcode-Q版泡泡堂

    感谢我的两位最好的队友! 我会将Funcode工程目录放在我的资源中 仅代表我们的浅见,当中或许还有不少的bug没有修复 作品简介 Q版泡泡堂是一款经典的游戏.玩家选择自己喜欢的人物,进入游戏后利用键 ...

  5. 【Python游戏】Python各大游戏合集(2):开心消消乐、坦克大战、Q版泡泡堂、愤怒的小鸟、拼图 | 附带源码

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加Pyth ...

  6. 基于JAVA实现简易版泡泡堂小游戏

    一.简介--童年记忆 <泡泡堂>是由韩国游戏公司Nexon开发的一款休闲游戏(Casual Game),于2003年在中国大陆上线,由盛大网络运营.游戏讲述了在哈巴森林的一个村落的村民们利 ...

  7. [源码和文档分享]基于JAVA实现简易版泡泡堂小游戏

    一.简介--童年记忆 <泡泡堂>是由韩国游戏公司Nexon开发的一款休闲游戏(Casual Game),于2003年在中国大陆上线,由盛大网络运营.游戏讲述了在哈巴森林的一个村落的村民们利 ...

  8. C#版 泡泡堂 1.0

    泡泡堂 1.0 测试版 终于开发成功 申明: 本游戏所用素材版权归盛大所有,本人无任何版权,任意翻版 ,仅为大家娱乐之用. 相关算法保留 半开源 开发工具:C#+DX9+Winsock 开发时间: 3 ...

  9. C/C++项目:编译最爱的童年回忆泡泡堂小游戏教程

    <Q版泡泡堂>,是一款经典的flash小游戏,主要以多吃道具,躲避危险,放泡泡把别的人物炸死,才能获得胜利作为游戏目标. 今天我就用C语言带大家一步步去完成好玩有趣学会没网也能玩的属于自己 ...

  10. JAVA 实现《泡泡堂基础版》游戏

    前言 <泡泡堂基础版>是一个基于java的自制游戏,游戏设计为双人pk积分赛模式,在这个模式里面,玩家只要率先达到一定分数既可以赢得比赛.玩家可以通过炸箱子可以得到少量的分数,也可以通过炸 ...

最新文章

  1. 区域人工智能集群效果显著 各大省市怎样布局?
  2. jlink烧写Nor Flash时出错正确解决方法汇总:PC of target system has unexpected value after programming (2011
  3. android studio 显示view树_Android 沉浸式解析和轮子使用
  4. python处理excel大数据-当Excel遇到大数据问题,是时候用Python来拯救了
  5. Spark数据分析实战:大型活动大规模人群的检测和疏散
  6. 【Android 逆向】ART 脱壳 ( 修改 /art/runtime/dex_file.cc#OpenCommon 系统源码进行脱壳 )
  7. 巧断梯度:单个loss实现GAN模型(附开源代码)
  8. linux 22.3 终端,Linux系统服务Day.22
  9. Datagridview拖放数据到TreeView
  10. Django中使用缓存
  11. as3中splice和slice的用法
  12. 数据层(DAL)自动生成库
  13. python学习笔记(十一):网络编程
  14. 《图解HTTP》阅读笔记--第六章--HTTP首部
  15. 利用GDAL进行工具开源化改造
  16. E4A直播盒子APP源码搭建教程之——APP源码篇
  17. Linux多线程编程
  18. ES中文分词器-ik分词器安装
  19. 中国计算机的科技成果,中国9大科技成就,每一个都是实力派
  20. 快速复制移动文件_如何使用F2快速移动或复制Word中的内容

热门文章

  1. Java多线程篇--基本概念
  2. 本科课程【虚拟现实引擎Unity3D】实验3 - 烘焙光影贴图与动画应用
  3. 树莓派模拟电路_为树莓派开发板增加模拟信号接口
  4. macOS High Sierra 10.13.6(17G65) IWith Clover 4596 and winPE含N显卡驱动
  5. SEERC 2017 J Cunning Friends
  6. 海康球机时间同步配置
  7. isolate两三事
  8. IllegalStateException: Content has been consumed
  9. c语言智能手环程序,c+智能手环怎么用 c+智能手环使用图文教程
  10. leach协议c++代码_leach协议.doc