《Matchman Fight》

我的第一个格斗游戏,自我感觉还不错,以后会改进。

#include <iostream>
#include <cstdio>
#include <conio.h>
#include <windows.h>
#include <time.h>
#include <stdlib.h>

using namespace std;

int sumPlayer = 0;
int sumEnemy = 75;
int hpPlayer = 100;
int hpEnemy = 100;
bool programIsRunning = true;

char player[5][5];
char enemy[5][5];

char playerDefault[5][5] =
{
    {' ', ' ', 'O', ' ', ' '},
    {' ', '/','|', '\\', '_'},
    {' ', '\\', '|', ' ', ' '},
    {' ', '/', ' ', '\\', ' '},
    {'/', ' ', ' ', ' ', '\\'}
};

char playerHandAttack[5][5] =
{
    {' ', ' ', 'O', '_', '_'},
    {' ', '/', '|', ' ', ' '},
    {' ', '\\', '|', ' ', ' '},
    {' ', '/', ' ', '\\', ' '},
    {'/', ' ', ' ', ' ', '\\'}
};

char playerFootAttack[5][5] =
{
    {' ', ' ', ' ', ' ', ' '},
    {'O', '_', '_', ' ', '/'},
    {'/', '\\', ' ', '/', ' '},
    {'\\', ' ', '|', ' ', ' '},
    {' ', ' ', '|', ' ', ' '}
};

char playerDie[5][5] = 
{
    {' ', ' ', '/', ' ', ' '},
    {'O', '/', '_', '_', ' '},
    {' ', '\\', ' ', ' ', '/'},
    {' ', ' ', '\\', '/', ' '},
    {' ', ' ', ' ', '\\', '_'}
};

char enemyDefault[5][5] =
{
    {' ', ' ', 'O', ' ', ' '},
    {'_', '/', '|', '\\', ' '},
    {' ', ' ', '|', '/', ' '},
    {' ', '/', ' ', '\\', ' '},
    {'/', ' ', ' ', ' ', '\\'}
};

char enemyHandAttack[5][5] =
{
    {'_', '_', 'O', ' ', ' '},
    {' ', ' ', '|', '\\', ' '},
    {' ', ' ', '|', '/', ' '},
    {' ', '/', ' ', '\\', ' '},
    {'/', ' ', ' ', ' ', '\\'}
};

char enemyFootAttack[5][5] =
{
    {' ', ' ', ' ', ' ', ' '},
    {'\\', ' ', '_', '_', 'O'},
    {' ', '\\', ' ', '/', '\\'},
    {' ', ' ', '|', ' ', '/'},
    {' ', ' ', '|', ' ', ' '}
};

char enemyDie[5][5] =
{
    {' ', ' ', '\\', ' ', ' '},
    {' ', '_', '_', '\\', 'O'},
    {'\\', ' ', ' ', '/', ' '},
    {' ', '\\', '/', ' ', ' '},
    {'_', '/', ' ', ' ', ' '}
};

void PlayerControl();
void EnemyControl();
void Show();
void SetColor(int);

int suiJi();

int main(int argc, char const *argv[])
{
    for (int i=0; i<5; i++)
    {
        for (int j=0; j<5; j++)
        {
            player[i][j] = playerDefault[i][j];
        }
    }
    for (int i=0; i<5; i++)
    {
        for (int j=0; j<5; j++)
        {
            enemy[i][j] = enemyDefault[i][j];
        }
    }
    while (programIsRunning)
    {
        Show();
        PlayerControl();
        if (programIsRunning) EnemyControl();
    }
    Show();
    if (hpPlayer > 0 and hpEnemy == 0)
    {
        SetColor(11);
        for (int i=1; i<=39; i++) cout << ' ';
        cout << "win" << endl;
        SetColor(7);
    }
    else if (hpPlayer == 0)
    {
        SetColor(12);
        for (int i=1; i<=39; i++) cout << ' ';
        cout << "lose" << endl;
        SetColor(7);
    }
    getch();
    cout << "Press any key to continue...";
    getch();
    return 0;
}

void PlayerControl()
{
    while (kbhit())
    {
        char ch = getch();
        if (ch == 'a')
        {
            if (sumPlayer > 0)
            {
                sumPlayer--;
            }

        }
        else if (ch == 'd')
        {
            if (sumPlayer < sumEnemy-5)
            {
                sumPlayer++;
            }

        }
        else if (ch == 'j')
        {
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    player[i][j] = playerHandAttack[i][j];
                }
            }
            Show();
            if (sumEnemy == sumPlayer+5)
            {
                hpEnemy -= 10;
                if (hpEnemy <= 0)
                {
                    hpEnemy = 0;
                    for (int i=0; i<5; i++)
                    {
                        for (int j=0; j<5; j++)
                        {
                            enemy[i][j] = enemyDie[i][j];
                        }
                    }
                    programIsRunning = false;
                }
            }
            Show();
            Show();
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    player[i][j] = playerDefault[i][j];
                }
            }
        }
        else if (ch == 'i')
        {
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    player[i][j] = playerFootAttack[i][j];
                }
            }
            Show();
            if (sumEnemy == sumPlayer+5)
            {
                hpEnemy -= 20;
                if (sumEnemy <= 75-10)
                {
                    sumEnemy += 10;
                }
                if (hpEnemy <= 0)
                {
                    hpEnemy = 0;
                    for (int i=0; i<5; i++)
                    {
                        for (int j=0; j<5; j++)
                        {
                            enemy[i][j] = enemyDie[i][j];
                        }
                    }
                    programIsRunning = false;
                }
            }
            Show();
            Show();
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    player[i][j] = playerDefault[i][j];
                }
            }
        }
        else if (ch == 'q')
        {
            programIsRunning = false;
        }
    }
}

