C++版iwanna1

news/2024/10/9 14:27:07/
icle class="baidu_pl">
icle_content" class="article_content clearfix">

第一篇目录

  • 开头
  • 程序
    • Game.cpp源文件
    • Player.h头文件
    • Player.cpp源文件
    • trigger.h头文件
    • trigger.cpp源文件
    • Cmp.h头文件
    • Cmp.cpp源文件

开头

大家好,我叫这是我58。

程序

Game.cpp源文件

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <cstring>
#include <fstream>
#include <cstdio>
#include "Player.h"
#include "trigger.h"
using namespace std;
void deadset(int (*deadarr)[3], fstream& fs) {int i = 0;for (; i < 3; i++) {fs >> (*deadarr)[i];fs.flush();}
}
void printstart() {cout << "*****    * * *   ***   *   *  *   *   ***      ***    ***     *****   ***     *****  *   *  *****   \033[32;1m* *  ***    * *\033[0m" << endl;cout << "  *      * * *  *   *  **  *  **  *  *   *    *      *   *      *    *   *      *    *   *  *     \033[32;1m * *  *      * *\033[0m " << endl;cout << "  *      * * *  *****  * * *  * * *  *****    *  **  *   *      *    *   *      *    *****  *****       \033[32;1m* ***\033[0m      " << endl;cout << "  *       * *   *   *  *  **  *  **  *   *    *   *  *   *      *    *   *      *    *   *  *           \033[32;1m*   *\033[0m      " << endl;cout << "*****     * *   *   *  *   *  *   *  *   *     ***    ***       *     ***       *    *   *  *****        \033[32;1m***\033[0m       " << endl;
}
int main() {system("title I WANNA GO TO THE \"G\"");char strmap[22][22] = {'G',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X','X','X',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*','X','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*','*','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','S',' ','X','X','X','X','X','X','X','X','X','X','X','*','*','*','X','X','X','X','X','X','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ','S','*','*','*','*','*','*','*','*','*',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ','*',' ',' ','X',' ',' ',' ',' ',' ',' ','*','X','*',' ',' ',' ',' ',' ','*',' ',' ',' ',' ','G',' ',' ',' ',' ','X',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ','*',' ',' ',' ',' ','*','*','*','*','*','*','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ','X',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*','*','*','*','*',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X','X',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ','*','*','*','*',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','X',' ',' ',' ','X',' ','*',' ',' ',' ',' ',' ',' ',' ','X','X','*','X','X','X',' ','X','X','X',' ','X','X','X','*','X','X','X','X','X','X',};char strmapr[22][22] = { 0 };memcpy(strmapr, strmap, sizeof strmap);Player p;char ch = 0;int itrap = -1;int ishoot = 0;int ibsv = 0;fstream fs("s.txt", ios::in);fs.flush();if ((!fs.is_open()) || fs.eof()) {fs.close();fs.open("s.txt", ios::out);fs << "0 0 0 0";fs.close();fs.open("s.txt", ios::in);}bool barr[3] = { 0 };fs >> ibsv;for (ch = 0; ch < 3; ch++) {barr[ch] = (ibsv & (1 << ch));}trigger t[22] = { trigger(20,3,20,3,0), trigger(16,5,16,6,1),trigger(19,12,20,12,2),trigger(17,13,17,13,3),trigger(17,15,17,16,3),trigger(14,14,14,15,3),trigger(13,16,13,17,3),trigger(15,18,15,19,3),trigger(11,20,11,21,4),trigger(0,16,9,16,6),trigger(8,11,9,13,7),trigger(4,5,7,9,8),trigger(9,6,9,8,9),trigger(3,1,3,3,10),trigger(11,1,11,1,11),trigger(11,3,11,3,12),trigger(13,1,14,1,13),trigger(13,7,15,8,14),trigger(15,11,17,11,15),trigger(16,12,17,12,16),trigger(21,13,21,13,17),trigger(11,8,11,8,18) };printstart();cout << endl << endl << endl << endl << endl << endl << endl << "\t\t\t\t\t  ";system("pause");system("cls");printstart();cout << endl << "              \033[31;1m********\033[0m                          \033[33m********\033[0m                              \033[32;1m********\033[0m" << endl;cout << "             \033[31;1m* SAVE 1 *\033[0m                        \033[33m* SAVE 2 *\033[0m                            \033[32;1m* SAVE 3 *\033[0m" << endl;cout << "              \033[31;1m********\033[0m                          \033[33m********\033[0m                              \033[32;1m********\033[0m" << endl << endl;cout << "游戏内:a左走    d右走    w二段跳,空中一段    z\033[33m存档\033[0m/射弹    r重开    \033[31;1m“X”死\033[0m   “*”墙    \033[31;1m“#”按钮\033[0m,\033[32;1m射就触发机关\033[0m    \033[33m“S”存档\033[0m    \033[32;1m“G”终点\033[0m" << endl <<  "开始界面:1~3选择要玩的存档    d删存档" << endl << endl << endl;cin >> ch;int deadarr[3] = { 0 };deadset(&deadarr, fs);while (ch < '1' || ch > '3') {while (rewind(stdin), (ch < '1' || ch > '3') && 'd' != ch) {cout << "\033[31;1m输入错误,请重新输入\033[0m" << endl << endl;cin >> ch;if (ch >= '1' && ch <= '3') {goto g;}}cout << "\033[31;1m请输入要删除的存档编号(输入错误就不删除存档)\033[0m" << endl << endl;cin >> ch;if (rewind(stdin), ch < '1' || ch > '3') {cout << "\033[31;1m输入错误,不删除存档\033[0m" << endl << endl;cin >> ch;continue;}int index = ch - 1 - '0';(ibsv & (1 << index)) && (ibsv -= (1 << index));barr[index] = 0;fs.close();fs.open("s.txt", ios::trunc | ios::out);deadarr[index] = 0;fs << ibsv;for (int i = 0; i < 3; i++) {fs << " " << deadarr[i];}fs.flush();cout << "\033[32m删除成功!\033[0m" << endl << endl;cin >> ch;}g:int barri = (--ch -= '0');system("cls");char* cp = (t[0].saveset(barr[barri]) ? &strmap[9][20] : &strmap[21][0]);*cp = 'P';fs << (char)(ibsv + '0');fs.close();while ('G' == strmap[0][0]) {char str[100] = "title I WANNA GO TO THE \"G\" : 似亡 * ";char stra[100] = "";sprintf(stra, "%d", deadarr[barri]);strcat(str, stra);system(str);' ' == strmap[9][20] && (strmap[9][20] = 'S');' ' == strmap[11][21] && (strmap[11][21] = 'S');p.sgetxy(X) = (cp - &strmap[0][0]) / 22;p.sgetxy(Y) = (cp - &strmap[0][0]) % 22;p.printmap(strmap);cin >> ch;rewind(stdin);*cp = ' ';switch (ch) {case 'a':p.left_move(&cp);break;case 'd':p.right_move(&cp);break;case 'w':p.Djump(&cp);break;case 'z':p.shoot(ishoot, &cp);break;case 'r':p.reset(&cp, &strmap, &strmapr, &t, deadarr[barri]);break;default:break;}for (int i = 0; i < 22; i++) {t[i].check(p.sgetxy(X), p.sgetxy(Y), &strmap, &strmapr, p, itrap, &cp, ch, &t, deadarr[barri]);}itrap > 0 && itrap--, !itrap && (strmap[14][5] = ' ', strmap[15][5] = 'X');p.upOrDown(&cp);p.shootmove(&strmap, barri, ibsv);p.rejump(&cp);if ('X' == *cp) {p.gameover(&cp, &strmap, &strmapr, &t, deadarr[barri]);}*cp = 'P';ishoot > 0 && ishoot--;system("cls");fs.open("s.txt", ios::trunc | ios::out);fs << (char)(ibsv + '0');for (int i = 0; i < 3; i++) {sprintf(str, "%d", deadarr[i]);fs << " " << str;}fs.close();}system("color 0A");cout << "恭喜你,你赢了,似了" << deadarr[barri] << "次" << endl;fs.close();return 0;
}

