问题标题: 酷町堂:游戏

0
0

0
已采纳
黄品翔
黄品翔
初级光能
初级光能

{  
    COORD position[2];  
    int flag;  
}Frame;  
void SetPos(COORD a) 
{  
    HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);  
    SetConsoleCursorPosition(out, a);  
}
void SetPos(int i, int j)
{  
    COORD pos={i, j};  
    SetPos(pos);  
}
void HideCursor()  
{  
    CONSOLE_CURSOR_INFO cursor_info = {1, 0};   
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);  
}
void drawRow(int y, int x1, int x2, char ch)  
{  
    SetPos(x1,y);  
    for(int i = 0; i <= (x2-x1); i++)  
        cout<<ch;  
}
void drawRow(COORD a, COORD b, char ch)  
{  
    if(a.Y == b.Y)  
        drawRow(a.Y, a.X, b.X, ch);  
    else  
    {  
        SetPos(0, 25);  
        cout<<"error code 01:无法填充行,因为两个坐标的纵坐标(x)不相等";  
        system("pause");  
    }  
}
void drawCol(int x, int y1, int y2, char ch)  
{  
    int y=y1;  
    while(y!=y2+1)  
    {  
        SetPos(x, y);  
        cout<<ch;  
        y++;  
    }  
}
void drawCol(COORD a, COORD b, char ch)  
{  
    if(a.X == b.X)  
        drawCol(a.X, a.Y, b.Y, ch);  
    else  
    {  
        SetPos(0, 25);  
        cout<<"error code 02:无法填充列,因为两个坐标的横坐标(y)不相等";  
        system("pause");  
    }  
}
void drawFrame(COORD a, COORD  b, char row, char col)  
{  
    drawRow(a.Y, a.X+1, b.X-1, row);  
    drawRow(b.Y, a.X+1, b.X-1, row);  
    drawCol(a.X, a.Y+1, b.Y-1, col);  
    drawCol(b.X, a.Y+1, b.Y-1, col);  
}
void drawFrame(int x1, int y1, int x2, int y2, char row, char col)  
{  
    COORD a={x1, y1};  
    COORD b={x2, y2};  
    drawFrame(a, b, row, col);  
}
void drawFrame(Frame frame, char row, char col)  
{  
    COORD a = frame.position[0];  
    COORD b = frame.position[1];  
    drawFrame(a, b, row, col);  
}
void drawPlaying()  
{  
    drawFrame(0, 0, 48, 24, '=', '|');
    drawFrame(49, 0, 79, 4, '-', '|');
    drawFrame(49, 4, 79, 9, '-', '|');
    drawFrame(49, 9, 79, 20, '-', '|');
    drawFrame(49, 20, 79, 24, '-', '|');
    SetPos(52, 6);  
    cout<<"得分:";  
    SetPos(52, 7);  
    cout<<"称号:";  
    SetPos(52,10);  
    cout<<"操作方式:";  
    SetPos(52,12);  
    cout<<"  a,s,d,w 控制战机移动。";  
    SetPos(52,14);  
    cout<<"  p 暂停游戏。";  
    SetPos(52,16);  
    cout<<"  e 退出游戏。";  
}
int random(int a, int b)  
{  
    int c=(rand() % (a-b))+ a;  
    return c;  
}
COORD random(COORD a, COORD b)  
{  
    int x=random(a.X, b.X);  
    int y=random(a.Y, b.Y);  
    COORD c={x, y};  
    return c;  
}
bool  judgeCoordInFrame(Frame frame, COORD spot)  
{  
    if(spot.X>=frame.position[0].X)  
        if(spot.X<=frame.position[1].X)  
            if(spot.Y>=frame.position[0].Y)  
                if(spot.Y<=frame.position[0].Y)  
                    return true;  
    return false;  
}
void printCoord(COORD a)  
{  
    cout    <<"( "<<a.X<<" , "<<a.Y<<" )";  
}
void printFrameCoord(Frame a)  
{  
    printCoord(a.position[0]);  
    cout    <<" - ";  
    printCoord(a.position[1]);  
}
int drawMenu()  
{  
    SetPos(30, 1);  
    cout<<"P l a n e  W a r";  
    drawRow(3, 0, 79, '-');  
    drawRow(5, 0, 79, '-');  
    SetPos(28, 4);  
    cout<<"w 和 s 选择, k 确定";  
    SetPos(15, 11);  
    cout<<"1. 简单的敌人";  
    SetPos(15, 13);  
    cout<<"2. 冷酷的敌人";  
    drawRow(20, 0, 79, '-');  
    drawRow(22, 0, 79, '-');  
    SetPos(47, 11);  
    cout<<"简单的敌人:";  
    SetPos(51, 13);  
    cout<<"简单敌人有着较慢的移动速度。";  
    SetPos(24, 21);  
    cout<<"制作:老虎哒哒666";  
    int j=11;  
    SetPos(12, j);  
    cout<<">>";
    while(1)  
    {   if( _kbhit() )  
        {     
            char x=_getch();  
            switch (x)  
            {  
            case 'w' :  
                    {     
                        if( j == 13)  
                        {  
                            SetPos(12, j);  
                            cout<<" ";  
                            j = 11;  
                            SetPos(12, j);  
                            cout<<">>";  
                            SetPos(51, 13);  
                            cout<<"            ";  
                            SetPos(47, 11);  
                            cout<<"简单的敌人:";  
                            SetPos(51, 13);  
                            cout<<"简单敌人有着较慢的移动速度,比较容易对付";  
                        }  
                        break;  
                    }  
            case 's' :  
                    {     
                        if( j == 11 )  
                        {  
                            SetPos(12, j);  
                            cout<<" ";          
                            j = 13;  
                            SetPos(12, j);  
                            cout<<">>";  
                            SetPos(51, 13);  
                            cout<<"              ";  
                            SetPos(47, 11);  
                            cout<<"冷酷的敌人:";  
                            SetPos(51, 13);  
                            cout<<"冷酷的敌人移动速度较快,难对付哟。";  
                        }  
                        break;  
                    }  
            case 'k' :  
                    {     
                        if (j == 8) return 1;  
                        else return 2;  
                    }  
            }  
        }  
    }  
}
class Game  
{  
public:  
    COORD position[10];  
    COORD bullet[10];  
    Frame enemy[8];  
    int score;  
    int rank;  
    int rankf;  
    string title;  
    int flag_rank;  
    Game ();
    void initPlane();  
    void initBullet();  
    void initEnemy();  
    void planeMove(char);  
    void bulletMove();  
    void enemyMove();  
    void drawPlane();  
    void drawPlaneToNull();  
    void drawBullet();  
    void drawBulletToNull();  
    void drawEnemy();  
    void drawEnemyToNull();  
    void drawThisBulletToNull( COORD );  
    void drawThisEnemyToNull( Frame );  
  
