C語言-香港跑馬

編程語言 C語言 賽馬 教育 文雅的程序員 2017-06-25

C語言-香港跑馬

C語言-香港跑馬

C語言-香港跑馬

C語言-香港跑馬

C語言-香港跑馬

#include <stdio.h>

#include <time.h>

#include <windows.h>

//定義宏

#define HORSENUM6//賽馬數量

#define DISTANCE70//賽馬跑道的長度

#define MAXSTEP5//賽馬跑動一次的最長距離

#define ACCOUNT100000//我的賬戶

#define MINPAY3000//最低下注額

char horse[] = {'%', '&', '#', '@', '$', '!'};

//獲取下注額

int get_deposit()

{

int deposit;

printf("請下注(最低下注額為%d元):", MINPAY);

while(!scanf("%d", &deposit) || deposit < MINPAY)

{

printf("錯誤,請重新下注(最低下注額為%d元):", MINPAY);

fflush(stdin);

}

return deposit;

}

//選擇賽馬的編號

int get_number()

{

int num;

printf("請選擇賽馬的編號(1~%d):", HORSENUM);

while(!scanf("%d", &num) || num < 1 || num > HORSENUM)

{

printf("錯誤,請重新選擇賽馬的編號(1~%d):", HORSENUM);

fflush(stdin);

}

return num;

}

//賽馬開始比賽

void run(int rank[])

{

int i, j;

int index = 1;//賽馬的名次

int dis[HORSENUM] = {0};//記錄所有賽馬已經跑出的距離

memset(rank, 0, sizeof(int) * HORSENUM);//把rank數組中的元素全部賦值為0

while(index <= HORSENUM)

{

system("cls");

printf("--------歡迎來到香港賭馬場-----------\n");

for(i = 0; i < HORSENUM; ++i)

{

dis[i] += rand() % MAXSTEP;

if(dis[i] >= DISTANCE)

{

dis[i] = DISTANCE;

if(!rank[i])

rank[i] = index++;

}

printf("NO.%d:", i + 1);

for(j = 0; j < dis[i]; ++j)

printf(".");

if(rank[i])

printf("%d\n", rank[i]);

else

printf("%c\n", horse[i]);

}

Sleep(200);

}

}

int main()

{

int deposit; //下注額

int account = ACCOUNT;//我的賬戶

int rank[HORSENUM];//存儲賽馬的名次

int num;//獲取賽馬的編號

int bonus;//獎金

char answer;

srand((unsigned)time(0));//初始化隨機種子

printf("你現在的賬戶餘額為%d元!\n", account);

while(1)

{

if(account < MINPAY)

{

printf("你的錢已經不夠下注了,請離開!\n");

break;

}

//獲取下注額

while((deposit = get_deposit()) > account)

{

printf("你的賬戶沒有這麼多錢了!\n");

}

num = get_number() - 1;//獲取賽馬的編號

run(rank);

printf("\n********************************************\n");

if(rank[num] == 1)

{

bonus = deposit * 5;

printf("神啊!你太厲害了,%d號賽馬竟然跑了第一名,獲得了5倍獎金%d元.\n",

num + 1, bonus);

account += bonus;

}

else if(rank[num] == 2)

{

bonus = deposit * 2;

printf("厲害厲害了,%d號賽馬竟然跑了第二名,獲得了2倍獎金%d元.\n",

num + 1, bonus);

account += bonus;

}

else

{

deposit = deposit * rank[num] / HORSENUM;

printf("遺憾!你選擇的%d號賽馬只獲得了第%d名, 將扣除%d元!\n",

num + 1, rank[num], deposit);

account -= deposit;

}

printf("你現在的賬戶餘額是%d元.\n", account);

printf("你還想再玩一次嗎(y or n)?");

fflush(stdin);

scanf(" %c", &answer);

if(answer != 'y')

break;

}

return 0;

}

C語言-香港跑馬

學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入學習交流群

340651687,我們一起學C/C++!

相關推薦

推薦中...