Player.h头文件

#pragma once
#include <iostream>
#include <vector>
#include "trigger.h"
using namespace std;
#define JUMPHIGH 3
enum XY {X,Y,
};
struct trir {char* cp;bool b;int iy;
};
class Player {
private:int ix;int iy;int ijh;int ij;bool blr;vector<trir> v;
public:friend class trigger;Player();void printmap(const char strmap[22][22]);void Djump(char** cpp);void left_move(char** cpp);void right_move(char** cpp);int& sgetxy(XY xymode);void upOrDown(char** cpp);void gameover(char** cpp, char(*strmap)[22][22], const char(*strmapr)[22][22], trigger(*tarr)[22], int& idead);void reset(char** cpp, char(*strmap)[22][22], const char(*strmapr)[22][22], trigger(*tarr)[22], int& idead);void rejump(char** cp);void shoot(int& i, char** cpp);void shootmove(const char (*strmap)[22][22], int barri, int& ibsv);
};

Player.cpp源文件

#include <iostream>
#include <algorithm>
#include <cstring>
#include <fstream>
#include "trigger.h"
#include "Player.h"
#include "Cmp.h"
using namespace std;
Player::Player(){ij = 2;ijh = 0;blr = 1;
}
bool MSB = false;
bool MSBa = false;
bool MSBb = false;
bool MSBc = false;
bool MSv = false;
void Player::printmap(const char strmap[22][22]) {int i = 0;int ia = 0;for (; i < 22; i++) {for (ia = 0; ia < 22; ia++) {cout << "\033[" << ('G' == strmap[i][ia] ? "32;1m" : 'X' == strmap[i][ia] ? "31;1m" : '#' == strmap[i][ia] ? trigger::MSB ? "32;1m" : "31;1m" : 'S' == strmap[i][ia] ? ((!trigger::MSv) || 21 == ia) ? "33m" : "33;1m" : '@' == strmap[i][ia] ? "33m" : "0m") << strmap[i][ia] << "\033[0m";}cout << "|" << endl;}cout << "----------------------@" << endl;
}
void Player::Djump(char** cpp) {switch (ij) {case 2:((21 == ix || '*' == (*cpp)[22] || '#' == (*cpp)[22]) && (ij = 1, ijh = JUMPHIGH), (21 != ix && '*' != (*cpp)[22] && '#' != (*cpp)[22]) && (ij = 0, ijh = JUMPHIGH));break;case 1:((21 == ix || '*' == (*cpp)[22] || '#' == (*cpp)[22]) && (ij = 2), (21 != ix && '*' != (*cpp)[22] && '#' != (*cpp)[22]) && (ij = 0, ijh = JUMPHIGH));break;default:rejump(cpp);((21 == ix || '*' == (*cpp)[22] || '#' == (*cpp)[22]) && (ij = 1, ijh = JUMPHIGH), (21 != ix && '*' != (*cpp)[22] && '#' != (*cpp)[22]) && (ij = 0));break;}
}
void Player::left_move(char** cpp) {(iy && '*' != *(*cpp - 1) && '#' != *(*cpp - 1) && ((*cpp)--));blr = false;
}
void Player::right_move(char** cpp) {21 != iy && '*' != *(*cpp + 1) && '#' != *(*cpp + 1) && ((*cpp)++);blr = true;
}
int& Player::sgetxy(XY xymode) {return xymode ? iy : ix;
}
void Player::upOrDown(char** cpp) {if (ijh > 0 && ix && '*' != (*cpp)[-22] && '#' != (*cpp)[-22]) {ijh--, *cpp -= 22;}else if ('*' != (*cpp)[22] && '#' != (*cpp)[22] && (!ix || '*' == (*cpp)[-22] || '#' == (*cpp)[-22])) {ijh = 0, *cpp += 22;}else if ('*' != (*cpp)[22] && '#' != (*cpp)[22] && 21 != ix) {*cpp += 22;}
}
void Player::gameover(char** cpp, char (*strmap)[22][22], const char (*strmapr)[22][22], trigger(*tarr)[22], int& idead) {char ch = 0;system("cls");' ' == (*strmap)[9][20] && ((*strmap)[9][20] = 'S');printmap(*strmap);cout << "\033[31;1m游戏结束 请按r键重新开始\033[0m" << endl;while (ch - 'r') {cin >> ch;rewind(stdin);system("cls");if (ch - 'r') {printmap(*strmap);cout << "\033[31;1m游戏结束 请按r键重新开始\033[0m" << endl;}}reset(cpp, strmap, strmapr, tarr, idead);
}
void Player::reset(char** cpp, char(*strmap)[22][22], const char(*strmapr)[22][22], trigger(*tarr)[22], int& idead) {idead++;trigger::MSv && (*cpp = &((*strmap)[9][20]), ix = 9, iy = 20), trigger::MSv || (*cpp = &((*strmap)[21][0]), ix = 21, iy = 0);trigger::MSB = false;MSBa = false;MSBb = false;MSBc = false;blr = true;int i = 0;memcpy(*strmap, *strmapr, sizeof(*strmapr));for (; i < 22; i++) {(*tarr)[i].MBt = false;}v.clear();rejump(cpp);
}
void Player::rejump(char** cpp) {(21 == ix || '*' == (*cpp)[22]) && (ij = 2);
}
void Player::shoot(int& i, char** cpp) {if ((!i) && (iy && blr || 21 != iy && (!blr))) {v.push_back({*cpp, blr, iy});i = 3;}
}
void Player::shootmove(const char(*strmap)[22][22], int barri, int& ibsv) {for (vector<trir>::iterator it = v.begin();v.end()!=it;it++) {(' ' == *it->cp || '@' == *it->cp) && (*it->cp = ' ');'#' == *it->cp && (trigger::MSB = true);if (&((*strmap)[9][20]) == it->cp) {trigger::MSv = true;(!(ibsv & (1 << barri))) && (ibsv += (1 << barri));}if ('*' == *it->cp || '#' == *it->cp || (!it->iy && (!it->b)) || (21 == it->iy && it->b)) {it->iy = -1;}if (0 <= it->iy) {it->cp -= (1 - it->b * 2);it->iy -= (1 - it->b * 2);(' ' == *it->cp || '@' == *it->cp) && (*it->cp = '@');}}sort(v.begin(), v.end(), cmp());while ((!v.empty()) && 0 > v.begin()->iy) {v.erase(v.begin());}
}