    void Pause();  
    void Playing();  
    void judgePlane();  
    void judgeEnemy();  
  
    void Shoot();  
  
    void GameOver();  
    void printScore();  
};
Game::Game()  
{  
    initPlane();  
    initBullet();  
    initEnemy();  
    score = 0;  
    rank = 25;  
    rankf = 0;  
    flag_rank = 0;  
}
void Game::initPlane()  
{  
    COORD centren={39, 22};  
    position[0].X=position[5].X=position[7].X=position[9].X=centren.X;  
    position[1].X=centren.X-2;    
    position[2].X=position[6].X=centren.X-1;  
    position[3].X=position[8].X=centren.X+1;  
    position[4].X=centren.X+2;  
    for(int i=0; i<=4; i++)  
        position[i].Y=centren.Y;  
    for(int i=6; i<=8; i++)  
        position[i].Y=centren.Y+1;  
    position[5].Y=centren.Y-1;  
    position[9].Y=centren.Y-2;  
}
void Game::drawPlane()  
{  
    for(int i=0; i<9; i++)  
    {  
        SetPos(position[i]);  
        if(i!=5)  
            cout<<"O";  
        else if(i==5)  
            cout<<"|";          
    }  
}
void Game::drawPlaneToNull()  
{  
    for(int i=0; i<9; i++)  
    {  
        SetPos(position[i]);  
        cout<<" ";  
    }     
}
void Game::initBullet()  
{  
    for(int i=0; i<10; i++)  
        bullet[i].Y = 30;  
}  
void Game::drawBullet()  
{  
    for(int i=0; i<10; i++)  
    {  
        if( bullet[i].Y != 30)  
        {  
            SetPos(bullet[i]);  
            cout<<"^";      
        }  
    }  
}  
void Game::drawBulletToNull()  
{  
    for(int i=0; i<10; i++)  
        if( bullet[i].Y != 30 )  
            {  
                COORD pos={bullet[i].X, bullet[i].Y+1};  
                SetPos(pos);  
                cout<<" ";  
            }     
}  
void Game::initEnemy()  
{  
    COORD a={1, 1};  
    COORD b={45, 15};  
    for(int i=0; i<8; i++)  
    {  
        enemy[i].position[0] = random(a, b);  
        enemy[i].position[1].X = enemy[i].position[0].X + 3;  
        enemy[i].position[1].Y = enemy[i].position[0].Y + 2;  
    }  
}
void Game::drawEnemy()  
{  
    for(int i=0; i<8; i++)  
        drawFrame(enemy[i].position[0], enemy[i].position[1], '-', '|');  
}  
  
