c++ 打怪升级

内联函数

调用时,直接会把代码拷贝到调用处;

函数指针

可以类比数组



//内联函数  调用时直接将代码拷贝过来
inline const string& longerStr(const string &s1,const string & s2){
	
	return s1.size()>s2.size() ? s1:s2;
}

int main(int argc, char** argv) {
string s1 = "zhoudage";
string s2 = "zhou        nihao";
cout<<"longer:"<<longerStr(s1,s2);
//cin.get();

//函数指针
const string& (*fp)(const string&,const string&) = nullptr;

//根数组比较类似
fp = &longerStr;

//解引用  也可以直接用
cout<<(*fp)("zhou","dagehao")<<endl;
cout<<fp("zhou","dagehao")<<endl;


return 0;
}

好的,这里是一个简单的带图形界面的打怪升级游戏的示例代码: ``` #include <graphics.h> #include <conio.h> #include <stdlib.h> #include <time.h> int main() { initgraph(640, 480); // 初始化图形界面,大小为640x480像素 setbkcolor(WHITE); // 设置背景颜色为白色 cleardevice(); // 清屏 // 加载图片 IMAGE player, enemy, background; loadimage(&player, "player.jpg", 100, 100); loadimage(&enemy, "enemy.jpg", 100, 100); loadimage(&background, "background.jpg", 640, 480); // 初始化游戏参数 srand(time(NULL)); int player_health = 100; int player_attack = 10; int enemy_health = 50; int enemy_attack = 5; int experience = 0; int level = 1; while (player_health > 0) { // 绘制背景和角色 putimage(0, 0, &background); putimage(100, 300, &player); putimage(400, 300, &enemy); // 绘制文字 settextcolor(BLACK); settextstyle(20, 0, "宋体"); char player_health_str[50], player_attack_str[50], experience_str[50], level_str[50]; sprintf(player_health_str, "你的血量:%d", player_health); sprintf(player_attack_str, "你的攻击力:%d", player_attack); sprintf(experience_str, "当前经验值:%d", experience); sprintf(level_str, "当前等级:%d", level); outtextxy(10, 10, player_health_str); outtextxy(10, 50, player_attack_str); outtextxy(10, 90, experience_str); outtextxy(10, 130, level_str); // 开始战斗 while (enemy_health > 0) { if (kbhit()) { // 按下空格键攻击 char key = getch(); if (key == ' ') { int player_damage = rand() % player_attack + 1; enemy_health -= player_damage; settextcolor(RED); outtextxy(400, 260, "你攻击了敌人!"); Sleep(500); settextcolor(BLACK); outtextxy(400, 260, "你攻击了敌人!"); char player_damage_str[50]; sprintf(player_damage_str, "造成了%d点伤害。", player_damage); outtextxy(400, 300, player_damage_str); Sleep(500); clearrectangle(400, 260, 640, 320); clearrectangle(400, 300, 640, 320); } } if (enemy_health > 0) { // 敌人攻击 int enemy_damage = rand() % enemy_attack + 1; player_health -= enemy_damage; settextcolor(RED); outtextxy(100, 260, "敌人攻击了你!"); Sleep(500); settextcolor(BLACK); outtextxy(100, 260, "敌人攻击了你!"); char enemy_damage_str[50]; sprintf(enemy_damage_str, "造成了%d点伤害。", enemy_damage); outtextxy(100, 300, enemy_damage_str); Sleep(500); clearrectangle(100, 260, 400, 320); clearrectangle(100, 300, 400, 320); } if (player_health <= 0) { // 玩家死亡 settextcolor(RED); outtextxy(100, 200, "你被敌人打败了,游戏结束。"); Sleep(2000); cleardevice(); return 0; } } // 玩家胜利 experience += rand() % 10 + 1; if (experience >= level * 10) { level++; player_attack += 5; settextcolor(GREEN); outtextxy(10, 170, "恭喜你升到了新的等级!"); Sleep(2000); clearrectangle(10, 170, 640, 200); } enemy_health = 50; settextcolor(GREEN); outtextxy(400, 260, "你打败了敌人!"); Sleep(1000); clearrectangle(400, 260, 640, 320); clearrectangle(400, 300, 640, 400); } return 0; } ``` 这个示例代码实现了一个简单的带图形界面的打怪升级游戏,玩家需要通过战斗来获取经验值,提升等级和攻击力,最终打败敌人。这个示例代码只是一个简单的实现,可以根据具体需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值