枪战改编版

#include <bits/stdc++.h>

#include <conio.h>

#include <windows.h>



using namespace std;



int jump[20] = {0, -1, -1, -1, -1};



char mmp[21][42] = {"\nO    #                            #    @",

                    "\n##                                    ##",

                    "\n     ###                        ###     ",

                    "\n         #                    #         ",

                    "\n####     #                    #     ####",

                    "\n         #                    #         ",

                    "\n    ################################    ",

                    "\n                                        ",

                    "\n                                        ",

                    "\n############                ############",

                    "\n                                        ",

                    "\n                                        ",

                    "\n          ######        ######          ",

                    "\n                                        ",

                    "\n                                        ",

                    "\n            ################            ",

                    "\n                                        ",

                    "\n########                        ########",

                    "\n            ######    ######            ",

                    "\n                                        "

                   };



int main() {



    int xp1 = 0, yp1 = 1, xp2 = 0, yp2 = 40, tick = 0;

    char ch;

    int score1 = 0, score2 = 0, jumpdelay1 = 0, jumpdelay2 = 0;



    while (1) {



        Sleep(40);

        HANDLE hout;

        COORD coord;

        coord.X=0;

        coord.Y=0;

        hout=GetStdHandle(STD_OUTPUT_HANDLE);

        SetConsoleCursorPosition(hout,coord);

        fwrite(mmp, 1, 20 * 40, stdout);

        printf("\nscore: 1:%d  2:%d", score1, score2);



        if (jumpdelay1 > 0) {



            if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == ' ') {



                mmp[xp1][yp1] = ' ';

                xp1 += jump[jumpdelay1];

                mmp[xp1][yp1] = 'O';



            }

            if (xp1 + jump[jumpdelay1] > 0 && (mmp[xp1 + jump[jumpdelay1]][yp1] == '<' || mmp[xp1 + jump[jumpdelay1]][yp1] == '>')) {



                mmp[xp1][yp1] = ' ';

                xp1 = 0, yp1 = 1;

                mmp[xp1][yp1] = 'O';

                score2++;



            }

            if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == '#') {



                jumpdelay1 = 1;



            }

            if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == '@') {



                jumpdelay1 = 1;



            }

            jumpdelay1--;



        } else {



            if (xp1 == 19) {



                mmp[xp1][yp1] = ' ';

                xp1 = 0, yp1 = 1;

                mmp[xp1][yp1] = 'O';

                score2++;



            } else {



                if (mmp[xp1 + 1][yp1] == ' ') {



                    mmp[xp1][yp1] = ' ';

                    xp1++;

                    mmp[xp1][yp1] = 'O';



                }

                if (mmp[xp1 + 1][yp1] == '<' || mmp[xp1 + 1][yp1] == '>') {



                    mmp[xp1][yp1] = ' ';

                    xp1 = 0, yp1 = 1;

                    mmp[xp1][yp1] = 'O';

                    score2++;



                }



            }



        }

        if (jumpdelay2 > 0) {



            if (xp2 + jump[jumpdelay2] > 0 && mmp[xp2 + jump[jumpdelay2]][yp2] == ' ') {



                mmp[xp2][yp2] = ' ';

                xp2 += jump[jumpdelay2];

                mmp[xp2][yp2] = '@';



            }

            if (xp2 + jump[jumpdelay2] >=0 && (mmp[xp2 + jump[jumpdelay2]][yp2] == '<' || mmp[xp2 + jump[jumpdelay2]][yp2] == '>')) {



                mmp[xp2][yp2] = ' ';

                xp2 = 0, yp2 = 40;

                mmp[xp2][yp2] = '@';

                score1++;



            }

            if (xp2 + jump[jumpdelay2] >=0 && mmp[xp2 + jump[jumpdelay2]][yp2] == '#') {



                jumpdelay2 = 1;



            }

            if (xp2 + jump[jumpdelay2] >=0 && mmp[xp2 + jump[jumpdelay2]][yp2] == '#') {



                jumpdelay2 = 1;



            }

            jumpdelay2--;



        } else {



            if (xp2 == 19) {



                mmp[xp2][yp2] = ' ';

                xp2 = 0, yp2 = 40;

                mmp[xp2][yp2] = '@';

                score1++;



            } else {



                if (mmp[xp2 + 1][yp2] == ' ') {



                    mmp[xp2][yp2] = ' ';

                    xp2++;

                    mmp[xp2][yp2] = '@';



                }

                if (mmp[xp2 + 1][yp2] == '<' || mmp[xp2 + 1][yp2] == '>') {



                    mmp[xp2][yp2] = ' ';

                    xp2 = 0, yp2 = 40;

                    mmp[xp2][yp2] = '@';

                    score1++;



                }



            }



        }



        for (register int i = 0; i < 20; i++) {



            for (register int j = 1; j <= 40; j++) {



                if (mmp[i][j] == '<') {



                    if (j - 1 <= 0) {



                        mmp[i][j] = ' ';

                        continue;



                    }



                    if (mmp[i][j - 1] == 'O') {



                        mmp[xp1][yp1] = ' ';

                        xp1 = 0, yp1 = 1;

                        mmp[xp1][yp1] = 'O';

                        score2++;

                        mmp[i][j - 1] = '<';



                    }

                    if (mmp[i][j - 1] == '@') {



                        mmp[xp2][yp2] = ' ';

                        xp2 = 0, yp2 = 40;

                        mmp[xp2][yp2] = '@';

                        score1++;



                    }

                    if (mmp[i][j - 1] == '#') {



                        mmp[i][j] = ' ';



                    }

                    if (mmp[i][j - 1] == ' ') {



                        mmp[i][j] = ' ';

                        mmp[i][j - 1] = '<';



                    }

                    if (mmp[i][j - 1] == '>') {



                        mmp[i][j] = mmp[i][j - 1] = ' ';



                    }



                }



            }



        }

        for (register int i = 19; i >= 0; i--) {



            for (register int j = 40; j >= 1; j--) {



                if (mmp[i][j] == '>') {



                    if (j + 1 >= 41) {



                        mmp[i][j] = ' ';

                        continue;



                    }



                    if (mmp[i][j + 1] == 'O') {



                        mmp[xp1][yp1] = ' ';

                        xp1 = 0, yp1 = 1;

                        mmp[xp1][yp1] = 'O';

                        score2++;

                        mmp[i][j + 1] = '>';



                    }

                    if (mmp[i][j + 1] == '@') {



                        mmp[xp2][yp2] = ' ';

                        xp2 = 0, yp2 = 40;

                        mmp[xp2][yp2] = '@';

                        score1++;



                    }

                    if (mmp[i][j + 1] == '#') {



                        mmp[i][j] = ' ';



                    }

                    if (mmp[i][j + 1] == ' ') {



                        mmp[i][j] = ' ';

                        mmp[i][j + 1] = '>';



                    }

                    if (mmp[i][j + 1] == '<') {



                        mmp[i][j] = mmp[i][j + 1] = ' ';



                    }



                }



            }



        }



        if (kbhit()) {



            ch = getch();



            switch (ch) {



                case 27 :



                    exit(0);



                    break;



                case 'a' :



                    if (yp1 - 1 > 0 && mmp[xp1][yp1 - 1] == ' ') {



                        mmp[xp1][yp1] = ' ';

                        yp1--;

                        mmp[xp1][yp1] = 'O';



                    }



                    if (yp1 - 1 > 0 && (mmp[xp1][yp1 - 1] == '<' || mmp[xp1][yp1 - 1] == '>')) {



                        mmp[xp1][yp1] = ' ';

                        xp1 = 0, yp1 = 1;

                        mmp[xp1][yp1] = 'O';

                        score2++;



                    }



                    break;



                case 'd' :



                    if (yp1 + 1 <= 40 && mmp[xp1][yp1 + 1] == ' ') {



                        mmp[xp1][yp1] = ' ';

                        yp1++;

                        mmp[xp1][yp1] = 'O';



                    }



                    if (yp1 + 1 <= 40 && (mmp[xp1][yp1 + 1] == '<' || mmp[xp1][yp1 + 1] == '>')) {



                        mmp[xp1][yp1] = ' ';

                        xp1 = 0, yp1 = 1;

                        mmp[xp1][yp1] = 'O';

                        score2++;



                    }



                    break;



                case 'w' :



                    if (jumpdelay1 == 0 && mmp[xp1 + 1][yp1] == '#') {



                        jumpdelay1 = 4;



                    }



                    break;



                case -32 :



                    ch = getch();



                    switch (ch) {



                        case 75 :



                            if (yp2 - 1 > 0 && mmp[xp2][yp2 - 1] == ' ') {



                                mmp[xp2][yp2] = ' ';

                                yp2--;

                                mmp[xp2][yp2] = '@';



                            }



                            if (yp2 - 1 > 0 && (mmp[xp2][yp2 - 1] == '*' || mmp[xp2][yp2 - 1] == '*')) {



                                mmp[xp2][yp2] = ' ';

                                xp2 = 0, yp2 = 40;

                                mmp[xp2][yp2] = '@';

                                score1++;



                            }



                            break;



                        case 77 :



                            if (yp2 + 1 <= 40 && mmp[xp2][yp2 + 1] == ' ') {



                                mmp[xp2][yp2] = ' ';

                                yp2++;

                                mmp[xp2][yp2] = '@';



                            }



                            if (yp2 + 1 <= 40 && (mmp[xp2][yp2 + 1] == '<' || mmp[xp2][yp2 + 1] == '>')) {



                                mmp[xp2][yp2] = ' ';

                                xp2 = 0, yp2 = 40;

                                mmp[xp2][yp2] = '@';

                                score1++;



                            }



                            break;



                        case 72 :



                            if (jumpdelay2 == 0 && mmp[xp2 + 1][yp2] == '#') {



                                jumpdelay2 = 4;



                            }



                            break;



                    }



                    break;



                case '2' :



                    if (yp1 > 1) {



                        if (mmp[xp1][yp1 - 1] == '@') {



                            mmp[xp2][yp2] = ' ';

                            xp2 = 0, yp2 = 40;

                            mmp[xp2][yp2] = '@';

                            score1++;



                        }



                        if (mmp[xp1][yp1 - 1] == ' ') {



                            mmp[xp1][yp1 - 1] = '<';



                        }



                    }



                    break;

                case '3' :



                    if (yp1 < 40) {



                        if (mmp[xp1][yp1 + 1] == '@') {



                            mmp[xp2][yp2] = ' ';

                            xp2 = 0, yp2 = 40;

                            mmp[xp2][yp2] = '@';

                            score1++;



                        }



                        if (mmp[xp1][yp1 + 1] == ' ') {



                            mmp[xp1][yp1 + 1] = '>';



                        }



                    }

                    break;

                case 'j' :



                    if (yp2 > 1) {



                        if (mmp[xp2][yp2 - 1] == 'O') {



                            mmp[xp1][yp1] = ' ';

                            xp1 = 0, yp1 = 1;

                            mmp[xp1][yp1] = 'O';

                            score2++;



                        }



                        if (mmp[xp2][yp2 - 1] == ' ') {



                            mmp[xp2][yp2 - 1] = '<';



                        }



                    }



                    break;

                case 'k' :



                    if (yp2 < 40) {



                        if (mmp[xp2][yp2 + 1] == 'O') {



                            mmp[xp1][yp1] = ' ';

                            xp1 = 0, yp1 = 1;

                            mmp[xp1][yp1] = 'O';

                            score2++;



                        }



                        if (mmp[xp2][yp2 + 1] == ' ') {



                            mmp[xp2][yp2 + 1] = '>';



                        }



                    }



                    break;



            }



        }



    }




    return 0;



}

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
《Scratch枪战游戏脚本》 本游戏脚本主要基于Scratch编程软件制作,实现了一个简单的枪战场景。游戏开始后,玩家控制角色在一个封闭的场景里与敌人进行对战。 玩家可以使用键盘控制角色的移动,按下空格键进行射击。敌人也会自动移动并射击向角色发动攻击。 游戏的目标是击败所有的敌人,保持自己的角色生命值不为零。当玩家的生命值归零时,游戏结束,显示游戏失败的提示;当所有敌人的生命值归零时,游戏结束,显示游戏胜利的提示。 游戏设定了不同的难度等级,难度越高,敌人的移动速度和攻击频率就越快,玩家需要更加灵活和敏捷才能击败敌人。 整个游戏中使用了多个Scratch的编程模块,如角色移动和控制、音效播放和生命值管理等。通过编写代码块并逻辑连接,实现了玩家与敌人的交互,以及游戏结果的判断和展示。 游戏脚本的编写过程中,需注意游戏的平衡性和可玩性。可以设置道具和升级系统,增加游戏的趣味性和挑战性。 通过Scratch枪战游戏脚本的实现,不仅可以提高玩家的编程能力和逻辑思维能力,还可以增加玩家对游戏设计的理解和创造力。同时,也能为玩家带来独特的游戏体验和娱乐乐趣。 总结而言,本游戏脚本展示了如何利用Scratch编程软件创建一个简单的枪战游戏,既满足了玩家的娱乐需求,又培养了他们的编程技能和逻辑思维。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值