void EnemyControl()
{
    if (sumEnemy > sumPlayer+5)
    {
        sumEnemy--;
    }
    else
    {
        int sj = suiJi()%2;
        if (sj == 0)
        {
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    enemy[i][j] = enemyHandAttack[i][j];
                }
            }
            Show();
            if (sumEnemy == sumPlayer+5)
            {
                hpPlayer -= 10;
                if (hpPlayer <= 0)
                {
                    hpPlayer = 0;
                    for (int i=0; i<5; i++)
                    {
                        for (int j=0; j<5; j++)
                        {
                            player[i][j] = playerDie[i][j];
                        }
                    }
                    programIsRunning = false;
                }
            }
            Show();
            Show();
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    enemy[i][j] = enemyDefault[i][j];
                }
            }
        }
        else
        {
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    enemy[i][j] = enemyFootAttack[i][j];
                }
            }
            Show();
            if (sumEnemy == sumPlayer+5)
            {
                hpPlayer -= 20;
                if (sumPlayer >= 10)
                {
                    sumPlayer -= 10;
                }
                if (hpPlayer <= 0)
                {
                    hpPlayer = 0;
                    for (int i=0; i<5; i++)
                    {
                        for (int j=0; j<5; j++)
                        {
                            player[i][j] = playerDie[i][j];
                        }
                    }
                    programIsRunning = false;
                }
            }
            Show();
            Show();
            for (int i=0; i<5; i++)
            {
                for (int j=0; j<5; j++)
                {
                    enemy[i][j] = enemyDefault[i][j];
                }
            }
        }
    }
}

void Show()
{
    Sleep(80);
    system("cls");
    for (int i=0; i<5; i++)
    {
        for (int j=1; j<=sumPlayer; j++)
        {
            cout << ' ';
        }
        for (int j=0; j<5; j++)
        {
            cout << player[i][j];
        }
        for (int j=1; j<=sumEnemy-sumPlayer-5; j++)
        {
            cout << ' ';
        }
        for (int j=0; j<5; j++)
        {
            cout << enemy[i][j];
        }
        if (sumEnemy < 75)
        {
            cout << endl;
        }
    }
    cout << "================================================================================";
    SetColor(11);
    cout << "player";
    SetColor(7);
    cout << "|";
    SetColor(10);
    for (int i=1; i<=hpPlayer/10; i++) cout << "###";
    for (int i=1; i<=10-hpPlayer/10; i++) cout << "   ";
    SetColor(7);
    for (int i=1; i<=7; i++) cout << "|";
    SetColor(10);
    for (int i=1; i<=10-hpEnemy/10; i++) cout << "   ";
    for (int i=1; i<=hpEnemy/10; i++) cout << "###";
    SetColor(7);
    cout << "|";
    SetColor(12);
    cout << "enemy";
    SetColor(7);
    cout << "--------------------------------------------------------------------------------";
    cout << "Press a, d to move, press j, i to attack." << endl;
}

void SetColor(int a)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), a);
}

int suiJi()
{
    srand(time(0));
    return rand();
}
全部评论

相关推荐

就前几天旅游的时候,打开抖音就经常刷到这类视频:以前是高学历学生、老师、主持人,现在做着团播、擦边主播的工作,以及那些经过精心包装的“职业转型”故事——从铺天盖地的VLOG到所谓的“04年夜场工作日记”,这些内容在初中升学、高考放榜等关键时间节点持续发酵。可以说非常直接且精准地在潜移默化地影响着心智尚未成熟的青少年,使其对特殊行业逐渐脱敏。那我就想问了:某些传播公司、平台运营者甚至某些夜场的老板,你们究竟在传递怎样的价值观?点开那些视频,评论区里也是呈现明显的两极分化:一种是​​经济下行论​​:“现在就业市场已经艰难到这种程度了吗?”​​一种是事实反驳派​​:这些创作者往往拥有名校背景,从事着...
牛客刘北:被环境教育的,为了能拿到足够的钱养活自己,不甘心也得甘心,现在的短视频传播的思想的确很扭曲,但是很明显,互联网玩上一年你就能全款提A6,但你全心全意不吃不喝工作一年未必能提A6,但是在高考中考出现这个的确很扭曲,在向大家传播“不上学,玩互联网也可以轻松年入百万”,不是人变了,是社会在变
预测一下26届秋招形势
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务