trigger.h头文件

#pragma once
#include <iostream>
#include "Player.h"
using namespace std;
class trigger {
private:int MISX;int MISY;int MIEX;int MIEY;int Mtrig;bool MBt;static bool MSB;static bool MSBa;static bool MSBb;static bool MSBc;static bool MSv;
public:friend class Player;trigger(int istartx, int istarty, int iendx, int iendy, int trig) :MISY(istarty), MIEX(iendx), MIEY(iendy), MISX(istartx), Mtrig(trig), MBt(false) {}void check(int ix, int iy, char(*strmap)[22][22], const char(*strmapr)[22][22], Player& p, int& ii, char** cpp, char ch, trigger(*tarr)[22], int& idead);bool saveset(bool b);
};

trigger.cpp源文件

#include <iostream>
#include "trigger.h"
#include <string>
#include "Player.h"
using namespace std;
bool trigger::MSB = false;
bool trigger::MSBa = false;
bool trigger::MSBb = false;
bool trigger::MSBc = false;
bool trigger::MSv = false;
void trigger::check(int ix, int iy, char (*strmap)[22][22], const char (*strmapr)[22][22],Player& p, int& ii, char** cpp, char ch, trigger(*tarr)[22], int& idead) {int i = 0;if (MISX <= ix && ix <= MIEX && MISY <= iy && iy <= MIEY && (Mtrig - 4 && Mtrig - 8 && Mtrig - 16 && Mtrig - 18 ? (!MBt) : 1)) {switch (MBt = true, Mtrig) {case 0:(*strmap)[21][3] = 'X';p.gameover(cpp, strmap, strmapr, tarr, idead);break;case 1:for (i = 16; i < 21; i++) {(*strmap)[i][6] = 'X';}break;case 2:for (i = 18; i < 22; i++) {if ('X' == (*strmap)[i][13]) {(*strmap)[i][13] = ' ';}else {(*strmap)[i][13] = 'X';}}break;case 3:for (i = MISX; i <= MIEX; i++) {for (int ia = MISY; ia <= MIEY; ia++) {(*strmap)[i][ia] = 'X';}}p.gameover(cpp, strmap, strmapr, tarr, idead);break;case 4:if ('z' == ch) { (*strmap)[13][19] = 'L';(*strmap)[13][20] = 'O';(*strmap)[13][21] = 'L';p.gameover(cpp, strmap, strmapr, tarr, idead);}break;case 6:if (!MSB) {for (i = 0; i < 10; i++) {(*strmap)[i][15] = 'X';}}break;case 7:for (i = 8; i < 10; i++) {(*strmap)[i][10] = '*';(*strmap)[i][14] = '*';}for (; i < 15; i++) {(*strmap)[7][i] = '*';}break;case 8:((!MSBa) && '*' == (*cpp)[22]) && ((*cpp)[22] = 'X');break;case 9:MSBa = true;for (i = 6; i < 9; i++) {(*strmap)[10][i] = '*';}break;case 10:for (i = 1; i < 4; i++) {(*strmap)[4][i] = '*';}break;case 11:{ string str = "LOL LOL"; char* cpa = &((*strmap)[11][2]);char* cpb = &(str[0]);for (i = 0; i < 7; i++, cpa++, cpb++) {*cpa = *cpb;}MSBb = true;}break;case 12:(*strmap)[11][0] = 'G';(*strmap)[14][0] = ' ';break;case 13:(*strmap)[11][0] = 'G';(*strmap)[13][0] = ' ';(*strmap)[13][5] = 'X';(*strmap)[13][2] = ' ';(*strmap)[15][5] = '*';for (i = 16; i < 21; i++) {(*strmap)[i][0] = 'L';(*strmap)[i][1] = 'O';(*strmap)[i][2] = 'L';}break;case 14:ii = 10;break;case 15:MSBc = true;for (i = 10; i < 13; i++) {(*strmap)[14][i] = 'X';}(*strmap)[13][10] = '*';for (i = 0; i < 11; i++) {(*strmap)[10][i] = '*';}if (*cpp == &((*strmap)[14][12])) {p.gameover(cpp, strmap, strmapr, tarr, idead);}break;case 16:if (MSBc) {(*strmap)[14][10] = ' ';(*strmap)[14][11] = ' ';'*' == (*cpp)[22] && ((*cpp)[22] = 'X');}break;case 17:(*strmap)[21][13] = 'X';break;case 18:if (MSBb) {*cpp = &((*strmap)[11][7]);(*strmap)[11][8] = '*';MSBb = false;}break;default:break;}}
}
bool trigger::saveset(bool b) {MSv = b;return MSv;
}