void Game::drawEnemyToNull()  
{  
    for(int i=0; i<8; i++)  
    {  
        drawFrame(enemy[i].position[0], enemy[i].position[1], ' ', ' ');  
    }         
}
void Game::Pause()  
{  
    SetPos(61,2);  
    cout<<"               ";  
    SetPos(61,2);  
    cout<<"暂停中......";
    char c=_getch();  
    while(c!='p')  
        c=_getch();  
    SetPos(61,2);  
    cout<<"         ";  
}
void Game::planeMove(char x)  
{  
    if(x == 'a')  
        if(position[1].X != 1)  
            for(int i=0; i<=9; i++)  
                position[i].X -= 2;  
                  
    if(x == 's')  
        if(position[7].Y != 23)  
            for(int i=0; i<=9; i++)  
                position[i].Y += 1;  
  
    if(x == 'd')  
        if(position[4].X != 47)  
            for(int i=0; i<=9; i++)  
                position[i].X += 2;  
  
    if(x == 'w')  
        if(position[5].Y != 3)  
            for(int i=0; i<=9; i++)  
                position[i].Y -= 1;  
}  
  
void Game::bulletMove()  
{  
    for(int i=0; i<10; i++)  
    {  
        if( bullet[i].Y != 30)  
        {  
            bullet[i].Y -= 1;  
            if( bullet[i].Y == 1 )  
            {  
                COORD pos={bullet[i].X, bullet[i].Y+1};  
                drawThisBulletToNull( pos );  
                bullet[i].Y=30;  
            }  
                  
        }  
    }  
}  
  
void Game::enemyMove()  
{  
    for(int i=0; i<8; i++)  
    {  
        for(int j=0; j<2; j++)  
            enemy[i].position[j].Y++;  
  
        if(24 == enemy[i].position[1].Y)  
        {  
            COORD a={1, 1};  
            COORD b={45, 3};  
            enemy[i].position[0] = random(a, b);  
            enemy[i].position[1].X = enemy[i].position[0].X + 3;  
            enemy[i].position[1].Y = enemy[i].position[0].Y + 2;  
        }  
    }  
}  
  
