#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int current;
int choice;
int multiplier;
int diamonds = 0;
int addValue;
int gameOver = 0;
srand(time(0));
printf("欢迎来到西瓜大王游戏!\n");
printf("规则:\n");
printf("1. 初始选择一个1-10之间的数字\n");
printf("2. 每轮会随机增加1或2\n");
printf("3. 每轮有机会乘以一个正整数\n");
printf("4. 达到特定分数可获得钻石:\n");
printf(" 25分 -> 1颗钻石\n");
printf(" 50分 -> 2颗钻石\n");
printf(" 75分 -> 3颗钻石\n");
printf(" 100分 -> 4颗钻石\n");
printf("5. 超过100分游戏结束并结算\n\n");
do {
printf("请输入初始数字(1-10): ");
scanf("%d", &choice);
if(choice < 1 || choice > 10) {
printf("无效输入!请输入1-10之间的数字。\n");
}
} while(choice < 1 || choice > 10);
current = choice;
printf("初始数字: %d\n", current);
if(current == 25 || current == 50 || current == 75 || current == 100) {
int newDiamonds = 0;
if(current == 25) newDiamonds = 1;
else if(current == 50) newDiamonds = 2;
else if(current == 75) newDiamonds = 3;
else if(current == 100) newDiamonds = 4;
diamonds += newDiamonds;
printf("恭喜!初始值达到%d分,获得%d颗钻石!\n", current, newDiamonds);
}
while(!gameOver) {
addValue = rand() % 2 + 1;
current += addValue;
printf("\n本轮增加: %d, 当前数值: %d\n", addValue, current);
int newDiamonds = 0;
if(current == 25) newDiamonds = 1;
else if(current == 50) newDiamonds = 2;
else if(current == 75) newDiamonds = 3;
else if(current == 100) newDiamonds = 4;
if(newDiamonds > 0) {
diamonds += newDiamonds;
printf("★★★★★ 达到%d分,获得%d颗钻石!★★★★★\n", current, newDiamonds);
}
if(current > 100) {
gameOver = 1;
printf("超过100分!游戏结束!\n");
break;
}
do {
printf("请输入乘数(正整数,输入0跳过): ");
scanf("%d", &multiplier);
if(multiplier < 0) {
printf("请输入正整数或0!\n");
} else if(multiplier == 0) {
printf("跳过乘法操作。\n");
break;
} else if(multiplier == 1) {
printf("乘以1,数值不变。\n");
break;
} else {
int prev = current;
current *= multiplier;
printf("乘以 %d, 当前数值: %d\n", multiplier, current);
newDiamonds = 0;
if(current == 25) newDiamonds = 1;
else if(current == 50) newDiamonds = 2;
else if(current == 75) newDiamonds = 3;
else if(current == 100) newDiamonds = 4;
if(newDiamonds > 0) {
diamonds += newDiamonds;
printf("★★★★★ 达到%d分,获得%d颗钻石!★★★★★\n", current, newDiamonds);
}
if(current > 100) {
gameOver = 1;
printf("超过100分!游戏结束!\n");
}
break;
}
} while(1);
}
printf("\n游戏结束!最终得分: %d\n", current);
printf("获得的钻石总数: %d\n", diamonds);
if(diamonds >= 10) {
printf("★★★★★ 钻石大王!太厉害了!★★★★★\n");
} else if(diamonds >= 7) {
printf("★★★★ 钻石专家!表现优异!★★★★\n");
} else if(diamonds >= 4) {
printf("★★★ 钻石收藏家!不错的成绩!★★★\n");
} else if(diamonds >= 1) {
printf("★★ 钻石新手!继续努力!★★\n");
} else {
printf("☆ 没有获得钻石,下次加油!☆\n");
}
return 0;
}