Cmp.h头文件

#pragma once
#include <iostream>
#include <vector>
#include "Player.h"
using namespace std;
class cmp {
public:bool operator()(trir t, trir ta);
};

Cmp.cpp源文件

#include <iostream>
#include <vector>
#include "Cmp.h"
#include "Player.h"
using namespace std;
bool cmp::operator()(trir t, trir ta) {return t.iy < ta.iy;
}

C++版iwanna2


http://www.ppmy.cn/news/1536145.html

相关文章

VBA数据库解决方案第十五讲:Recordset集合中单个数据的精确处理

《VBA数据库解决方案》教程&#xff08;版权10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

C(十一)scanf、getchar(第三弹)

问题引入&#xff1a;如何实现输入一串密码&#xff0c;如&#xff1a;“123 xxxx” &#xff0c;然后读取并确认&#xff0c;是 -- Y&#xff1b;否 -- N。 自然的&#xff0c;我们想到用scanf&#xff0c;但是在使用过程中你是否遇到跟我一样的困惑呢&#xff1f;如下&…

Qt_QSS介绍与使用

目录 1、QSS的语法介绍 2、QSS的基本使用 3、QSS的全局设置 4、样式的叠加特性 5、样式的优先级 6、使用Qt Designer设置样式 7、选择器种类介绍 7.1 类选择器 7.2 ID选择器 7.3 并集选择器 8、子控件选择器 9、伪类选择器 10、盒子模型 10.1 设置边框和内…