void Game::judgePlane()  
{  
    for(int i = 0; i < 8; i++)  
        for(int j=0; j<9; j++)  
            if(judgeCoordInFrame(enemy[i], position[j]))  
            {  
                SetPos(62, 1);  
                cout<<"坠毁";  
                drawFrame(enemy[i], '+', '+');  
                Sleep(1000);  
                GameOver();  
                break;  
            }  
}  
  
void Game::drawThisBulletToNull( COORD c)  
{  
    SetPos(c);  
    cout<<" ";  
}  
  
void Game::drawThisEnemyToNull( Frame f )  
{  
    drawFrame(f, ' ', ' ');  
}  
  
void Game::judgeEnemy()  
{  
    for(int i = 0; i < 8; i++)  
        for(int j = 0; j < 10; j++)  
            if( judgeCoordInFrame(enemy[i], bullet[j]) )  
            {  
                score += 5;  
                drawThisEnemyToNull( enemy[i] );  
                COORD a={1, 1};  
                COORD b={45, 3};  
                enemy[i].position[0] = random(a, b);  
                enemy[i].position[1].X = enemy[i].position[0].X + 3;  
                enemy[i].position[1].Y = enemy[i].position[0].Y + 2;                      
                drawThisBulletToNull( bullet[j] );  
                bullet[j].Y = 30;  
            }  
}  
  
void Game::Shoot()  
{  
    for(int i=0; i<10; i++)  
        if(bullet[i].Y == 30)  
        {  
            bullet[i].X = position[5].X;  
            bullet[i].Y = position[5].Y-1;  
            break;  
        }  
}  
  
void Game::printScore()  
{  
    if(score == 120 && flag_rank == 0)  
    {  
        rank -= 3;  
        flag_rank = 1;  
    }  
  
    else if( score == 360 && flag_rank == 1)  
    {  
        rank -= 5;  
        flag_rank = 2;  
    }  
    else if( score == 480 && flag_rank == 2)  
    {  
        rank -= 5;  
        flag_rank = 3;  
    }  
    int x=rank/5;  
    SetPos(60, 6);  
    cout<<score;  
  
    if( rank!=rankf )  
    {  
        SetPos(60, 7);  
        if( x == 5)  
            title="初级飞行员";  
        else if( x == 4)  
            title="中级飞行员";  
        else if( x == 3)  
            title="高级飞行员";  
        else if( x == 2 )  
            title="王牌飞行员";  
        cout<<title;  
    }  
    rankf = rank;  
}  
  
void Game::Playing()  
{
    drawEnemy();  
    drawPlane();  
  
    int flag_bullet = 0;  
    int flag_enemy = 0;  
  
    while(1)  
    {  
        Sleep(8);  
        if(_kbhit())  
        {  
            char x = _getch();  
            if ('a' == x || 's' == x || 'd' == x || 'w' == x)  
            {  
                drawPlaneToNull();  
                planeMove(x);  
                drawPlane();  
                judgePlane();  
            }             
            else if ('p' == x)  
                Pause();  
            else if( 'k' == x)  
                Shoot();  
            else if( 'e' == x)  
            { 
                GameOver();  
                break;  
            }  
                  
        }  
        if( 0 == flag_bullet )  
        {  
            bulletMove();  
            drawBulletToNull();  
            drawBullet();  
            judgeEnemy();  
        }             
        flag_bullet++;  
        if( 5 == flag_bullet )  
            flag_bullet = 0;  
        if( 0 == flag_enemy )  
        {  
            drawEnemyToNull();  
            enemyMove();              
            drawEnemy();  
            judgePlane();  
        }  
        flag_enemy++;  
        if( flag_enemy >= rank )  
            flag_enemy = 0;  
        printScore();  
    }  
}  
  
