C++实现龟兔赛跑游戏案例代码

基本要求:

1.点击”起跑”菜单命令(或工具栏按钮)后,龟兔两幅位图以随机速度、从窗口左侧向右沿直线运动。并在窗口右侧合适位置设立红色终点线。
2.任一运动员(龟或兔)触终点线后,保持位置不变,并等待另一名运动员跑完全程。当第二名运动员触终点线后,程序结束,并在窗口中提示”**获得冠军”。

扩展要求:

1.点击”准备”菜单命令(或工具栏按钮)后,龟兔两名运动员同时出现在起跑线上(窗口左侧红线以内)。
2.记录两位运动员跑完全程的时间,比赛结束时,在窗口中提示”**获得冠军,用时**秒**获得亚军,用时**秒”。
3.添加更多的运动员。为每个运动员设计一个工具栏按钮,点击按钮后,对应的运动员上场,出现在起跑线上(窗口左侧红线以内)。
点击”起跑”菜单(或工具栏)命令后,比赛开始,所有运动员以随机速度向右移动,直到最后一名运动员达到终点,程序结束。
4.其他相关功能(自行设计)。

案例代码

以下是一个使用C++编写的龟兔赛跑程序的案例代码:

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <windows.h>

using namespace std;

void drawTrack(int length) {
    for (int i = 0; i <= length; i++) {
        cout << "-";
    }
    cout << endl;
}

void printRabbit(int pos) {
    for (int i = 0; i < pos; i++) {
        cout << " ";
    }
    cout << "R" << endl;
}

void printTurtle(int pos) {
    for (int i = 0; i < pos; i++) {
        cout << " ";
    }
    cout << "T" << endl;
}

void race() {
    const int trackLength = 100;
    int rabbitPos = 0;
    int turtlePos = 0;

    while (rabbitPos < trackLength && turtlePos < trackLength) {
        system("CLS"); // 清屏

        // 生成随机数,决定兔子和乌龟的前进步长
        int rabbitStep = rand() % 3 + 1;
        int turtleStep = rand() % 3 + 1;

        // 更新兔子和乌龟的位置
        rabbitPos += rabbitStep;
        turtlePos += turtleStep;

        // 绘制赛道
        drawTrack(trackLength);

        // 绘制兔子和乌龟
        printRabbit(rabbitPos);
        printTurtle(turtlePos);

        // 等待一段时间
        Sleep(500);
    }

    // 比赛结束,判断冠军
    system("CLS"); // 清屏
    drawTrack(trackLength);
    if (rabbitPos >= trackLength && turtlePos >= trackLength) {
        cout << "平局!" << endl;
    } else if (rabbitPos >= trackLength) {
        cout << "兔子获得冠军!" << endl;
    } else {
        cout << "乌龟获得冠军!" << endl;
    }
}

int main() {
    srand(time(0));

    cout << "龟兔赛跑准备就绪!" << endl;
    cout << "请点击“起跑”按钮开始比赛:" << endl;
    system("PAUSE");

    race();

    return 0;
}

这个程序可以进行基本要求中描述的功能,包括点击起跑按钮后两个运动员以随机速度向右移动,并在到达终点后显示获胜者。

如果要扩展程序,可以添加更多的运动员,记录每个运动员的用时,并在比赛结束时显示获得冠军和亚军的信息。

© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享