目录
前言
相信你也对消灭星星很感兴趣,因为它曾经是非常受欢迎的一款游戏。它融入进了我们童年的生活中,它让我们找到了不一样的快乐。
为什么要编消灭星星?
以前觉得c++算出来了一个1+1=2感觉很神奇(这也是每一个初学者所经历过的吧......),但后来却不一样了。我们天天刷各种各样的题,一直跟那个以*.exe命名的文件讨价还价,而它反而天天跟你装神弄鬼,你要的是2,它偏偏给你个3,这时候你很想甩了那电脑——黑底白字的3,清清楚楚明明白白。
最近我又碰巧没事,闲在家里看看电视,打打游戏,我竟有了创作消灭星星的灵感和决心!
关于消灭星星
作者的消灭星星,共:
628行,
15523个字符,
10个函数,
内存2MB。
测试环境:
Windows7
c++编译器5.11
创作此代码历经5个月,357次测试,均无bug。#请放心使用#
代码更新日志
2021.2.2 消灭方块v1.0.0。
2021.2.5 消灭方块v1.1.2,增加颜色模块,修复了两个bug。
2021.2.6 消灭方块v1.3.3,增加了商店,修复了一个bug。
2021.3.4 消灭方块v1.5.4,增加了退出功能和最高分存储,修复了一个bug。
2021.4.10 消灭星星v2.5.8,全新改版,游戏名更为消灭星星,并修复了n多bug。
2021.4.28 消灭星星v2.6.0,修复了一些bug。
2021.5.5 消灭星星v3.6.0,增加查看信息板块,增加了隐藏板块,等你来探索!
2021.6.17 消灭星星v3.8.0,修复了递归死循环的问题,减少了不必要的代码。
2021.8.12 消灭星星v3.9.1,增加了游戏中途退出功能,修复了n多bug。
代码分解
(完整代码放在篇尾,如果实在复制地恼火,点击下面链接免费下载cpp文件)
文件的开头
#include<bits/stdc++.h>
#include<windows.h>
#include<time.h>
using namespace std;
int input=0,coin=100,chuizi=2,cp=1,again=0,play[11][11],ceshi[11][11],guanka=-1,aa,bb,cc,dd,ee,sjhang,sjlie,mubiao=0,guanqianzongfen=0,guankazongfen=0,jsq=0,jiafen=0,finishjiafen=0,jihuo=0;
string jihuoma;
函数10个,分别指
锤子商店模块
积分翻倍器商店模块
开始模块
结束判断
输出模块
输入模块
搜索模块
掉落模块
退出判断
主函数。
void shop_chuizi();
void shop_cp();
int start();
bool ended();
void outputed();
void inputed();
void search(int,int);
void falldown();
bool onefalse(int,int);
int main()
主函数内是菜单:
int main()
{
srand(time(NULL));
HANDLE consolehwnd;//创建句柄
consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
while(1)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
cout<<"Welcome to pop star!\n1.开始\n2.商城\n3.我的\n4.继续\n5.清空历史\n";
cin>>input;
while(input!=1&&input!=2&&input!=3&&input!=4&&input!=5&&input!=6)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<"Welcome to pop star!\n1.开始\n2.商城\n3.我的\n4.继续\n5.清空历史\n";
cin>>input;
}
if(input==2)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
cout<<"Welcome to pop star store!You can buy what you want to buy!\n你有:"<<coin<<"个金币。\n1.锤子:30个金币\n2.积分翻倍器:80个金币\n3.返回\n";
cin>>input;
while(input!=1&&input!=2&&input!=3)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<"Welcome to pop star store!You can buy what you want to buy!\n你有:"<<coin<<"个金币。\n1.锤子:30个金币\n2.积分翻倍器:80个金币\n3.返回\n";
cin>>input;
}
if(input==1)
{
shop_chuizi();
continue;
}
if(input==2)
{
shop_cp();
continue;
}
if(input==3)
continue;
}
if(input==3)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
cout<<"现在你有:\n"<<chuizi<<"个锤子,\n"<<cp<<"个积分翻倍器,\n"<<coin<<"个金币!\n1.返回";
cin>>input;
while(input!=1)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<"现在你有:\n"<<chuizi<<"个锤子,\n"<<cp<<"个积分翻倍器,\n"<<coin<<"个金币!\n1.返回";
cin>>input;
}
continue;
}
if(input==1)
{
guanka=-1;
start();
if(sjhang=-1)
{
again=0;
guanka--;
}
}
if(input==4)
{
if(guanka==-1)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<"你还没有进行过游戏!";
Sleep(1000);
continue;
}
else
{
again=0;
guanka--;
start();
if(sjhang=-1)
{
again=0;
guanka--;
}
}
}
if(input==5)
{
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
system("cls");
cout<<"删除记录中";
for(int i=0; i<6; ++i)
{
cout<<'.';
Sleep(300);
}
guanka=-1,guanqianzongfen=0,guankazongfen=0;
system("cls");
cout<<"删除成功!";
Sleep(1000);
}
if(input==6)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
cout<<"激活码:";
cin>>jihuoma;
if(jihuoma=="activation"||jihuoma=="!!!"||jihuoma=="pop"||jihuoma=="666"||jihuoma=="star")
{
jihuo=1;
cout<<"激活成功!";
Sleep(1000);
}
else
{
cout<<"激活失败!";
Sleep(1000);
}
}
}
return 0;
}
这才一百行好吗......
然后就是两个商店:
void shop_chuizi()
{
HANDLE consolehwnd;//创建句柄
consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
if(coin<30)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<"金币不足!";
Sleep(800);
}
else
{
coin-=30,chuizi++;
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
cout<<"成功购买了一个锤子,现在你有"<<chuizi<<"个锤子。\n你还有"<<coin<<"个金币!";
Sleep(1000);
}
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
cout<<"你有:"<<coin<<"个金币。\n1.锤子:30个金币\n2.积分翻倍器:80个金币\n3.返回\n";
cin>>input;
while(input!=1&&input!=2&&input!=3)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<"你有:"<<coin<<"个金币。\n1.锤子:30个金币\n2.积分翻倍器:80个金币\n3.返回\n";
cin>>input;
}
if(input==1)
shop_chuizi();
if(input==2)
shop_cp();
if(input==3);
}
void shop_cp()
{
HANDLE consolehwnd;//创建句柄
consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
if(coin<80)
{
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<"金币不足!";
Sleep(800);
}
else
{
coin-=80,cp++;
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
cout<<"成功购买了一个积分翻倍器,现在你有"<<cp<<"个积分翻倍器。\n你还有"<<coin<<"个金币!";
Sleep(1000);
}
system("cls");
SetConsoleTextAttribute(consolehwnd,FOREGROUN