虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > C语言自定义军旗游戏源码

C语言自定义军旗游戏源码
类别:C/C++编程   作者:码皇   来源:互联网   点击:

这篇文章主要为大家详细介绍了C语言自定义军旗游戏源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言自定义军旗游戏的具体代码,供大家参考,具体内容如下

    #include <graphics.h>#include <time.h>#define CHESIZE 40 // 棋盘尺寸,不能随意调整#define RESETX 170#define RESETY 350 // 重置原点typedef enum // 要用到的棋子ID{
    si, jun, shi, lv, tuan, ying, lian, pai, ban, gong, fei, chao, zha, qi, lei, bian, xian, sheng, shen}
    CHESSID;
    typedef enum // 攻击类型{
    comatt, preatt, noatt}
    ATTSTYLE;
    typedef enum // 当前游戏方和棋子所属方{
    blue, red, white}
    TEAM;
    typedef enum // 选中与未选中{
    alchoose, unchoose}
    CHOOSESTATE;
    typedef enum // 区域状态{
    unknow, empty, exist}
    STATE;
    typedef struct // 坐标{
    int x;
    int y;
    }
    COOR;
    typedef struct // 棋子{
    CHESSID id;
    // 棋子的ID int power;
    // 棋子的等级 TEAM team;
    // 所属方 char *image;
    // 该棋子的图片,考虑到运行问题,本程序用字代替 int scoopc;
    // 工兵是挖到的地雷数}
    CHESS;
    typedef struct // 区域{
    COOR crdld;
    // 区域的左下坐标 CHESS chess;
    // 区域的棋子 STATE state;
    // 区域状态}
    AREA;
    typedef struct // 用户的选择信息{
    int i;
    int j;
    CHOOSESTATE state;
    // 选择状态}
    CHOOSE;
    IMAGE image;
    AREA area[6][6];
    // 定义棋盘大小CHESS datachess[19];
    // 几种基本棋子类型CHOOSE choose;
    // 用户选择信息MOUSEMSG mmsg;
    // 鼠标信息TEAM user;
    // 执棋方int lockchessboard = 0;
    // 是否锁定棋盘int i;
    // 当前鼠标所在区域的坐标int j;
    char *str[]={
    "工","班","排","连","营","团","旅","师","军","司","棋","炸","变","雷","飞","超","升","神","仙"}
    ;
    void init();
    void initchessbute();
    // 给初始化棋子基本参数void initvalue();
    void drawboard();
    // 画棋盘void randomarr(int *);
    // 实现棋的随机排列void judge();
    void getpreij();
    // 获得当前鼠标所在区域坐标int checkij();
    // 检查当鼠标所在区域void open();
    // 打开所在区域int whemove();
    // 判断是否能移动void move();
    // 移动int judgeunknow();
    // 检测当前未翻开棋子数ATTSTYLE wheattack();
    // 判断是否能攻击void kill();
    // 杀死当前选择的棋void killself();
    // 自杀void perishtogether();
    // 同归于尽void getteam();
    // 用作改变棋子类型时,对棋子所属方赋值void userchange();
    // 交换执棋方void judgebunko();
    // 判断输赢void choosearea();
    // 选定区域void cancelchoose();
    // 取消选定void change();
    // 变身void bluewin();
    // 蓝方胜利void redwin();
    // 红方胜利void gamehelp();
    // 规则说明void quit();
    // 退出游戏void peace();
    // 和棋void surrender();
    // 投降void resetchessboard();
    // 重置// 下面几个函数为判断棋子的攻击类型ATTSTYLE judgegong();
    // 判断工兵ATTSTYLE judgecom();
    // 判普通人物ATTSTYLE judgezha();
    // 判断炸弹void main() // 主函数{
    init();
    while (true) {
    mmsg = GetMouseMsg();
    getpreij();
    if (mmsg.uMsg == WM_LBUTTONDOWN) //单击左键 {
    judge();
    }
    else if (mmsg.uMsg == WM_RBUTTONDOWN && choose.state==alchoose) //单击右键 {
    cancelchoose();
    }
    else if (mmsg.uMsg == WM_MBUTTONDOWN && choose.state == alchoose && area[choose.i][choose.j].chess.id != zha) //单击中键 {
    killself();
    cancelchoose();
    userchange();
    judgebunko();
    }
    }
    }
    void init(){
    initgraph(640, 480);
    setorigin(RESETX, RESETY);
    // 重置原点 setaspectratio(1, -1);
    // 把 y 轴上方设为正半轴 drawboard();
    initvalue();
    }
    void drawboard() // 画棋盘{
    int i1;
    setlinecolor(WHITE);
    for (i1=0;
    i1<7;
    i1++) {
    line(i1*CHESIZE, 0, i1*CHESIZE, CHESIZE*6);
    }
    for (i1=0;
    i1<7;
    i1++) {
    line(0, i1*CHESIZE, CHESIZE*6, i1*CHESIZE);
    }
    setlinecolor(WHITE);
    setfillcolor(RED);
    rectangle(-10, -10, CHESIZE*6+10, CHESIZE*6+10);
    floodfill(-1, -1, WHITE);
    rectangle(7*CHESIZE, CHESIZE, 9*CHESIZE, 6*CHESIZE);
    line(7*CHESIZE, 5*CHESIZE, 9*CHESIZE, 5*CHESIZE);
    line(7*CHESIZE, 4*CHESIZE, 9*CHESIZE, 4*CHESIZE);
    line(7*CHESIZE, 3*CHESIZE, 9*CHESIZE, 3*CHESIZE);
    line(7*CHESIZE, 2*CHESIZE, 9*CHESIZE, 2*CHESIZE);
    setaspectratio(1, 1);
    settextstyle(35, 18, "黑体");
    settextcolor(RED);
    outtextxy(7*CHESIZE+2, -6*CHESIZE+2, "帮助");
    settextcolor(BROWN);
    outtextxy(7*CHESIZE+2, -5*CHESIZE+2, "投降");
    settextcolor(GREEN);
    outtextxy(7*CHESIZE+2, -4*CHESIZE+2, "和棋");
    settextcolor(YELLOW);
    outtextxy(7*CHESIZE+2, -3*CHESIZE+2, "重置");
    settextcolor(CYAN);
    outtextxy(7*CHESIZE+2, -2*CHESIZE+2, "退出");
    settextcolor(LIGHTMAGENTA);
    settextstyle(50, 20, "黑体");
    outtextxy(CHESIZE, -CHESIZE*8, "两国军旗");
    setaspectratio(1, -1);
    }
    void initchessbute() // 设置棋子基本参数{
    datachess[0].id = gong;
    datachess[0].power = 1;
    datachess[0].image = str[0];
    datachess[0].scoopc = 0;
    datachess[1].id = ban;
    datachess[1].power = 2;
    datachess[1].image = str[1];
    datachess[1].scoopc = 0;
    datachess[2].id = pai;
    datachess[2].power = 3;
    datachess[2].image = str[2];
    datachess[2].scoopc = 0;
    datachess[3].id = lian;
    datachess[3].power = 4;
    datachess[3].image = str[3];
    datachess[3].scoopc = 0;
    datachess[4].id = ying;
    datachess[4].power = 5;
    datachess[4].image = str[4];
    datachess[4].scoopc = 0;
    datachess[5].id = tuan;
    datachess[5].power = 6;
    datachess[5].image = str[5];
    datachess[5].scoopc = 0;
    datachess[6].id = lv;
    datachess[6].power = 7;
    datachess[6].image = str[6];
    datachess[6].scoopc = 0;
    datachess[7].id = shi;
    datachess[7].power = 8;
    datachess[7].image = str[7];
    datachess[7].scoopc = 0;
    datachess[8].id = jun;
    datachess[8].power = 9;
    datachess[8].image = str[8];
    datachess[8].scoopc = 0;
    datachess[9].id = si;
    datachess[9].power = 10;
    datachess[9].image = str[9];
    datachess[9].scoopc = 0;
    datachess[10].id = qi;
    datachess[10].power = 100;
    datachess[10].image = str[10];
    datachess[10].scoopc = 0;
    datachess[11].id = zha;
    datachess[11].power = 99;
    datachess[11].image = str[11];
    datachess[11].scoopc = 0;
    datachess[12].id = bian;
    datachess[12].power = 0;
    datachess[12].image = str[12];
    datachess[12].scoopc = 0;
    datachess[13].id = lei;
    datachess[13].power = 98;
    datachess[13].image = str[13];
    datachess[13].scoopc = 0;
    datachess[14].id = fei;
    datachess[14].power = 9;
    datachess[14].image = str[14];
    datachess[14].scoopc = 0;
    datachess[15].id = chao;
    datachess[15].power = 11;
    datachess[15].image = str[15];
    datachess[15].scoopc = 0;
    datachess[16].id = sheng;
    datachess[16].power = 10;
    datachess[16].image = str[16];
    datachess[16].scoopc = 0;
    datachess[17].id = shen;
    datachess[17].power = 11;
    datachess[17].image = str[17];
    datachess[17].scoopc = 0;
    datachess[18].id = xian;
    datachess[18].power = 11;
    datachess[18].image = str[18];
    datachess[18].scoopc = 0;
    }
    void initvalue() // 初始化值{
    CHESS chess[36];
    int random[36];
    int count;
    int i1, j1;
    initchessbute();
    randomarr(random);
    for (i1=0;
    i1<=11;
    i1++) {
    chess[i1] = datachess[i1];
    chess[i1].team = red;
    }
    chess[i1] = datachess[11];
    chess[i1].team = red;
    chess[i1+1] = datachess[0];
    chess[i1+1].team = red;
    for (i1=0;
    i1<=11;
    i1++) {
    chess[i1+14] = datachess[i1];
    chess[i1+14].team = blue;
    }
    chess[i1+14] = datachess[11];
    chess[i1+14].team = blue;
    chess[i1+15] = datachess[0];
    chess[i1+15].team = blue;
    for (i1=0;
    i1<4;
    i1++) {
    chess[i1+28] = datachess[12];
    chess[i1+28].team = white;
    chess[i1+32] = datachess[13];
    chess[i1+32].team = white;
    }
    setfillcolor(YELLOW);
    for (count=0, i1=0;
    i1<6;
    i1++) {
    for (j1=0;
    j1<6;
    j1++, count++) {
    area[i1][j1].chess = chess[random[count]];
    area[i1][j1].crdld.x = i1 * CHESIZE + 1;
    area[i1][j1].crdld.y = j1 * CHESIZE + 1;
    area[i1][j1].state = unknow;
    floodfill(area[i1][j1].crdld.x, area[i1][j1].crdld.y, WHITE);
    }
    }
    user = red;
    choose.state = unchoose;
    }
    void randomarr(int random[]) // 得到0~36数字的随机排列{
    int i1, j1;
    int flag = 0;
    srand(time(NULL));
    random[0] = rand() % 36 ;
    for (i1=1;
    i1<36;
    i1++) {
    while (1) {
    random[i1] = rand() % 36 ;
    for (j1=0;
    j1<i1;
    j1++) {
    if (random[j1] == random[i1]) {
    flag = 1;
    break;
    }
    }
    if (flag) {
    flag = 0;
    }
    else {
    break;
    }
    }
    }
    }
    void judge() // 判断当前要进行的操作{
    ATTSTYLE attstyle;
    // 攻击类型 getpreij();
    if (checkij()) {
    if (area[i][j].state==unknow && choose.state==unchoose) // 打开 {
    open();
    userchange();
    }
    else if(area[i][j].state == empty) {
    if (choose.state == alchoose) // 移动 {
    if (whemove()) {
    move();
    cancelchoose();
    userchange();
    }
    }
    }
    else {
    if (choose.state == unchoose) {
    if (area[i][j].chess.team==user && area[i][j].chess.id!=qi) //选定 {
    choosearea();
    }
    }
    else {
    if (area[i][j].state!=unknow) // 攻击 {
    attstyle = wheattack();
    if (attstyle == comatt) {
    kill();
    cancelchoose();
    userchange();
    }
    else if (attstyle == preatt) {
    perishtogether();
    cancelchoose();
    userchange();
    }
    else {
    ;
    }
    }
    }
    }
    if (!judgeunknow()) // 在所有棋子都翻开的情况下判断输赢 {
    judgebunko();
    }
    }
    }
    int judgeunknow(){
    int i1, i2;
    int num = 0;
    for (i1=0;
    i1<6;
    i1++) {
    for (i2=0;
    i2<6;
    i2++) {
    if (area[i1][i2].state == unknow) {
    num++;
    }
    }
    }
    return num;
    }
    // 选择区域void choosearea(){
    choose.i = i;
    choose.j = j;
    choose.state = alchoose;
    setlinecolor(GREEN);
    rectangle(choose.i*CHESIZE, choose.j*CHESIZE, choose.i*CHESIZE+CHESIZE, choose.j*CHESIZE+CHESIZE);
    }
    // 取消选定void cancelchoose(){
    setlinecolor(WHITE);
    rectangle(choose.i*CHESIZE, choose.j*CHESIZE, choose.i*CHESIZE+CHESIZE, choose.j*CHESIZE+CHESIZE);
    choose.state = unchoose;
    }
    // 当前鼠标所在区域void getpreij(){
    i = (mmsg.x-RESETX) / CHESIZE;
    j = -(mmsg.y-RESETY) / CHESIZE;
    }
    // 检查鼠标是否在有效区域内int checkij(){
    if ((i==7 || i==8) && j==5) {
    gamehelp();
    return 0;
    }
    else if ((i==7 || i==8) && j==4) {
    if (!lockchessboard) {
    surrender();
    }
    return 0;
    }
    else if ((i==7 || i==8) && j==3) {
    if (!lockchessboard) {
    peace();
    }
    return 0;
    }
    else if ((i==7 || i==8) && j==2) {
    resetchessboard();
    lockchessboard = 0;
    return 0;
    }
    else if ((i==7 || i==8) && j==1) {
    quit();
    return 0;
    }
    else {
    if (!lockchessboard) {
    if ((i>=0 && i<=5 && j>=0 && j<=5 && (mmsg.x-RESETX)>0 && -(mmsg.y-RESETY)>0)) {
    return 1;
    }
    else {
    return 0;
    }
    }
    else {
    return 0;
    }
    }
    }
    // 打开操作void open(){
    setfillcolor(BLACK);
    floodfill(area[i][j].crdld.x, area[i][j].crdld.y, WHITE);
    setaspectratio(1, 1);
    if (area[i][j].chess.team == blue) {
    settextcolor(BLUE);
    }
    else if (area[i][j].chess.team == red) {
    settextcolor(RED);
    }
    else {
    settextcolor(MAGENTA);
    }
    settextstyle(35, 18, "黑体");
    outtextxy(area[i][j].crdld.x, -area[i][j].crdld.y-CHESIZE+2, area[i][j].chess.image);
    area[i][j].state = exist;
    setaspectratio(1, -1);
    }
    // 判断是否能移动int whemove(){
    if (area[choose.i][choose.j].chess.id==fei || area[choose.i][choose.j].chess.id==sheng || area[choose.i][choose.j].chess.id==shen) {
    if (choose.i==i && abs(choose.j-j)<=5 || choose.j==j && abs(choose.i-i)<=5) {
    return 1;
    }
    else {
    return 0;
    }
    }
    else if (area[choose.i][choose.j].chess.id == xian) {
    return 1;
    }
    else {
    if (choose.i==i && abs(choose.j-j)==1 || choose.j==j && abs(choose.i-i)==1) {
    return 1;
    }
    else {
    return 0;
    }
    }
    }
    // 移动void move(){
    setfillcolor(BLACK);
    floodfill(area[choose.i][choose.j].crdld.x, area[choose.i][choose.j].crdld.y, GREEN);
    setaspectratio(1, 1);
    if (area[choose.i][choose.j].chess.id==gong && area[choose.i][choose.j].chess.scoopc>0) {
    if (area[choose.i][choose.j].chess.team == blue) {
    settextcolor(LIGHTBLUE);
    }
    else {
    settextcolor(LIGHTRED);
    }
    }
    else {
    if (user == blue) {
    settextcolor(BLUE);
    }
    else {
    settextcolor(RED);
    }
    }
    settextstyle(35, 18, "黑体");
    outtextxy(area[i][j].crdld.x, -area[i][j].crdld.y-CHESIZE+2, area[choose.i][choose.j].chess.image);
    area[choose.i][choose.j].state = empty;
    area[i][j].state = exist;
    area[i][j].chess = area[choose.i][choose.j].chess;
    setaspectratio(1, -1);
    }
    // 判断是否能攻击,并返回攻击类型ATTSTYLE wheattack() {
    if (whemove()) {
    if (area[choose.i][choose.j].chess.id == gong) {
    return judgegong();
    }
    else if (area[choose.i][choose.j].chess.id == zha) {
    return judgezha();
    }
    else {
    return judgecom();
    }
    }
    else {
    return noatt;
    }
    }
    // 判断工兵ATTSTYLE judgegong() {
    if (area[i][j].chess.team != white) {
    if (area[choose.i][choose.j].chess.team != area[i][j].chess.team) {
    if (area[i][j].chess.id==gong || area[i][j].chess.id==zha) {
    return preatt;
    }
    else if (area[i][j].chess.id == qi) {
    if (area[choose.i][choose.j].chess.scoopc == 0) {
    return noatt;
    }
    else if (area[choose.i][choose.j].chess.scoopc == 1) {
    area[choose.i][choose.j].chess = datachess[14];
    getteam();
    return comatt;
    }
    else if (area[choose.i][choose.j].chess.scoopc == 2) {
    area[choose.i][choose.j].chess = datachess[16];
    getteam();
    return comatt;
    }
    else if (area[choose.i][choose.j].chess.scoopc == 3) {
    area[choose.i][choose.j].chess = datachess[17];
    getteam();
    return comatt;
    }
    else {
    area[choose.i][choose.j].chess = datachess[18];
    getteam();
    return comatt;
    }
    }
    else {
    return noatt;
    }
    }
    else {
    return noatt;
    }
    }
    else {
    if (area[i][j].chess.id == lei) {
    area[choose.i][choose.j].chess.scoopc++;
    return comatt;
    }
    else {
    change();
    return comatt;
    }
    }
    }
    // 判断炸弹ATTSTYLE judgezha() {
    if (area[choose.i][choose.j].chess.team != area[i][j].chess.team) {
    if (area[i][j].chess.id != qi) {
    return preatt;
    }
    else {
    return noatt;
    }
    }
    else {
    return noatt;
    }
    }
    // 判断普通人物 ATTSTYLE judgecom() {
    if (area[i][j].chess.team != white) {
    if (area[choose.i][choose.j].chess.team != area[i][j].chess.team) {
    if (area[choose.i][choose.j].chess.power==area[i][j].chess.power || area[i][j].chess.id==zha) {
    return preatt;
    }
    else if (area[choose.i][choose.j].chess.power > area[i][j].chess.power) {
    return comatt;
    }
    else {
    return noatt;
    }
    }
    else {
    return noatt;
    }
    }
    else {
    if (area[i][j].chess.id == lei) {
    return noatt;
    }
    else {
    change();
    return comatt;
    }
    }
    }
    // 变身void change() {
    int x;
    x = rand() % 50;
    if (x == 6) {
    area[choose.i][choose.j].chess = datachess[15];
    getteam();
    }
    else {
    x = rand() % 4;
    if (x == 3) {
    x = rand() % 2;
    if (x == 0) {
    area[choose.i][choose.j].chess = datachess[7];
    }
    else {
    area[choose.i][choose.j].chess = datachess[8];
    }
    getteam();
    }
    else {
    x = rand() % 6;
    area[choose.i][choose.j].chess = datachess[x];
    getteam();
    }
    }
    }
    // 对棋子所属方赋值void getteam() {
    if (user == blue) {
    area[choose.i][choose.j].chess.team = blue;
    }
    else {
    area[choose.i][choose.j].chess.team = red;
    }
    }
    // 杀死对方void kill() {
    move();
    }
    // 自杀void killself() {
    setfillcolor(BLACK);
    floodfill(area[choose.i][choose.j].crdld.x, area[choose.i][choose.j].crdld.y, GREEN);
    area[choose.i][choose.j].state = empty;
    }
    // 同归于尽void perishtogether() {
    setfillcolor(BLACK);
    cancelchoose();
    floodfill(area[choose.i][choose.j].crdld.x, area[choose.i][choose.j].crdld.y, WHITE);
    floodfill(area[i][j].crdld.x, area[i][j].crdld.y, WHITE);
    area[choose.i][choose.j].state = empty;
    area[i][j].state = empty;
    }
    // 切换执棋方void userchange() {
    if (user == blue) {
    user = red;
    setfillcolor(RED);
    floodfill(-1, -1, WHITE);
    }
    else {
    user = blue;
    setfillcolor(BLUE);
    floodfill(-1, -1, WHITE);
    }
    }
    // 判断输赢void judgebunko() {
    int i1, j1;
    int num1 = 0, num2 = 0;
    for (i1=0;
    i1<6;
    i1++) {
    for (j1=0;
    j1<6;
    j1++) {
    if (area[i1][j1].state != empty) {
    if (area[i1][j1].chess.team==red && area[i1][j1].chess.id!=qi) {
    num1++;
    }
    else if(area[i1][j1].chess.team==blue && area[i1][j1].chess.id!=qi) {
    num2++;
    }
    }
    }
    }
    if (num1==0 && num2!=0) {
    bluewin();
    }
    if (num2==0 && num1!=0) {
    redwin();
    }
    if (num1==0 && num2==0) {
    peace();
    }
    }
    // 蓝方胜void bluewin() {
    setaspectratio(1, 1);
    settextcolor(BLUE);
    settextstyle(50, 20, "黑体");
    outtextxy(CHESIZE, -CHESIZE*8, "蓝方胜利");
    setaspectratio(1, -1);
    setfillcolor(BLUE);
    floodfill(-1, -1, WHITE);
    lockchessboard = 1;
    //锁定棋盘}
    // 红方胜void redwin() {
    setaspectratio(1, 1);
    settextcolor(RED);
    settextstyle(50, 20, "黑体");
    outtextxy(CHESIZE, -CHESIZE*8, "红方胜利");
    setaspectratio(1, -1);
    setfillcolor(RED);
    floodfill(-1, -1, WHITE);
    lockchessboard = 1;
    }
    // 和棋void peace() {
    setaspectratio(1, 1);
    settextcolor(GREEN);
    settextstyle(50, 20, "黑体");
    outtextxy(CHESIZE, -CHESIZE*8, "握手言和");
    setaspectratio(1, -1);
    setfillcolor(GREEN);
    floodfill(-1, -1, WHITE);
    lockchessboard = 1;
    }
    // 投降void surrender() {
    if (user == blue) {
    redwin();
    }
    else {
    bluewin();
    }
    }
    // 重置void resetchessboard() {
    cleardevice();
    init();
    }
    // 游戏说明void gamehelp() {
    getimage(&image, -10, -10, 500, 350);
    cleardevice();
    setorigin(50, 0);
    setaspectratio(1, 1);
    settextcolor(RED);
    settextstyle(14, 0, "黑体");
    outtextxy(-50, 0, "注:单击鼠标左键回到游戏界面");
    settextcolor(WHITE);
    settextstyle(24, 0, "黑体");
    outtextxy(230, 5, "游戏说明");
    settextstyle(12, 0, "宋体");
    outtextxy(0, 35, "棋盘大小:6*6;
    棋子总数:36;
    敌对双方:红,蓝");
    outtextxy(0, 60, "棋子类别:红棋(红方操作,14个) 蓝棋(蓝方操作,14个) 紫棋(功能棋,8个)");
    outtextxy(0, 85, "红棋(蓝棋)类型:司令,军长,师长,旅长,团长,营长,连长,班长,军旗,工兵*2,炸弹*2.");
    outtextxy(0, 100, "紫棋类型:地雷*4,变身棋*4. 注:'*'后面表示该棋的数量,没注则只有一个");
    outtextxy(0, 125, "规则说明:1.司令最大,工兵最小,大的吃小的,一样就同归于尽,");
    outtextxy(textwidth("规则说明:1."), 140, "炸弹能炸紫棋和敌方除军旗外所有的棋(炸弹也会消失)." );
    outtextxy(textwidth("规则说明:"), 155, "2.工兵可挖地雷,挖完后可扛对方棋变身(挖的雷越多,变成的人物越厉害).");
    outtextxy(textwidth("规则说明:"), 170, "3.人物棋可吃变,吃后能变成工兵~军长中的一种,有一定几率变成隐藏BOSS.");
    outtextxy(textwidth("规则说明:"), 185, "4.人物棋可自杀(算一次操作).");
    outtextxy(textwidth("规则说明:"), 200, "5.执棋方进行完一次有效操作后,就换对方执棋(边框颜色表当前执棋方).");
    outtextxy(textwidth("规则说明:"), 215, "6.一方棋子(军旗除外)全被消灭,就算输;
    同时全部没有,则和棋.");
    outtextxy(0, 240, "执棋方能进行的操作:操作1:打开棋子(算一次操作).");
    outtextxy(textwidth("执棋方能进行的操作:"), 255, "操作2:攻击.");
    outtextxy(textwidth("执棋方能进行的操作:"), 270, "操作3:移动.");
    outtextxy(textwidth("执棋方能进行的操作:"), 285, "操作4:工兵(已挖雷)扛旗.");
    outtextxy(textwidth("执棋方能进行的操作:"), 300, "操作5:吃变身卡.");
    outtextxy(textwidth("执棋方能进行的操作:"), 315, "操作6:自杀.");
    outtextxy(0, 340, "实施游戏操作说明(鼠标操作):实施操作1:选择要打开棋子所在的区域,单击.");
    outtextxy(textwidth("实施游戏操作说明(鼠标操作):"), 355, "实施操作2~5:单击选中主动方(棋子边框会变绿)");
    outtextxy(textwidth("实施游戏操作说明(鼠标操作):实施操作2~5:"), 370, "再单击选中被动方.");
    outtextxy(textwidth("实施游戏操作说明(鼠标操作):"), 385, "实施操作6:选中己方棋子,单机鼠标的中键.");
    settextcolor(RED);
    outtextxy(textwidth("实施游戏操作说明(鼠标操作):"), 400,"注:要进行其他操作,必先撤销当前选定(单击右键撤销)");
    settextcolor(WHITE);
    setlinecolor(WHITE);
    line(-30, 420, 570, 420);
    outtextxy(0, 425, "人物棋等级一览(等高杀等小):工1 班2 连3 营4 团5 旅6 师7");
    outtextxy(textwidth("人物棋等级一览(等高杀等小):"), 440, "军8 飞8 司9 升9 神10 仙10");
    outtextxy(0, 455, "注:'飞' '升' '神' '仙' 都为工兵挖雷后扛旗所变,'飞''升''神'能直线飞,'仙'能满天飞");
    while (true) {
    mmsg = GetMouseMsg();
    if (mmsg.uMsg == WM_LBUTTONDOWN) {
    break;
    }
    }
    cleardevice();
    setorigin(RESETX, RESETY);
    setaspectratio(1, -1);
    putimage(-10, -10, &image);
    }
    // 退出游戏void quit() {
    closegraph();
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • 基于C语言实现的贪吃蛇游戏完整实例代码
  • 基于C语言实现的扫雷游戏代码
  • 基于C语言实现的迷宫游戏代码
  • 基于C语言实现五子棋游戏完整实例代码
  • 原创的C语言控制台小游戏
  • C语言游戏必备:光标定位与颜色设置的实现方法
  • C语言实现汉诺塔游戏
  • C语言实现的猜拳游戏代码分享
  • C语言开发简易版扫雷小游戏
  • 基于C语言实现简单的走迷宫游戏
相关热词搜索: C语言自定义军旗游戏 C语言军旗游戏源码 C