以下是一個使用C語言編寫的新的龜兔賽跑游戲:
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int main() {
- ????int distance, turtle_speed, rabbit_speed, turtle_time, rabbit_time, rabbit_lead;
- ????srand(time(NULL)); // 隨機數種子
- ????// 初始化變量
- ????distance = 100; // 賽跑距離為100米
- ????turtle_speed = 1; // 烏龜速度為1米/分鐘
- ????rabbit_speed = 5; // 兔子速度為5米/分鐘
- ????turtle_time = 0; // 烏龜所用時間為0分鐘
- ????rabbit_time = 0; // 兔子所用時間為0分鐘
- ????rabbit_lead = 0; // 兔子領先距離為0米
- ????printf("新龜兔賽跑游戲\n");
- ????printf("賽跑距離: %d米\n", distance);
- ????printf("烏龜速度: %d米/分鐘\n", turtle_speed);
- ????printf("兔子速度: %d米/分鐘\n", rabbit_speed);
- ????printf("開始賽跑!\n");
- ????// 模擬賽跑過程
- ????while (distance > 0) {
- ????????// 烏龜前進
- ????????turtle_time += 1; // 烏龜用時加1分鐘
- ????????if (turtle_time == 60) { // 烏龜每60分鐘走1米
- ????????????turtle_time = 0;
- ????????????distance--;
- ????????}
- ????????// 兔子前進
- ????????rabbit_time += 1; // 兔子用時加1分鐘
- ????????if (rabbit_time == 60) { // 兔子每60分鐘走5米
- ????????????rabbit_time = 0;
- ????????????distance -= rabbit_speed;
- ????????}
- ????????// 判斷勝負
- ????????if (distance <= 0) {
- ????????????break;
- ????????} else if (distance >= rabbit_speed) { // 如果兔子能夠到達終點,則計算領先時間
- ????????????rabbit_lead = rabbit_time + (distance / rabbit_speed) * 60 - turtle_time;
- ????????} else { // 如果兔子不能到達終點,則計算剩余距離和時間
- ????????????distance -= rabbit_speed;
- ????????????rabbit_lead = rabbit_time + (distance / rabbit_speed) * 60 - turtle_time;
- ????????}
- ????}
- ????// 輸出結果
- ????printf("賽跑結束!\n");
- ????printf("烏龜所用時間: %d分鐘\n", turtle_time);
- ????printf("兔子所用時間: %d分鐘\n", rabbit_time);
- ????if (rabbit_lead > 0) { // 如果兔子領先,則輸出領先時間,否則輸出落敗信息
- ????????printf("兔子領先烏龜%d分鐘!\n", rabbit_lead);
- ????} else {
- ????????printf("兔子落敗!\n");
- ????}
- ????return 0;
- }
好的,以下是對該程序的進一步解釋:
- 在程序的開始部分,我們引入了三個頭文件,這些頭文件提供了我們需要的一些基本功能:
- stdio.h:用于輸入和輸出操作,例如printf()和scanf()函數。
- stdlib.h:包含了一系列有用的函數和宏,例如rand()函數用于生成隨機數。
- time.h:提供了與時間相關的函數和數據類型,例如time()函數用于獲取當前時間。
- 我們使用srand()函數初始化隨機數生成器。這個函數需要一個種子值,我們使用當前時間作為種子值,這樣每次運行程序時生成的隨機數都會不同。
- 我們定義了一些變量來模擬賽跑的過程:
- distance:表示賽跑的距離,初始值為100米。
- turtle_speed:表示烏龜的速度,每分鐘走1米。
- rabbit_speed:表示兔子的速度,每分鐘走5米。
- turtle_time:表示烏龜所用的時間,初始值為0分鐘。
- rabbit_time:表示兔子所用的時間,初始值為0分鐘。
- rabbit_lead:表示兔子領先的時間,初始值為0分鐘。
- 在模擬賽跑的過程中,我們使用一個while循環來模擬烏龜和兔子前進的過程。循環條件是賽跑距離大于0米。在循環中:
- 烏龜每60分鐘走1米,所以我們將turtle_time加1,然后判斷是否走到了終點,如果走到了終點,就跳出循環。
- 兔子每60分鐘走5米,所以我們將rabbit_time加1,然后判斷是否走到了終點,如果走到了終點,就計算領先時間,然后跳出循環。
- 最后,我們輸出烏龜和兔子所用的時間以及兔子的領先時間。如果兔子領先,我們輸出“兔子領先烏龜XX分鐘!”,如果兔子落敗,我們輸出“兔子落敗!”。