C++编写的简易宝可梦对战小游戏

最近想到了用C++写个小时候课间嘴上玩的那种宝可梦游戏,先试写了个demo,只有早期的三个宝可梦和基础招式,感兴趣的朋友可以再自己添加,也没有各种物防特攻数值啥的,等以后会搞图形化界面了再做个复杂的,功能完善的。

玩法就是选择宝可梦和电脑对战,除了攻击还有三次防御的机会,可以完全抵消对面这轮的攻击,增加了一点博弈的感觉(其实和电脑也没啥好博弈的)

上代码

#include<iostream>
#include<windows.h>
#include<ctime>
enum Type {normal,fire,grass,water};//定义招式与pokemon属性
struct Atk//招式结构体
{
    char name[20];//招式名
    int damage;//伤害
    Type type;//属性
    int speed;//招式速度
    int pp; //招式技能点数量
};
Atk def{"def",0,normal,10,3};//防御
struct pokemon//pokemon结构体
{
    char name[30];//名
    int hp;//初始血量
    int speed;//pokemon本身速度
    Type type;//属性
    Atk atk1;//招式1到4
    Atk atk2;
    Atk atk3;
    Atk atk4;
    int def;//防御点数
};
void initial();
int choose(int);
int AIchoose(int);
int p_choose(int,pokemon);
int AI_choose(int,pokemon);
void duel(pokemon p_pokemon,pokemon AI_pokemmon);
double damage_coeff(Type type1,Type type2);

int main()
{
    using namespace std;
    int cont=1;//设定循环游戏的flag
    while(cont==1)
    {
        system("cls");//新游戏开始时清屏
        //初始化各个招式与pokemon
        Atk watergun{"water gun",40,water,2,2};//水枪
        Atk quickattack{"quick attack",40,normal,5,3};//电光石火
        Atk scratch{"scratch",40,normal,2,8};//抓
        Atk bubblebeam{"bubble beam",65,water,1,1};//泡沫光线
        Atk razorleaf{"razor leaf",55,grass,3,1};//飞叶快刀
        Atk vinewhip{"vine whip",35,grass,4,2};//藤鞭
        Atk tackle{"tackle",35,normal,2,10};//撞击
        Atk ember{"ember",40,fire,2,1};//火苗
        Atk firespin{"fire spin",35,fire,4,2};//火焰旋涡
        pokemon bulbasaur{"bulbasaur",200,3,grass,tackle,quickattack,vinewhip,razorleaf,3};//妙蛙种子
        pokemon charmander{"charmander",200,2,fire,scratch,quickattack,ember,firespin,3};//小火龙
        pokemon squirtle{"squirtle",200,1,water,tackle,quickattack,watergun,bubblebeam,3};//杰尼龟
        initial();
        pokemon p_pokemon;
        pokemon AI_pokemon;
        int Num1,Num2;
        Num1=choose(Num1);
        Num2=AIchoose(Num2);
        //确定双方选择的pokemon
        switch(Num1)
        {
            case 1:
                p_pokemon=bulbasaur;
                break;
            case 2:
                p_pokemon=charmander;
                break;
            case 3:
                p_pokemon=squirtle;
                break;
        }
        switch(Num2)
        {
            case 0:
                AI_pokemon=bulbasaur;
                break;
            case 1:
                AI_pokemon=charmander;
                break;
            case 2:
                AI_pokemon=squirtle;
                break;
        }
        system("cls");
        Sleep(500);
        cout <<"You choose "<<p_pokemon.name<<"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值