void Game::GameOver()  
{  
    system("cls");                
    COORD p1={28,9};  
    COORD p2={53,15};  
    drawFrame(p1, p2, '=', '|');  
    SetPos(36,12);  
    string str="Game Over!";  
    for(int i=0; i<str.size(); i++)  
    {  
        Sleep(80);  
        cout<<str[i];  
    }  
    Sleep(1000);  
    system("cls");  
    drawFrame(p1, p2, '=', '|');  
    SetPos(31, 11);  
    cout<<"击落敌机:"<<score/5<<" 架";  
    SetPos(31, 12);  
    cout<<"得  分:"<<score;  
    SetPos(31, 13);  
    cout<<"获得称号:"<<title;  
    SetPos(30, 16);  
    Sleep(1000);  
    cout<<"继续? 是(y)| 否(n)制作:老虎哒哒666";  
as:  
    char x=_getch();  
    if (x == 'n')  
        exit(0);  
    else if (x == 'y')  
    {  
        system("cls");  
        Game game;  
        int a = drawMenu();  
        if(a == 2)  
            game.rank = 20;  
        system("cls");  
        drawPlaying();  
        game.Playing();  
    }  
    else goto as;  
}  
int main()  
{  
    srand((int)time(0));   
    HideCursor();  
      
    Game game;  
    int a = drawMenu();  
    if(a == 2)  
        game.rank = 20;  
    system("cls");  
    drawPlaying();  
    game.Playing();  
    return  0; 
}  

薛浩洋 ,我是黄品翔!!!这是打飞机代码!!!

0
0
0
傅文彬
傅文彬
新手天翼
新手天翼

 

猜数游戏:

 

#include<cstdlib>

 

#include<ctime>

 

#include<iostream>

 

using namespace std;

 

int main()

 

{

 

int count=0,ks,js;

 

cout<<"请输入1~99999的数:\n";

 

srand(time(NULL));

 

int r=rand()%99999+1,s;

 

while(cin>>s&&s!=r)

 

{

 

if(s>r)

 

{

 

js=s;

 

cout<<"太大了!!!在"<<js<<"之内"<<endl;

 

}

 

else if(s<r)

 

{

 

ks=s;

 

cout<<"太小了!!!在"<<ks<<"之外"<<endl;

 

}

 

count++;

 

if(count==20)

 

{

 

cout<<"很遗憾,你没有猜中!!!正确答案是"<<r;

 

return 0;

 

}

 

}

 

if(s==r)

 

cout<<"太棒了!!!你猜中了!!!正确答案是:"<<r<<endl<<"你一共猜了"<<count<<"次";

 

else

 

cout<<"输入错误,游戏结束。";

 

return 0;

 

}

 

 

0
傅文彬
傅文彬
新手天翼
新手天翼

#include<iostream>

 

#include<cstdlib>

 

#include<ctime>

 

using namespace std;

 

int main()

 

{

 

int x,y=-1,tim=0;

 

srand(time(NULL));

 

x=rand()%132+75;

 

cout<<"Please guess:";

 

while(x!=y)

 

{

 

cin>>y;

 

tim++;

 

if(y>x) cout<<"too big!"<<endl;

 

if(y<x) cout<<"too small!"<<endl;

 

if(y==x) cout<<"OK! ";

 

}

 

cout<<x<<" "<<tim<<endl;

 

return 0;

 

}

0
夏天
夏天
中级守护
中级守护

