c++小程序2021/4/3

自己做了一个小程序,希望能给做小游戏的人一些帮助,大佬勿喷,谢谢!

用了一些关于数据库的东西,还没调试好,请多多包含

#include <cassert>
#include <bits/stdc++.h>
#include <fstream>
#include <windows.h>
#include <cctype>
#include <cerrno>
#include <cstring>
#include <ctime>
#include<time.h>
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include <WinSock.h>
#include <thread>
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <cstring>
#define  WP 3;
#define  GJ 3;
#define  WQ 5;
#define  WNJ 3;
using namespace std;string banben = "1.2", cdbb, zh, mm, nc, dm, m_mysql[6];//游戏版本号,存档版本号,账号
const char* host = "localhost";
int port = 3306;
char yq[64], xz_[64];//系统时间
bool h_p = 0;//时间
bool wq[5], gj[2];//wq=武器,gj=工具,wq[0]=长矛,wq[1]=撬棍,wq[2]=土著人巨剑,wq[3]=弩,wq[4]=侦察头盔
int h;
double h_sj = 0;//游戏时间
int js, js1, js2, js3, js4, sm;//sm=记录僵尸类型
int n, xw;//询问
string xw_;
int qianbi, xl = 100, sh = 6, bd = 0, nj = 0, bh = 0, xz = 0;//变量,qianbi=钱币,xl=血量,sh=伤害,bd=绷带,nj=弩箭,xz=箱子,bh=保护
int xlsx = 100;//xlsx=血量上限
int wnj[3];//护甲耐久
int wp[3];//wp=物品
int jb = 0;//级别
int nl = 50;//能量int M_bbck()
{MYSQL_ROW M_mysql;MYSQL mysql;mysql_init(&mysql);   //初始化MYSQL变量MYSQL_RES* result;if (mysql_real_connect(&mysql, host, "root", "12345", "neice", port, NULL, 0) == NULL)  //连接到mysql{cout << "\n\t-----MySQL连接失败----" << endl;return 3;}if (mysql_query(&mysql, "select * from banben") != 0)   //若查询成功返回0,失败返回随机数,执行查询语句,这里是查询所有,banben是表名{cout << "\n\t  ----查询失败----" << endl;return 3;}result = mysql_store_result(&mysql);//将查询到的结果集储存到result中M_mysql = mysql_fetch_row(result);//将地址转换成数组m_mysql[0] = M_mysql[0];if (banben == M_mysql[0]) return 1;else return 0;if (result != NULL) mysql_free_result(result);//释放结果资源do{mysql_free_result(result);} while (!mysql_next_result(&mysql));mysql_close(&mysql);//关闭MySQL连接mysql_library_end();//关闭MySQL库
}bool M_dlzh()
{printf("欢迎游玩我的小游戏\n");printf("您可以选择游客登录或者绑定邮箱\n");printf("1.游客登陆\n2.绑定邮箱\n");
cl:cin >> xw;if (xw == 1){zh = "游客";return 1;}else{printf("请输入邮箱账号\n");cin >> zh;printf("请输入密码\n");cin >> mm;MYSQL_ROW M_mysql;MYSQL mysql;printf("请输入游戏昵称\n");cin >> nc;mysql_init(&mysql);MYSQL_RES* result;mysql_real_connect(&mysql, host, "root", "12345", "neice", port, NULL, 0);if (mysql_query(&mysql, "set names gbk"))mysql_errno(&mysql);if (mysql_query(&mysql, "select * from rs") != 0){cout << "\n\t  ----查询失败----" << endl;return 0;}result = mysql_store_result(&mysql);//将查询到的结果集储存到result中M_mysql = mysql_fetch_row(result);//将地址转换成数组mysql_query(&mysql, "set names gbk");string dm = M_mysql[0];string dm2;stringstream  M_stre;int M_int;M_stre << dm;M_stre >> M_int;M_int = M_int + 1;stringstream  M_stre2;M_stre2 << M_int;M_stre2 >> dm2;string M_str = "insert into r(yx,mm,name,dm) values ('";M_str.append(zh);M_str.append("','");M_str.append(mm);M_str.append("','");M_str.append(nc);M_str.append("','");M_str.append(dm);M_str.append("')");if (mysql_query(&mysql, M_str.c_str()) != 0){cout << "MySQL存储失败" << mysql_error(&mysql);return 0;}M_str = "update rs set rs='";M_str.append(dm2);M_str.append("'where rs='");M_str.append(dm);M_str.append("'");if (mysql_query(&mysql, M_str.c_str()) != 0){cout << "MySQL存储失败";return 0;}mysql_close(&mysql);//关闭MySQL连接mysql_library_end();//关闭MySQL库return 1;}
}char* U2G(const char* utf8)//UTF8转化为  从数据库得到的结果显示中文正常
{int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);wchar_t* wstr = new wchar_t[len + 1];memset(wstr, 0, len + 1);MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr, len);len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);char* str = new char[len + 1];memset(str, 0, len + 1);WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, NULL, NULL);if (wstr){delete[] wstr;wstr = NULL;}return str;
}void liaotians()
{MYSQL_ROW M_mysql;MYSQL_RES* result;MYSQL mysql2;while (xw_ != "-1"){Sleep(500);system("cls");mysql_init(&mysql2);mysql_real_connect(&mysql2, host, "root", "12345", "neice", port, NULL, 0);mysql_query(&mysql2, "select * from liaotian");result = mysql_store_result(&mysql2);//将查询到的结果集储存到result中M_mysql = mysql_fetch_row(result);//将地址转换成数组do{result = mysql_store_result(&mysql2);mysql_free_result(result);}while (!mysql_next_result(&mysql2));for (int i = 0; i < 5; i++){cout << U2G(M_mysql[i]) << "\n";m_mysql[i] = U2G(M_mysql[i]);}Sleep(500);}mysql_close(&mysql2);mysql_library_end();
}int liaotian()
{MYSQL mysql;MYSQL_RES* result;mysql_init(&mysql);if (mysql_real_connect(&mysql, host, "root", "12345", "neice", port, NULL, 0) == NULL)  //连接到mysql{cout << "\n\t-----MySQL连接失败----" << endl;return 2;}if (mysql_query(&mysql, "set names gbk")){cout << "\n\t-----MySQL更改字符失败----" << endl << mysql_error(&mysql) << endl;return 2;}if (mysql_query(&mysql, "select * from liaotian") != 0)  //连接到mysql{cout << "\n\t-----MySQL查询失败----" << endl;return 2;}do{result = mysql_store_result(&mysql);mysql_free_result(result);} while (!mysql_next_result(&mysql));std::thread liaotians_(liaotians);while (1){cin >> xw_;if (xw_ == "-1")break;string M_str = "DELETE FROM liaotian WHERE yi='"+m_mysql[0]+"'";mysql_query(&mysql, M_str.c_str());M_str = "insert into liaotian values ('"+ m_mysql[1] + "','" + m_mysql[2] + "','" + m_mysql[3] + "','" + m_mysql[4] + "','" + nc + ":" + xw_ + "')";mysql_query(&mysql, M_str.c_str());}liaotians_.join();mysql_close(&mysql);//关闭MySQL连接mysql_library_end();//关闭MySQL库system("cls");return 0;
}void cshijian()
{struct tm* info;time_t curtime;time(&curtime);info = localtime(&curtime);strftime(yq, sizeof(yq), "%M:%S", localtime(&curtime));
}void zjnl()
{struct tm* info;time_t curtime;time(&curtime);info = localtime(&curtime);strftime(xz_, sizeof(xz_), "%M:%S", localtime(&curtime));int xz__ = 0, yq_ = 0;for (int i = 0; i < 2; i++)xz__ = xz__ * 10 + (xz_[i] - '0');for (int i = 0; i < 2; i++)yq_ = yq_ * 10 + (yq[i] - '0');int m = xz__ * 60;int ym = yq_ * 60;xz__ = 0;yq_ = 0;for (int i = 3; i <= 4; i++)xz__ = xz__ * 10 + (xz_[i] - '0');for (int i = 3; i <= 4; i++)yq_ = yq_ * 10 + (yq[i] - '0');m = m + xz__;ym = ym + yq_;nl = nl + (m - ym) / 10;
}void wrighttxt()//退出
{ofstream OutFile("内测服存档.txt");OutFile << banben;OutFile << "\n" << nl;OutFile << "\n" << qianbi;OutFile << "\n" << sh;OutFile << "\n" << jb;OutFile << "\n" << xl;OutFile << "\n" << bd;OutFile << "\n" << nj;OutFile << "\n" << xz;OutFile << "\n" << bh;OutFile << "\n" << h;for (int i = 0; i < WQ i++){OutFile << "\n" << wq[i];}for (int i = 0; i < GJ i++){OutFile << "\n" << wp[i];}for (int i = 0; i < WP i++){OutFile << "\n" << gj[i];}for (int i = 0; i < WNJ i++){OutFile << "\n" << wnj[i];}ofstream OutFile1("账号.txt");OutFile1 << zh;OutFile1 << "\n" << nc;
}int cbd()//用绷带
{if (bd > 0){bd = bd - 1;xl = xl + 40;if (xl > xlsx){xl = xlsx;}}
}bool sl()//判断是否死了
{if (xl <= 0){xl = 100;cout << "你死了!";Sleep(600);system("cls");//清空屏幕cout << "                                  目前血量" << xl << "\n";if (bh != 1)qianbi = 0;if (bh != 2)bd = 0;if (bh != 3)for (int i = 0; i < WQ i++){wq[i] = 0;sh = 6;nj = 0;}for (int i = 0; i < WP i++){wp[i] = 0;}wrighttxt();Sleep(250);return 1;}return 0;
}void sj()//升级
{int q = 0, t = 0, b = 0, k = 0;//q=升级需要花费的钱
cx:cout << "目前钱币" << qianbi;cout << "\n目前铁矿" << wp[0];cout << "\n目前铁板" << wp[1];cout << "\n目前空气过滤器" << wp[2] << "\n";if (jb == 0){cout << "升级" << jb + 1 << "需要10元钱\n";q = 10;t = 0;b = 0;k = 0;}else if (jb == 1){cout << "升级" << jb + 1 << "级\n需要20元钱\n";q = 20;t = 0;b = 0;k = 0;}else if (jb == 2){cout << "升级" << jb + 1 << "级\n需要40元钱\n";q = 40;t = 0;b = 0;k = 0;}else if (jb == 3){cout << "升级" << jb + 1 << "级\n需要80元钱\n";cout << "奖励:解锁石镐蓝图\n";q = 80;t = 0;b = 0;k = 0;}else if (jb == 4){cout << "升级" << jb + 1 << "级\n需要100元钱\n";q = 100;t = 0;b = 0;k = 0;}else if (jb == 5){cout << "升级" << jb + 1 << "级\n需要150元钱\n";cout << "需要1个铁矿\n";q = 150;t = 1;b = 0;k = 0;}else if (jb == 6){cout << "升级" << jb + 1 << "级\n需要200元钱\n";cout << "需要2个铁矿\n";q = 200;t = 2;b = 0;k = 0;}else if (jb == 7){cout << "升级" << jb + 1 << "级\n需要250元钱\n";cout << "需要3个铁矿\n";q = 250;t = 3;b = 0;k = 0;}else if (jb == 8){cout << "升级" << jb + 1 << "级\n需要250元钱\n";cout << "需要3个铁矿\n";q = 250;t = 3;b = 0;k = 0;}else if (jb == 9){cout << "升级" << jb + 1 << "级\n需要300元钱\n";cout << "需要3个铁矿\n";cout << "奖励:解锁铁镐和弩的蓝图和红色深林访问权限\n";q = 300;t = 3;b = 0;k = 0;}else if (jb == 10){cout << "升级" << jb + 1 << "级\n需要400元钱\n";cout << "需要1个铁板\n";q = 400;t = 0;b = 1;k = 0;}else if (jb == 11){cout << "升级" << jb + 1 << "级\n需要400元钱\n";cout << "需要5个铁矿\n";q = 400;t = 5;b = 0;k = 0;}cout << "1.升级\n2.回家\n";scanf("%d", &n);if (n == 1){if (qianbi >= q && wp[0] >= t && wp[1] >= b && wp[2] >= k){jb++;qianbi = qianbi - q;wp[0] = wp[0] - t;wp[1] = wp[1] - b;wp[2] = wp[2] - k;cout << "恭喜升级!";if (jb == 4){cout << "恭喜解锁石镐蓝图!\n";}if (jb == 10){cout << "恭喜解锁铁镐蓝图!\n";cout << "恭喜解锁弩蓝图!\n";cout << "恭喜解锁红色深林!\n";}if (jb == 15){cout << "恭喜可以查看关于辐射的事情!\n";cout << "恭喜解锁侦察兵呼吸机蓝图!\n";}Sleep(500);system("cls");//清空屏幕goto cx;}else{cout << "对不起,材料不足!";cout << "\n输入数字返回\n";scanf("%d", &n);}}
}void wd(bool j)//打印血量
{if (j == 0){system("cls");//清空屏幕cout << "                                  目前血量" << xl << "\n";}else if (j == 1){system("cls");//清空屏幕cout << "                                  目前血量" << xl << "/" << xlsx << "\n";}
}int qsd()//商店
{cl:cout << "你要买什么东西?\n";cout << "目前钱币" << qianbi;cout << "\n1.长矛(+10的攻击力,耐久20下) 10元\n";cout << "2.绷带(+40血)10元一个,25元3个,现在有" << bd << "个绷带。\n";cout << "3.撬棍(+17的攻击力,耐久30下)20元\n";cout << "4.石镐(可以采集铁矿)需要等级4级,10元\n";cout << "5.铁镐(采集更坚硬的矿石)需要等级10级,300元\n";cout << "6.土著民族巨剑(+42的攻击力,耐久50下)需要15级,2500元\n";cout << "7.退出\n";scanf("%d", &n);if (n == 1){if (wq[0] == 0){if (qianbi >= 10){cout << "购买成功\n";sh = 10;qianbi = qianbi - 10;wq[0] = 1;wnj[0] = 20;Sleep(250);}else if (qianbi < 10){cout << "购买失败\n";Sleep(250);}}else{cout << "装备成功\n";sh = 10;Sleep(250);}}else if (n == 2){cout << "1.买1个\n";cout << "2.买3个\n";cin >> n;if (n == 1){if (qianbi >= 10){cout << "购买成功\n";qianbi = qianbi - 10;bd++;Sleep(250);}else if (qianbi < 10){cout << "购买失败\n";Sleep(250);}}else if (n == 2){if (qianbi >= 25){cout << "购买成功\n";qianbi = qianbi - 25;bd = bd + 3;Sleep(250);}else if (qianbi < 25){cout << "购买失败\n";Sleep(250);}}}else if (n == 3){if (wq[1] == 0){if (qianbi >= 20){cout << "购买成功\n";sh = 17;qianbi = qianbi - 20;wq[1] = 1;wnj[1] = 30;Sleep(250);}else if (qianbi < 20){cout << "购买失败\n";Sleep(250);}}else{cout << "装备成功\n";sh = 17;Sleep(250);}}else if (n == 4){if (jb >= 4){if (gj[0] == 0){if (qianbi >= 10){cout << "购买成功\n";qianbi = qianbi - 10;gj[0] = 1;Sleep(250);}else if (qianbi < 10){cout << "购买失败\n";Sleep(250);}}else{cout << "您已购买\n";Sleep(250);}}else{cout << "等级不足,需要4级!";Sleep(250);}}else if (n == 5){if (jb >= 10){if (gj[1] == 0){if (qianbi >= 300){cout << "购买成功\n";qianbi = qianbi - 300;gj[1] = 1;Sleep(250);}else if (qianbi < 300){cout << "购买失败\n";Sleep(250);}}else{cout << "您已购买\n";Sleep(250);}}else{cout << "等级不足,需要10级!";Sleep(250);}}if (n == 6){if (wq[2] == 0){if (jb >= 15){if (qianbi >= 2500){cout << "购买成功\n";sh = 42;qianbi = qianbi - 2500;wq[2] = 1;wnj[2] = 50;Sleep(250);}else if (qianbi < 2500){cout << "购买失败\n";Sleep(250);}}else{cout << "等级不足,需要15级";Sleep(250);}}else{cout << "装备成功\n";sh = 42;Sleep(250);}}else if (n == 7){wd(0);return 0;}system("cls");//清空屏幕goto cl;
}int qtjp()//工匠
{cx:system("cls");cout << "欢迎来到铁匠铺";cout << "您要制作什么?\n";cout << "目前钱币" << qianbi;cout << "\n目前铁矿" << wp[0];cout << "\n目前铁板" << wp[1];cout << "\n目前空气过滤器" << wp[2];cout << "\n1.箱子5级解锁,需要铁矿5个,钱300(可以保存某个物品)\n";cout << "2.临时弩需要等级达到10级,铁矿3个,钱200(伤害27,有几率暴击81伤害,且是远程武器)\n";cout << "3.5支弩箭需要等级达到10级,铁矿1个,钱10元(临时弩需要的弹药)\n";cout << "4.侦察兵头盔需要15级,铁板3个,钱1000元(可以抵御5的辐射)\n";cout << "5.退出\n";scanf("%d", &n);if (n == 1){if (xz == 0){if (jb >= 5){if (wp[0] >= 5 && qianbi >= 300){cout << "制作成功!";wp[0] = wp[0] - 5;qianbi = qianbi - 300;xz = 1;Sleep(250);goto cx;}else{cout << "需要铁矿5个,钱300元,您不够!\n";Sleep(250);goto cx;}}else{cout << "等级不足,没有解锁蓝图!(5级解锁)";Sleep(250);goto cx;}}else{cout << "你已制作";Sleep(250);goto cx;}}else if (n == 2){if (wq[3] == 0){if (jb >= 10){if (wp[0] >= 3 && qianbi >= 500){cout << "制作成功!";wp[0] = wp[0] - 3;qianbi = qianbi - 500;wq[3] = 1;Sleep(250);goto cx;}else{cout << "需要铁矿3个,钱500元,您不够!\n";Sleep(250);goto cx;}}else{cout << "等级不足,没有解锁蓝图!(10级解锁)";Sleep(250);goto cx;}}else{cout << "您以制作\n";Sleep(250);goto cx;}}else if (n == 3){if (jb >= 10){if (wp[0] >= 1 && qianbi >= 10){cout << "制作成功!";wp[0] = wp[0] - 1;qianbi = qianbi - 10;nj = nj + 5;Sleep(250);goto cx;}else{cout << "需要铁矿1个,钱10元,您不够!\n";Sleep(250);goto cx;}}else{cout << "等级不足,没有解锁蓝图!(10级解锁)";Sleep(250);goto cx;}}//    else if(n==4)//   {//     if(jb>=15)//        {//         if(wq[4]==0)//            {//             if(wp[1]>=3&&qianbi>=1000)//                {//                 cout<<"制作成功!\n已经穿上!";//                   wp[1]=wp[1]-3;//                   qianbi=qianbi-1000;//                  wq[4]=1;//                 wnj[0]=30;//                   Sleep(250);//                   goto cx;//              }//             else//              {//                 cout<<"需要铁板3个,钱1000元,您不够!\n";//                   Sleep(250);//                   goto cx;//              }//         }//         else//          {//             if(ds[0]==1)//                {//                 cout<<"脱下成功!";//                 ds[0]=0;//                 Sleep(250);//                   goto cx;//              }//             else//              {//                 cout<<"穿上成功!";//                 ds[0]=1;//                 Sleep(250);//                   goto cx;//              }//         }////       }//     else//      {//         cout<<"等级不足,没有解锁蓝图!(15级解锁)";//          Sleep(250);//           goto cx;//      }// }else if (n == 5){system("cls");return 0;}}int fnj(int jg, string jgs)//发射弩箭
{srand((int)time(0));n = rand() % 5;nj = nj - 1;if (jg == 1 && jgs == "普通"){if (n == 0 || n == 1 || n == 2 || n == 3){js = js - 81;}else if (n == 4){js = js - 27;}}else if (jg == 2 && jgs == "普通"){if (js1 <= 0){if (n == 0 || n == 1 || n == 2 || n == 3){js2 = js2 - 81;}else if (n == 4){js2 = js2 - 27;}}else{if (n == 0 || n == 1 || n == 2 || n == 3){js1 = js1 - 81;}else if (n == 4){js1 = js1 - 27;}}}else if (jg == 3 && jgs == "十字路口"){if (js1 > 0){if (n == 0 || n == 1 || n == 2 || n == 3){js1 = js1 - 81;}else if (n == 4){js1 = js1 - 27;}}else if (js1 <= 0 && js2 > 0){if (n == 0 || n == 1 || n == 2 || n == 3){js2 = js2 - 81;}else if (n == 4){js2 = js2 - 27;}}else if (js1 <= 0 && js2 <= 0 && js3 > 0){if (n == 0 || n == 1 || n == 2 || n == 3){js3 = js3 - 81;}else if (n == 4){js3 = js3 - 27;}}}else if (jg == 4 && jgs == "红色"){if (js1 > 0){if (n == 0 || n == 1 || n == 2 || n == 3){js1 = js1 - 81;}else if (n == 4){js1 = js1 - 27;}}else if (js1 <= 0 && js2 > 0){if (n == 0 || n == 1 || n == 2 || n == 3){js2 = js2 - 81;}else if (n == 4){js2 = js2 - 27;}}else if (js1 <= 0 && js2 <= 0 && js3 > 0){if (n == 0 || n == 1 || n == 2 || n == 3){js3 = js3 - 81;}else if (n == 4){js3 = js3 - 27;}}else if (js1 <= 0 && js2 <= 0 && js3 <= 0 && js4 > 0){if (n == 0 || n == 1 || n == 2 || n == 3){js4 = js4 - 81;}else if (n == 4){js4 = js4 - 27;}}}
}int djs(int jg)
{if (jg == 1){if (js > 0){js = js - sh;}}else if (jg == 2){if (js1 > 0){js1 = js1 - sh;}else if (js1 < 0){js2 = js2 - sh;}}
}int _1ji()//一级图
{cx:int n;srand((int)time(0));n = rand() % 3;if (n == 1 || n == 0){srand((int)time(0));n = rand() % 3;cout << "你遇到了";js = 40 * 1.5;cout << "1只僵尸";cout << ",是普通僵尸(" << 40 * h_sj << "血)\n";while (js > 0){cout << "普通僵尸:" << js;cout << "\n1.跑\n2.打\n3.用绷带(数量" << bd << ")\n";if (wq[3] == 1 && nj > 0)cout << "4.用弩打,还剩下" << nj << "支弩箭\n";scanf("%d", &xw);wd(0);if (xw == 1){srand((int)time(0));//重置随机数n = rand() % 3;if (n == 0 || n == 1){xl = xl - 5;cout << "你逃跑的时候被打了了-5血";}else{cout << "你逃走了";}if (sl())return 0;Sleep(500);if (sl())return 0;wd(0);return 0;}else{if (xw == 2){djs(1);}if (xw == 3){cbd();}else if (xw == 4){fnj(1, "普通");}xl = xl - 5;if (sl())return 0;wd(0);}}cout << "僵尸挂了";cout << "你获得5元钱";qianbi = qianbi + 5;cout << "\n1.回家\n2.继续\n";scanf("%d", &xw);if (xw == 2){system("cls");wd(0);goto cx;}}else if (n == 2){cout << "你发现了";cout << "一个箱子";cout << "有5元钱";qianbi = qianbi + 5;cout << "\n1.回家\n2.继续\n";scanf("%d", &xw);wd(0);if (xw == 2){goto cx;system("cls");}}
}int _2ji()//二级图
{cx:srand((int)time(0));n = rand() % 3;if (n == 1 || n == 2){srand((int)time(0));n = rand() % 2;printf("你遇到了");if (n == 0 || n == 1){cout << "是快啃者僵尸(" << 80 * h_sj << "血)\n";sm = 0;js = 80 * h_sj;}else{cout << "是喷毒僵尸(" << 100 * h_sj << "血)\n";sm = 1;js = 100 * h_sj;}while (js > 0){if (sm == 0)cout << "快啃者僵尸:" << js;else if (sm == 1)cout << "喷毒僵尸:" << js;cout << "\n1.跑\n2.打\n3.用绷带(数量" << bd << ")\n";if (wq[3] == 1 && nj > 0)cout << "4.用弩打,还剩下" << nj << "支弩箭\n";scanf("%d", &xw);wd(0);if (xw == 1){srand((int)time(0));//重置随机数n = rand() % 3;if (n == 0 || n == 1){xl = xl - 5;cout << "你逃跑的时候被打了了-5血";}else{cout << "你逃走了";}Sleep(500);if (sl())return 0;wd(0);return 0;}else{if (xw == 2){djs(1);}if (xw == 3){cbd();}else if (xw == 4){fnj(1, "普通");}xl = xl - 5;if (sl())return 0;wd(0);}}cout << "僵尸挂了";cout << "你获得15元钱";qianbi = qianbi + 15;cout << "\n1.回家\n2.继续\n";scanf("%d", &xw);if (xw == 2){system("cls");wd(0);goto cx;}}else if (n == 0){srand((int)time(0));n = rand() % 3;if (n == 0){printf("你发现了一个箱子有5元钱");qianbi = qianbi + 5;}else if (n == 1){printf("你发现了一个箱子有10元钱");qianbi = qianbi + 10;}else if (n == 2){printf("你发现了铁矿石");if (jb >= 4){if (gj[0] == 1 || gj[1] == 1){printf("恭喜获得铁矿一个");wp[0] = wp[0] + 1;}else{printf("但是挖不动,需要石镐或铁镐!");}}else{printf("但是等级不足,需要4级且制作石镐");}}cout << "\n1.回家\n2.继续\n";scanf("%d", &xw);wd(0);if (xw == 2){goto cx;system("cls");}}
}int _3ji()//三级图
{cx:srand((int)time(0));n = rand() % 3;if (n == 1 || n == 2){srand((int)time(0));n = rand() % 4;printf("你遇到了");if (n == 0 || n == 1){cout << "是喷毒僵尸(" << 100 * h_sj << "血)\n";sm = 0;js = 100 * h_sj;}else if (n == 2){cout << "是胖子僵尸(" << 240 * h_sj << "血)\n";sm = 1;js = 240 * h_sj;}else{cout << "是腐烂僵尸(" << 320 * h_sj << "血))\n";sm = 2;js = 320 * h_sj;}while (js > 0){if (sm == 0)cout << "喷毒僵尸:" << js;else if (sm == 1)cout << "胖子僵尸:" << js;else if (sm == 2)cout << "腐烂僵尸:" << js;cout << "\n1.跑\n2.打\n3.用绷带(数量" << bd << ")\n";if (wq[3] == 1 && nj > 0)cout << "4.用弩打,还剩下" << nj << "支弩箭\n";scanf("%d", &xw);wd(0);if (xw == 1){srand((int)time(0));//重置随机数n = rand() % 3;if (n == 0 || n == 1){if (sm == 0){xl = xl - 5;cout << "你逃跑的时候被打了了-5血";}else if (sm == 1){xl = xl - 10;cout << "你逃跑的时候被打了了-10血";}else if (sm == 2){xl = xl - 7;cout << "你逃跑的时候被打了了-7血";}}else{cout << "你逃走了";}Sleep(500);if (sl())return 0;wd(0);return 0;}else{if (xw == 2){djs(1);}if (xw == 3){cbd();}else if (xw == 4){fnj(1, "普通");}if (sm == 0)xl = xl - 5;else if (sm == 1)xl = xl - 10;else if (sm == 2){srand((int)time(0));//重置随机数n = rand() % 30;if (n == 0){cout << "僵尸使用了技能";Sleep(250);xl = xl - 25;}else{xl = xl - 7;}}if (sl())return 0;wd(0);}}cout << "僵尸挂了";cout << "你获得35元钱";qianbi = qianbi + 35;cout << "\n1.回家\n2.继续\n";scanf("%d", &xw);if (xw == 2){system("cls");wd(0);goto cx;}}else if (n == 0){srand((int)time(0));n = rand() % 8;if (n == 0 || n == 1 || n == 2){printf("你发现了一个箱子有20元钱");qianbi = qianbi + 10;}else if (n == 3 || n == 4){printf("你发现了一个箱子有10元钱");qianbi = qianbi + 10;}else if (n == 5 || n == 6){printf("你发现了铁矿石");if (jb >= 4){if (gj[0] == 1 || gj[1] == 1){printf("恭喜获得铁矿一个");wp[0] = wp[0] + 1;}else{printf("但是挖不动,需要石镐或铁镐!");}}else{printf("但是等级不足,需要4级且制作石镐");}}else if (n == 7){printf("在箱子里发现了一个铁片");if (jb >= 4){if (gj[0] == 1 || gj[1] == 1){printf("恭喜获得铁矿一个");wp[0] = wp[0] + 1;}else{printf("但是挖不动,需要石镐或铁镐!");}}else{printf("但是等级不足,需要4级且制作石镐");}}cout << "\n1.回家\n2.继续\n";scanf("%d", &xw);wd(0);if (xw == 2){goto cx;system("cls");}}
}int hs()//红色深林
{int n, xsl = 4, xz = 2;js1 = 160 * h_sj;js2 = 160 * h_sj;js3 = 240 * h_sj;js4 = 320 * h_sj;int s;
cx:srand((int)time(0));n = rand() % 7;if (n == 0 || n == 1 || n == 2 || n == 3 || n == 4){srand((int)time(0));n = rand() % 5;if (n == 0){js = 100;cout << "1只僵尸";cout << ",是喷毒僵尸(" << 100 * h_sj << "血)\n";}else if (n == 1 || n == 2){js = 240;cout << "1只僵尸";cout << ",是胖子僵尸(" << 240 * h_sj << "血)\n";s = 1;}else if (n == 3 || n == 4){js = 320;cout << "1只僵尸";cout << ",是腐烂僵尸(" << 320 * h_sj << "血)\n";s = 2;}cout << "1.跑\n2.打\n3.用绷带(数量" << bd << ")\n";if (wq[3] == 1 && nj > 0)cout << "4.用弩打,还剩下" << nj << "支弩箭\n";scanf("%d", &n);wd(0);if (n == 1){pl:srand((int)time(0));//重置随机数n = rand() % 2;system("cls");//清空屏幕if (n == 1){if (s == 0){cout << "你被打了-5血";xl = xl - 5;}else if (s == 1){cout << "你被打了-10血";xl = xl - 10;}else if (s == 2){srand((int)time(0));n = rand() % 5;if (n == 0 || n == 1 || n == 2){cout << "你被打了-7血";xl = xl - 7;}else if (n == 3){cout << "怪物使用技能,你被打中了-30血";xl = xl - 30;}}if (sl())return 1;cout << "                                  目前血量" << xl << "\n";}else if (n == 0)cout << "你跑了";}else{if (n == 3){cbd();}else if (n == 4){fnj(1, "普通");}dj:system("cls");//清空屏幕if (s == 0){cout << "你被打了-5血";xl = xl - 5;}else if (s == 1){cout << "你被打了-10血";xl = xl - 10;}else if (s == 2){srand((int)time(0));n = rand() % 5;if (n == 0 || n == 1 || n == 2 || n == 3){cout << "你被打了-7血";xl = xl - 7;}else if (n == 4){cout << "怪物使用技能,你被打中了-30血";xl = xl - 30;}}if (sl())return 1;cout << "                                  目前血量" << xl << "\n";if (n != 3) js = js - sh;if (js < 0 || js == 0){cout << "僵尸挂了";cout << "你获得20元钱,级别增加0.4级";qianbi = qianbi + 20;jb = jb + 0.4;cout << "\n1.回家\n2.继续\n";scanf("%d", &n);wd(0);if (n == 2)goto cx;}else{cl:cout << "僵尸血量" << js << "\n";cout << "1.跑\n2.打\n3.用绷带(数量" << bd << ")\n";if (wq[3] == 1 && nj > 0)cout << "4.用弩打,还剩下" << nj << "支弩箭\n";scanf("%d", &n);wd(0);if (n == 1)goto pl;if (n == 2)goto dj;else if (n == 3){cbd();if (sl())return 1;wd(0);if (s == 0){cout << "你被打了-5血\n";xl = xl - 5;}else if (s == 1){cout << "你被打了-10血\n";xl = xl - 10;}else if (s == 2){srand((int)time(0));n = rand() % 3;if (n == 0 || n == 1){cout << "你被打了-7血\n";xl = xl - 7;}else if (n == 2){cout << "怪物使用技能,你被打中了-30血\n";xl = xl - 30;}}goto cl;}else if (n == 4){fnj(1, "普通");goto dj;}}}}else if (n == 5 || n == 6){if (xz == 0){cout<<"这个地方没有箱子了!\n";cout<<"1.回家\n2.继续\n";scanf("%d", &n);if (n == 1)return 0;else if (n == 2)goto cx;}xz--;while (js1 > 0 || js2 > 0 || js3 > 0 || js4 > 0){wd(0);if (js1 > 0){cout << "守卫血量:" << js1 << " 守卫2血量:" << js2 << " 胖子血量:" << js3 << " 腐烂僵尸血量:" << js4;}else if (js1 <= 0 && js2 > 0){cout << "守卫2血量:" << js2 << " 胖子血量:" << js3 << " 腐烂僵尸血量:" << js4;}else if (js1 <= 0 && js2 <= 0 && js3 > 0){cout << "胖子血量:" << js3 << " 腐烂僵尸血量:" << js4;}else{cout << "腐烂僵尸血量:" << js4;}cout << "\n1.跑\n2.打\n3.用绷带(数量" << bd << ")\n";if (wq[3] == 1 && nj > 0)cout << "4.用弩打,还剩下" << nj << "支弩箭\n";scanf("%d", &n);wd(0);if (n == 1)return 0;if (n == 3){cbd();}else if (n == 4){fnj(4, "红色");}if (n == 2 || n == 3 || n == 4){if (js1 > 0){xl = xl - 27;cout << "你被打了一下-27血";}else if (js1 <= 0 && js2 > 0){xl = xl - 22;cout << "你被打了一下-22血";}else if (js1 <= 0 && js2 <= 0 && js3 > 0){xl = xl - 17;cout << "你被打了一下-17血";}else if (js1 <= 0 && js2 <= 0 && js3 <= 0){xl = xl - 7;cout << "你被打了一下-7血";}if (sl())return 1;if (n != 4 && n != 3){if (js1 > 0)js1 = js1 - sh;else if (js1 <= 0 && js2 > 0)js2 = js2 - sh;else if (js1 <= 0 && js2 <= 0 && js3 > 0)js3 = js3 - sh;else if (js1 <= 0 && js2 <= 0 && js3 <= 0)js4 = js4 - sh;}else if (n == 5){goto cx;}}}wd(0);cout << "恭喜你获得箱子一个";n = rand() % 7;if (n == 0 || n == 1 || n == 2 || n == 3){cout << "你获得250元";qianbi = qianbi + 250;}else if (n == 4 || n == 5){cout << "你获得300元";qianbi = qianbi + 300;}else if (n == 6){cout << "你获得350元";qianbi = qianbi + 350;}n = rand() % 3;if (n == 0 || n == 1){cout << "\n还有一个铁板\n";wp[1] = wp[1] + 1;}else if (n == 2){cout << "\n还有两个铁板\n";wp[1] = wp[1] + 2;}n = rand() % 5;if (n == 0){cout << "一个空气过滤器\n";wp[1] = wp[1] + 1;}cout << "1.继续\n2.回家\n";scanf("%d", &n);if (n == 1){goto cx;}else if (n == 2){return 0;}}
}int szlk()//十字路口
{xlsx = 100;wd(1);js1 = 160, js2 = 160, js3 = 240;int fs = 3;cout << "你看见车子(箱子)离你不远,但是有2个奔跑者僵尸(160血),1个胖子(240血)\n";while (js1 > 0 || js2 > 0 || js3 > 0){if (js1 > 0){cout << "奔跑者僵尸:" << js1 << "奔跑者僵尸2:" << js2 << "胖子:" << js3 << "\n";}else if (js1 <= 0 && js2 > 0){cout << "奔跑者僵尸2:" << js2 << "胖子:" << js3 << "\n";}else if (js1 <= 0 && js2 <= 0 && js3 > 0){cout << "胖子:" << js3 << "\n";}cout << "1.跑\n2.打\n3.用绷带(数量" << bd << ")\n";if (wq[3] == 1 && nj > 0)cout << "4.用弩打,还剩下" << nj << "支弩箭\n";scanf("%d", &n);//       if(ds[0]==0)//        {//         xlsx=xlsx-fs;//            if(xl>xlsx)//            xl=xlsx;//     }wd(1);if (n == 1)return 0;else{if (n == 2){if (js1 > 0){js1 = js1 - sh;}else if (js1 <= 0 && js2 > 0){js2 = js2 - sh;}else if (js1 <= 0 && js2 <= 0 && js3 > 0){js3 = js3 - sh;}}else if (n == 3){cbd();}else if (n == 4){fnj(3, "十字路口");}if (js1 > 0){xl = xl - 30;}else if (js1 <= 0 && js2 > 0){xl = xl - 20;}else if (js1 <= 0 && js2 <= 0 && js3 > 0){xl = xl - 10;}if (sl())return 0;}}cout << "1.开箱子2.回家";scanf("%d", &n);if (n == 1){rand() % 2;if (n == 0){cout << "啊~!我的太阳(车载音乐)\n";cout << "一群僵尸来袭(5个160血的喷毒僵尸)\n";cout << "1.跑\n2.打\n3.用绷带(数量" << bd << ")\n";if (wq[3] == 1 && nj > 0)cout << "4.用弩打,还剩下" << nj << "支弩箭\n";}}
}void zhs()//主函数
{if (h_p){ cx:printf("您现在要干什么?                  ");if (h > 19 || h < 5)printf("现在是晚上\n");else if (h > 5 || h < 12)printf("现在是早上\n");else if (h > 12 || h < 19)printf("现在是中午\n");printf("目前钱币%d\n", qianbi);}elseh_p = 1;cout << "目前等级" << jb << "级\n";int xwyk = 0;if (jb < 15){cout << "1.打怪\n2.去商店\n3.去铁匠铺\n4.用绷带\n5.放东西\n6.升级\n";//开头询问if (zh != "游客"){cout << "7.聊天\n8.退出\n";xwyk = 0;}else{cout << "7.退出\n";xwyk = 1;}}else{cout << "1.打怪\n2.去商店\n3.去铁匠铺\n4.用绷带\n5.放东西\n6.升级\n7.查看关于辐射的事情\n";if (zh != "游客"){cout << "8.聊天\n9.退出\n";xwyk = 2;}else{cout << "8.退出\n";xwyk = 3;}}scanf("%d", &xw);if (xw == -1){cout << "欢迎来到充值商店\n";cout << "1.金币+2000    2.铁矿+5个    3.能量加50    4.退出\n";cout << "  RMB 0元        RMB 0元       RMB 0元\n";scanf("%d", &xw);if (xw == 1){qianbi = qianbi + 2000;cout << "充值成功!";Sleep(500);system("cls");//清空屏幕goto cx;}else if (xw == 2){wp[0] = wp[0] + 2000;cout << "充值成功!";Sleep(500);system("cls");//清空屏幕goto cx;}else if (xw == 3){nl = 50;cout << "充值成功!";Sleep(500);system("cls");//清空屏幕goto cx;}else{wd(0);goto cx;}}if (xw == 1){zjnl();system("cls");//清空屏幕cout << "你要去哪里打怪?\n目前能量:" << nl << "/50\n";cout << "1.1级地方\n2.2级地方\n3.3级地方\n";if (jb < 10) cout << "4.退出\n";else if (jb >= 10 && jb < 15) cout << "4.红色深林\n5.退出\n";else if (jb >= 15) cout << "4.红色深林\n5.十字路口\n6.退出\n";cin >> xw;wd(0);if (xw == 1){if (nl >= 10){cshijian();_1ji();zjnl();nl = nl - 10;h = h + 1;if (h > 24)h = h - 24;cout << "你回到了家";Sleep(500);wd(0);goto cx;}}else if (xw == 2){if (nl >= 20){cshijian();_1ji();zjnl();nl = nl - 20;h = h + 1;if (h > 24)h = h - 24;cout << "你回到了家";Sleep(500);wd(0);goto cx;}}else if (xw == 3){if (nl >= 30){cshijian();_1ji();zjnl();nl = nl - 30;h = h + 1;if (h > 24)h = h - 24;cout << "你回到了家";Sleep(500);wd(0);goto cx;}}if (jb >= 15){if (xw == 4){hs();cout << "你回到了家";goto cx;}if (xw == 5){szlk();cout << "你回到了家\n";xlsx = 100;goto cx;}if (xw == 6){goto cx;}}if (jb >= 10){if (xw == 4){hs();cout << "你回到了家";goto cx;}if (xw == 5){goto cx;}}if (jb < 10){if (xw == 4){goto cx;}}}else if (xw == 2){system("cls");//清空屏幕qsd();goto cx;}else if (xw == 3){system("cls");//清空屏幕qtjp();goto cx;}else if (xw == 4){if (cbd())cout << "加血成功";elsecout << "没有绷带了";Sleep(250);wd(0);goto cx;}else if (xw == 5){if (xz){cw:cout << "您要将什么放入箱子里(避免死后这个物品消失)\n";cout << "1.钱币\n2.绷带\n3.武器\n4.退出\n";cin >> xw;wd(0);if (xw != 4){bh = xw;cout << "保存成功!";Sleep(500);system("cls");//清空屏幕goto cx;}else{cout << "保存失败";return;Sleep(500);system("cls");//清空屏幕goto cw;}}else{cout << "您还没有制作箱子!";Sleep(500);}wd(0);goto cx;}else if (xw == 6){sj();system("cls");//清空屏幕goto cx;}if (xwyk == 0){if (xw == 7){liaotian();cout << "退出成功!\n";goto cx;}else if (xw == 8){return;}}else if (xwyk == 1){return;}else if (xwyk == 2){if (xw == 7){bdbf:wd(0);cout << "xxxx年病毒爆发,导致很多人变成了僵尸,一些普通的零件变得无比稀有。某一些地方核辐射泄漏再一次导致僵尸变异!\n";cout << "核辐射:会导致血量 上限 减少\n";cout << "目前只有防辐射衣服可以抵御辐射。\n";cout << "但是因为变异的原因,一些地方的僵尸他们的爪子已经可以抓破防辐射服了(减少耐久),所以要小心!";cout << "\n输入Enter返回";getchar();getchar();wd(0);goto cx;}else if (xw == 8){liaotian();cout << "退出成功!\n";goto cx;}else if (xw == 9){return;}}else if (xwyk == 3){if (xw == 7)goto bdbf;elsereturn;}
}int main()//载入存档
{if (M_bbck() == 0){cout << "请更新游戏版本";return 0;}else if (M_bbck() == 3){cout << "无法连接MySQL";return 0;}FILE* fp1 = fopen("账号.txt", "a");fclose(fp1);ifstream in1("账号.txt");in1 >> zh;in1 >> nc;if (zh == ""){if (!M_dlzh())return 0;}cshijian();cout << "内测模式....";Sleep(500);system("cls");FILE* fp = fopen("内测服存档.txt", "a");fclose(fp);ifstream in("内测服存档.txt");in >> cdbb;//版本号1if (cdbb != m_mysql[0]){cout << "             游戏公告:\n";printf("玩家您好,您目前存在的内测服1.1更新如下\n");printf("1.增加能量系统,前往地图需要不同的能量,能量会不断恢复(目前是1分钟5个)。\n");printf("2.对存档进行加密,但内测服开启免费充值(输入-1)。\n");printf("3.我们对游戏bug进行了优化。\n");cout << "按下Enter关闭游戏公告...";getchar();}in >> nl;in >> qianbi;//钱币2in >> sh;//伤害3in >> jb;//级别4in >> xl;//血量5in >> bd;//绷带6in >> nj;//弩箭7in >> xz;//箱子8in >> bh;//保护9in >> h;//时间10for (int i = 0; i < WQ i++)//4{in >> wq[i];}for (int i = 0; i < WP i++)//2{in >> wp[i];}for (int i = 0; i < GJ i++)//2{in >> gj[i];}for (int i = 0; i < WNJ i++)//2{in >> wnj[i];}sl();system("cls");//清空屏幕cout << "欢                              目前血量" << xl << "\n";printf("迎");if (h > 19 || h < 5){cout << "                              现在是晚上\n";h_sj = 1.5;}else if (h > 5 || h < 12){cout << "                              现在是早上\n";h_sj = 1;}else if (h > 12 || h < 19)cout << "                              现在是中午\n";printf("目前钱币%d\n", qianbi);zhs();wrighttxt();return 0;
}

做了个聊天室不知道为什么

c++小游戏1.2版本2021/4/3相关推荐

  1. 吊死人小游戏 2.0版本

    游戏名称: 吊死人小游戏2.0版本(4位数字版) 游戏玩法: 选择被吊的人物 每次输入4个数字 如果猜对其中至少一个数字,看做猜对了 如果一个也没猜中,看做猜错,被吊人物画一笔 全部猜中,并且被吊人物 ...

  2. 吊死人小游戏 1.0版本

    游戏名称: 吊死人小游戏1.0版本(4位数字版本) 游戏玩法: 每次输入一个4位数,表示你所猜4个数字. 如果你猜对了其中的几个数字,那么下方的4个问号中与你所猜对数字对应的数字将显现出来. 如果你猜 ...

  3. java游戏+弹幕_JAVA 弹幕小游戏 1.0版本

    java 弹幕小游戏 最初版本 最近在学习javaSE,根据b站视频老师的讲解,也参考了他的代码,做了一个弹幕小游戏,也增添了一些自己的代码进去,因为只是最简单的游戏体,以后会慢慢做完整,所以如果有错 ...

  4. java 弹幕游戏_JAVA 弹幕小游戏 1.0版本

    java 弹幕小游戏 最初版本 最近在学习javaSE,根据b站视频老师的讲解,也参考了他的代码,做了一个弹幕小游戏,也增添了一些自己的代码进去,因为只是最简单的游戏体,以后会慢慢做完整,所以如果有错 ...

  5. 扫雷小游戏 2.0版本

    游戏名称: 扫雷小游戏2.0 游戏操作: 详情请见:主页->专栏->小游戏->扫雷小游戏1.0->游戏操作 创作背景: 昨天才说大概要8.21之后更新,但由于我提高组模拟赛爆0 ...

  6. PROTEUS最新版本下载CSDN_233乐园小游戏下载最新版本-233乐园小游戏下载并安装下载免费...

    <233乐园小游戏下载并安装>是一款非常好用的游戏盒子类的软件,玩家能够通过软件找到包括樱花校园模拟器等在内的各种最新版本的破解版游戏资源,免费进行体验,另外还可以交友分享自己的生活,认识 ...

  7. java文字类小游戏2.0版本

    java文字类小游戏 用javaFx面板显示文字类小游戏,目前正已完成基本打斗和打怪爆出武器的开发,后续会不断更新示例图如下: 运行这个类开始代码我已上传至码云,有需要的小伙伴自行拉取代码,git项目 ...

  8. c++小游戏[3.0版本]

    c++小游戏更新3.0啦! 这次更新增加了: 1.高精度乘法 2.转盘游戏 3.抛硬币游戏 之前的作品阅读量过5000的就那一两个...帮我搞点阅读量吧...关注的全部回关... 帮我点点吧... 所 ...

  9. 基于js原生算法+cocos游戏引擎+uni框架Cloud托管网页:开发2048小游戏域名发布版本

    目录 首先看一下效果图 CocosCreator游戏引擎 block绑定: canvas绑定: cocos中创建脚本js以及js原生算法 然后我们先看game.js 背景方法及包含的原生算法代码: 开 ...

最新文章

  1. premiere pr 某个面板悬浮后怎么还原
  2. BZOJ5091摘苹果(概率、期望)
  3. ALV GRID学习笔记----Double Click事件
  4. Windows下VS2013 C++编译测试faster-rcnn
  5. 怎样在设计中添加FIFO宏模块
  6. LightOJ - 1422 (区间DP)
  7. 国内程序员加班严重!听听外国网友怎么说。
  8. 你有遇到过最没良心的人吗?
  9. spring boot 开发soap webservice
  10. java宠物实训报告,基于Java的宠物用品商城的设计与实现-开题报告
  11. vue-router路由的使用
  12. windows 7系统安装与配置Tomcat服务器环境
  13. 【Hadoop学习】Super用户以其他用户的名义执行操作
  14. C语言99乘法表,求指点
  15. 2021年UI设计风格新风向新趋势,赶紧收藏!
  16. 沪深股票接口如何获取所有股票代码?
  17. 六安构建智慧城市节水管理平台
  18. java设计模式(13-19节)
  19. Pandas基础-利用python进行数据分析
  20. android开发关机代码,android代码实现关机

热门文章

  1. 那些你气到笑出声的评论---键盘xia进化
  2. 研发转至FAE(现场应用工程师),是否远离技术了?有前途吗?
  3. 【转】FAE及其发展前景
  4. [转]美国最大婚恋交友网站eHarmony的机器学习实践
  5. 使用 apktool 对apk 签名
  6. WPF 用 AvalonEdit 开发简单的代码编辑器 支持高亮自动提示
  7. 使用 rtk-query 优化你的数据请求
  8. 乘WEB 2.0漫游虚拟太空
  9. SQL学习笔记(基础部分)
  10. Android自定义控件进阶13-MotionEvent详解