汽车生产四大工厂简单介绍

一、冲压工厂 这一工艺通过压力机和模具对板材施加外力&#xff0c;使之产生塑性变形或分离&#xff0c;从而获得所需形状和尺寸的工件。 二、焊接工厂 将各个冲压成型的部件通过加热或加压的方式连接在一起&#xff0c;形成白车身。焊接技术直接影响着汽车的使用性能&#…

28 基于51单片机的两路电压检测(ADC0808)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;通过ADC0808获取两路电压&#xff0c;通过LCD1602显示 二、硬件资源 基于KEIL5编写C代码&#xff0c;PROTEUS8.15进行仿真&#xff0c;全部资源在页尾&#xff0c;提供…

计算机毕业设计 基于深度学习的短视频内容理解与推荐系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

软件设计师(软考学习)

数据库技术 数据库基础知识 1. 数据库中的简单属性、多值属性、复合属性、派生属性简单属性&#xff1a;指不能够再分解成更小部分的属性&#xff0c;通常是数据表中的一个列。例如学生表中的“学号”、“姓名”等均为简单属性。 多值属性&#xff1a;指一个属性可以有多个值…

前端的全栈混合之路Meteor篇(二):RPC方法注册及调用

在Meteor 3.0中&#xff0c;RPC&#xff08;远程过程调用&#xff09;机制是实现前后端数据交互的重要特性。通过RPC&#xff0c;前端可以轻松调用后端方法&#xff08;Methods&#xff09;并获取数据&#xff0c;而后端的逻辑也可以同步或异步执行并返回结果。本文将详细介绍M…