#include<iostream>
#include<windows.h>
#include<time.h>
#include<conio.h>
using namespace std;
inline void Refresh(char q[][22], int grade, int gamespeed){
    system("cls");     
 int i,j;
 cout << endl;
 for(i=0;i<22;i++){
     cout << "\t";
  for(j=0;j<22;j++)
   cout<<q[i][j]<<' ';    //  输出贪吃蛇棋盘
        if(i==0) cout << "\t等级为:" << grade;
        if(i==4) cout << "\t自动前进时间";
        if(i==6) cout << "\t间隔为:" << gamespeed << "ms";
  cout<<endl;
 }
}
int main(){
    char tcsQipan[22][22];     //  贪吃蛇棋盘是一个二维数组(如22*22,包括墙壁)
    int i,j;
    for(i=1;i<=20;i++)
        for(j=1;j<=20;j++)
            tcsQipan[i][j]=' ';     //     初始化贪吃蛇棋盘中间空白部分
    for(i=0;i<=21;i++)
        tcsQipan[0][i] = tcsQipan[21][i] = '-';      //初始化贪吃蛇棋盘上下墙壁
    for(i=1;i<=20;i++)
        tcsQipan[i][0] = tcsQipan[i][21] = '|';      //初始化贪吃蛇棋盘左右墙壁
    int tcsZuobiao[2][100];     //蛇的坐标数组
    for(i=0; i<4; i++){
        tcsZuobiao[0][i] = 1;
        tcsZuobiao[1][i] = i + 1;
    }
    int head = 3,tail = 0;
    for(i=1;i<=3;i++)
        tcsQipan[1][i]='*';    //蛇身
    tcsQipan[1][4]='#';       //蛇头
    int x1, y1;           // 随机出米
    srand(time(0));
    do{
  x1=rand()%20+1;
  y1=rand()%20+1;
 }while(tcsQipan[x1][y1]!=' ');
 tcsQipan[x1][y1]='*';
 cout<<"\n\n\t\t贪吃蛇游戏即将开始 !"<<endl;//准备开始;;
 long start;
    int grade = 1, length = 4;
    int gamespeed = 500;  //前进时间间隔
 for(i=3;i>=0;i--){
  start=clock();
  while(clock()-start<=1000);
  system("cls");
  if(i>0)
   cout << "\n\n\t\t进入倒计时:" << i << endl;
  else
   Refresh(tcsQipan,grade,gamespeed);
 }
    int timeover;
    char direction = 77;  // 初始情况下,向右运动
    int x,y;
    while(1){
        timeover = 1;
        start = clock();
        while((timeover=(clock()-start<=gamespeed))&&!kbhit());
             //如果有键按下或时间超过自动前进时间间隔则终止循环
        if(timeover){
            getch();direction = getch();
        }
        switch(direction){
        case 72: x= tcsZuobiao[0][head]-1; y= tcsZuobiao[1][head];break;     // 向上
        case 80: x= tcsZuobiao[0][head]+1; y= tcsZuobiao[1][head];break;      // 向下
        case 75: x= tcsZuobiao[0][head]; y= tcsZuobiao[1][head]-1;break;      // 向左
        case 77: x= tcsZuobiao[0][head]; y= tcsZuobiao[1][head]+1;           // 向右
        }
        if(!(direction==72||direction==80||direction==75 ||direction==77)){   //  按键非方向键
            cout << "\tGame over!" << endl;return 0;
        }
        if(x==0 || x==21 ||y==0 || y==21){   // 碰到墙壁
            cout << "\tGame over!" << endl;return 0;
        }
        if(tcsQipan[x][y]!=' '&&!(x==x1&&y==y1)){ //   蛇头碰到蛇身
            cout << "\tGame over!" << endl;return 0;
        }
        if(x==x1 && y==y1){      //  吃米,长度加1
            length ++;
            if(length>=8){
                length -= 8;
                grade ++;
                if(gamespeed>=200)
                    gamespeed = 550 - grade * 50; // 改变自动前进时间间隔
            }
            tcsQipan[x][y]= '#';
            tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]] = '*';
            head = (head+1)%100;
            tcsZuobiao[0][head] = x;
            tcsZuobiao[1][head] = y;
            do
            {
                x1=rand()%20+1;
                y1=rand()%20+1;
            }while(tcsQipan[x1][y1]!=' ');
            tcsQipan[x1][y1]='*';
            Refresh(tcsQipan,grade,gamespeed);
        }
 
        else{       //  不吃米
            tcsQipan [tcsZuobiao[0][tail]][tcsZuobiao[1][tail]]=' ';
            tail=(tail+1)%100;
            tcsQipan [tcsZuobiao[0][head]][tcsZuobiao[1][head]]='*';
            head=(head+1)%100;
            tcsZuobiao[0][head]=x;
            tcsZuobiao[1][head]=y;
            tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]]='#';
            Refresh(tcsQipan,grade,gamespeed);
        }
    }
    return 0;
}

