C语言摸箱子游戏:随机道具,等级判定,点券系统
好的,以下是以C语言编写的满足您设定的程序:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef enum {
GARBAGE, SMALL_PART, DAMAGED_BOOT, DAMAGED_CPU, HEART_NECKLACE, AMMO_BOX, MAP, DIRT,
GOLD_BRICK, GOLD_INGOT, LENS, CPU_PROCESSOR, MUTATED_SHOULDER_BONE, BLUEPRINT, CPU_SMALL_PROCESSOR, TECH_PART,
TABLET, LOST_DOG_TAG, MONEY_BOX, FRYING_PAN, MAJOR_COMPONENT, COAT
} Item;
typedef struct {
Item items[4];
int count;
} Box;
void initialize(Box* box) {
int i;
box->count = 0;
for (i = 0; i < 4; i++) {
box->items[i] = GARBAGE;
}
}
Item getRandomItem() {
int random = rand() % 100;
if (random < 5) return GOLD_BRICK;
if (random < 15) return GOLD_INGOT;
if (random < 25) return LENS;
if (random < 35) return CPU_PROCESSOR;
if (random < 45) return MUTATED_SHOULDER_BONE;
if (random < 55) return BLUEPRINT;
if (random < 65) return CPU_SMALL_PROCESSOR;
if (random < 75) return TECH_PART;
if (random < 85) return TABLET;
if (random < 95) return LOST_DOG_TAG;
if (random < 100) return MONEY_BOX;
return GARBAGE;
}
void searchBox(Box* box) {
int i;
printf("正在搜索箱子...
");
for (i = 0; i < 5; i++) {
printf("%d秒...
", 5 - i);
sleep(1);
}
printf("找到一个箱子!
");
for (i = 0; i < 4; i++) {
box->items[i] = getRandomItem();
}
box->count = rand() % 3 + 2;
}
void printItem(Item item) {
switch (item) {
case GARBAGE:
printf("垃圾
");
break;
case SMALL_PART:
printf("小零件
");
break;
case DAMAGED_BOOT:
printf("小靴子破损
");
break;
case DAMAGED_CPU:
printf("破损的CPU
");
break;
case HEART_NECKLACE:
printf("爱心项链
");
break;
case AMMO_BOX:
printf("子弹盒
");
break;
case MAP:
printf("地图
");
break;
case DIRT:
printf("泥土
");
break;
case GOLD_BRICK:
printf("金砖
");
break;
case GOLD_INGOT:
printf("金条
");
break;
case LENS:
printf("镜头
");
break;
case CPU_PROCESSOR:
printf("CPU处理器
");
break;
case MUTATED_SHOULDER_BONE:
printf("变异的肩骨
");
break;
case BLUEPRINT:
printf("蓝图
");
break;
case CPU_SMALL_PROCESSOR:
printf("CPU小处理器
");
break;
case TECH_PART:
printf("科技部件
");
break;
case TABLET:
printf("平板电脑
");
break;
case LOST_DOG_TAG:
printf("遗失的狗牌
");
break;
case MONEY_BOX:
printf("鼓鼓的现金盒
");
break;
case FRYING_PAN:
printf("平底锅
");
break;
case MAJOR_COMPONENT:
printf("大部件零件
");
break;
case COAT:
printf("外套
");
break;
}
}
void openBox(Box* box) {
if (box->count == 0) {
printf("箱子是空的!
");
return;
}
printf("正在打开箱子...
");
printf("找到了以下物品:
");
int i;
for (i = 0; i < box->count; i++) {
printf("- ");
printItem(box->items[i]);
}
initialize(box);
}
int main() {
srand(time(NULL));
int points = 10000;
Box box;
while (1) {
printf("
选择一个选项:
");
printf("1. 进行五秒内搜查
");
printf("2. 花费10点券立即打开箱子
");
printf("3. 退出游戏
");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1: {
if (points < 10) {
printf("点券不足!
");
break;
}
searchBox(&box);
points -= 10;
printf("剩余点券:%d
", points);
break;
}
case 2: {
if (points < 10) {
printf("点券不足!
");
break;
}
openBox(&box);
points -= 10;
printf("剩余点券:%d
", points);
break;
}
case 3:
printf("退出游戏。
");
return 0;
default:
printf("无效的选项!
");
break;
}
}
return 0;
}
请注意,此程序是一个简单的文本界面程序,用于演示您提供的设定。它依据你的选择操作箱子,并模拟了搜查箱子和打开箱子时的随机物品生成。此程序仅供参考,您可以根据自己的需求进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/TN4 著作权归作者所有。请勿转载和采集!