1、下旨选妃, 即新增加一位新的妃子,然后其他妃子的好感度减 10 点。
2、 翻牌宠幸, 主要是改变妃子的等级状态,增加其好感度,减少其他妃子好感度。
3、 打入冷宫, 即删除一位妃子,然后其他所有的妃子好感度加 10 点。
4、 朕的爱妃呢 主要查找功能,根据输入的名字查找妃子信息。
#include <stdio.h> #include <string.h> void menu(); void state_list(char names[10][10] , char levels[10][10] , int loves[10] , int count); int fun1(char names[10][10] , char levels[10][10] , int loves[10] , int count); void fun2(char names[10][10] , char levels[10][10] , int loves[10] , int count); void level_rise(char name[10] , char level[10] ,char levels[10][10] ,int temp); int fun3(char names[10][10] , char levels[10][10] , int loves[10] , int count); void fun4(char names[10][10] , char levels[10][10] , int loves[10] , int count); int main() { int days=1,n;//时间,选项“1,2,3,4 ” int count=4; //当前已有妃子的数目 char names[10][10]={"沉鱼","落雁","闭月","羞花"};//妃子姓名 char levels[10][10]={"贵妃","妃","嫔","贵人"};//妃子等级;皇贵妃,贵妃(100-90),妃(89-80),嫔(79-70),贵人(69-65),常在(64-60),答应 // char levelz[10][10]={"皇后","皇贵妃","贵妃","妃","嫔","贵人","常在","答应"}; int loves[10]={90,80,70,65}; //好感度 while(1) { printf("第%d天:\n", days++); menu(); scanf("%d",&n); getchar(); if(n==1) //调用选项1 count = fun1(names , levels , loves, count); if(n==2) //调用选项2 fun2(names , levels ,loves, count); if(n==3) //调用选项3 count = fun3(names , levels , loves, count); if(n==4) //调用选项4 fun4(names , levels , loves, count); } return 0; } //选项菜单 void menu() { printf("1.皇帝陛下下旨选妃!\t\t(增加)\n"); printf("2.翻牌宠幸,嘿嘿嘿\t\t(修改状态)\n"); printf("3.打入冷宫,滚滚滚\t\t(删除)\n"); printf("4.爱妃!朕的爱妃你在哪?\t(查找)\n"); printf("陛下请选择:"); } //1.皇帝陛下下旨选妃(增加)即新增加一位新的妃子,然后其他妃子的好感度减 10 点。 int fun1(char names[10][10] , char levels[10][10] , int loves[10] , int count) { int i; char name[10]; printf("爱江山更爱美人,万家千丽一点红~\n"); printf("娘娘名讳:"); scanf("%s",name); printf("\n"); int flag=0; for(i=0;i<count;i++) { if(strcmp(names[i],name)==0) flag=1; } if(flag!=1) { strcpy( names[count] , name ); strcpy( levels[count] , "妃" ); //新纳入宫中的妃子都深得皇上喜爱,初始等级都为“妃 ” loves[count]=80; //初始好感度80 for(i=0;i<count;i++) loves[i]-=10; count++; printf("新增妃子,其他妃嫔好感度-10\n"); } else { printf("美人已在后宫之中,陛下太贪心了呢!"); } printf("\n"); state_list(names , levels , loves, count); //调用状态列表 printf("\n"); return count; //新纳入了妃子,数目增加 } //2.翻牌宠幸,嘿嘿嘿(修改状态)主要是改变妃子的等级状态,增加其好感度,减少其他妃子好感度。 void fun2(char names[10][10] ,char levels[10][10] , int loves[10] , int count) { char name[10]; int i,temp; printf("陛下请输入今晚要宠幸的妃子的姓名:"); scanf(" %s",name); for(i=0;i<count;i++) { if(strcmp(names[i],name)==0) { temp=i; loves[temp]+=10; } } for(i=0;i<temp;i++) { loves[i]-=10; } for(i=temp+1;i<count;i++) { loves[i]-=10; } char level[10]; strcpy( level , levels[temp]); level_rise( name , level , levels, temp ); //调用等级提升函数 printf("\n"); printf("憔悴容华怯对春,寂寞宫殿锁闭门。\n"); printf("此身却羡宫中树,不失芳时雨露思。\n"); printf("我恨这深宫清冷,所有娘娘好感度-10!\n"); printf("\n"); state_list( names , levels , loves , count); printf("\n"); } //等级提升,宠幸一次等级提升一级 void level_rise(char name[10] , char level[10], char levels[10][10] ,int temp) { if(strcmp(level,"贵人")==0) { strcpy( levels[temp] , "嫔" ); } if(strcmp(level,"嫔")==0) { strcpy( levels[temp] , "妃" ); } if(strcmp(level,"妃")==0) { strcpy( levels[temp] , "贵妃" ); } if(strcmp(level,"贵妃")==0) { strcpy( levels[temp] , "皇贵妃" ); } if(strcmp(level,"皇贵妃")==0) strcpy( levels[temp] , "皇后" ); printf("\n"); printf("***************************\n"); printf("Duang~%s的等级提升到%s\n",name,levels[temp]); printf("***************************\n"); } //3.打入冷宫,滚滚滚(删除)即删除一位妃子,然后其他所有的妃子好感度加 10 点。 int fun3(char names[10][10] , char levels[10][10] , int loves[10] , int count) { char name[10]; int i,temp; printf("陛下要将哪位娘娘打入冷宫:"); scanf("%s",name); int flag=0; for(i=0;i<count;i++) { if(strcmp(names[i],name)==0) { flag=1; temp=i; } } if(flag==1) { for(i=temp;i<count;i++) { strcpy( names[i] , names[i+1] ); strcpy( levels[i] , levels[i+1] ); loves[i]=loves[i+1]; } for(i=0;i<count-1;i++) loves[i]+=10; count--; printf("%s被打入冷宫,终于除掉这个小贱人了,哈哈哈。所有娘娘好感度+10!\n",name); } else { printf("虚惊一场,无人打入冷宫,该吃吃该喝喝,快乐人生"); } printf("\n"); state_list(names , levels , loves, count); printf("\n"); return count; } //4.爱妃!朕的爱妃你在哪?(查找)主要查找功能,根据输入的名字查找妃子信息 void fun4(char names[10][10] , char levels[10][10] , int loves[10] , int count) { int i; char name[10]; printf("陛下您要找哪位娘娘,请输入姓名:"); scanf("%s",name); printf("\n"); printf("爱妃!朕可算找到你了,朕愿意为了你烽火戏诸侯!"); printf("%s的好感度+10\n",name); printf("\n"); for(i=0;i<count;i++) { if(strcmp(names[i],name)==0) loves[i]+=10; } printf("\n"); state_list(names , levels , loves, count); printf("\n"); } //状态列表 void state_list(char names[10][10] , char levels[10][10] , int loves[10] , int count) { int i; printf("%-8s%-8s%-8s\n","姓名","等级","好感度"); printf("----------------------\n"); for(i=0;i<count;i++) printf("%-8s%-8s%-8d\n",names[i],levels[i],loves[i]); }