0
王子凡
王子凡
高级光能
高级光能

问两次干嘛,举报不谢

0
朱智霖
朱智霖
新手守护
新手守护

翻翻看

uses crt;
var
  p:array[1..4,1..5] of byte;
  q:array[1..4,1..5] of char;
  a,b,c,d,e,bs,g,i,j,f,s,x1,y1,x2,y2:byte;
begin
  clrscr;
  cursoroff;
  gotoxy(33,12);  //封面页
  writeln('字 符 翻 翻 看');
  delay(5000);
  clrscr;


  gotoxy(19,10);
  writeln('规则:每次可以翻两个数,如果这两个数对应的');
  gotoxy(19,12);
  writeln('字符相同便消除,请在20步内消除尽量多的字符');
  gotoxy(32,15);
  writeln('按回车键开始游戏');
  readln;
  clrscr;


  randomize;  //随机生成字符
  repeat
    a:=0;b:=0;c:=0;d:=0;e:=0;
    for  i:=1 to 4 do
      for j:=1 to 5 do begin
        p[i,j]:=random(5);
        case p[i,j] of
          0:begin q[i,j]:='#'; a:=a+1; end;
          1:begin q[i,j]:='#'; b:=b+1; end;
          2:begin q[i,j]:='#'; c:=c+1; end;
          3:begin q[i,j]:='#'; d:=d+1; end;
          4:begin q[i,j]:='#'; e:=e+1; end;
        end;
      end;
  until (a mod 2=0) and (b mod 2=0) and (c mod 2=0) and (d mod 2=0) and (e mod 2=0);  //检查字符是否成对


  bs:=21;
  gotoxy(12,20);
  write('the first: ');
  gotoxy(12,21);
  write('the second: ');
  gotoxy(12,5);
  write('step: ');
  cursoron;


  while (bs>1) and (g<20) do begin  //当步数为0或全部消完时结束游戏
    textcolor(white);
    bs:=bs-1;
    gotoxy(18,5);
    write(bs:2);
    for i:=1 to 4 do begin
      gotoxy(32,7+i*2);
      for j:=1 to 5 do if p[i,j]=6 then begin textcolor(darkgray);write(q[i,j]:3);end  //已消除的变成灰色字符
  else begin textcolor(green);write((i-1)*5+j:3);end;  //输出编号
      writeln;
    end;


    gotoxy(24,21);
    clreol;
    repeat  //读入第一个数
      gotoxy(23,20);
      clreol;
      textcolor(yellow);
      readln(f);
      x1:=(f-1) div 5+1;
      y1:=(f-1) mod 5+1;
    until (f>0) and (f<21) and (p[x1,y1]<6);  //防止输入的数超出范围或已消除
    gotoxy(30+y1*3,x1*2+7);
    write(q[x1,y1]:2);
    repeat  //读入第二个数
      gotoxy(24,21);
      clreol;
      textcolor(yellow);
      readln(s);
      x2:=(s-1) div 5+1;
      y2:=(s-1) mod 5+1;
    until (s>0) and (s<21) and (p[x2,y2]<6) and (f<>s);
    gotoxy(30+y2*3,x2*2+7);
    write(q[x2,y2]:2);
    delay(2000);


    if (p[x1,y1]=p[x2,y2]) then begin  //标记消除
      g:=g+2;
      p[x1,y1]:=6;
      p[x2,y2]:=6;
    end;
  end;


  clrscr;
  gotoxy(38,12);
  textcolor(lightred);
  if g=10000 then write('Win!')
          else write('Fail');
  delay(5000);
end.

 

0
黄品翔
黄品翔
初级光能
初级光能

#include<iostream>  
#include<windows.h>  
#include<conio.h>  
#include<time.h>  
#include<string>  
using namespace std;  
typedef struct Frame  

这是打飞机开头代码

!!!

我要回答