这是我写的文字游戏,用的是c语言,改两天都没改出来来bug我
我在里面写了游戏说明也完成了整个游戏的代码,代码也有注释。在这里我贴出来求助.呜呜呜代码如下:
#include"stdio.h"
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <windows.h>
#include <mmsystem.h>
#define Graduation_limit_totally30//总毕业期限 30天
#define T Graduation_limit_totally
#define R " "//旁白美观缩进符号宏定义
#define E "\n\n\n"//旁白模块分隔符号宏定义
#define help game_ruler()
#define show_out show_my_imformation_out()
#define notice show_out
char rose_name;//存放女主名字的变量
int limit_day=T;//期限。
char girl_name;
int choice;//选择变量
struct player_imformation
{
char player_name;//角色名字
float enough;//精力值
float grade;//成绩
floatE_Q;//情商
float money;//金钱
} player={" ",3,20,20,20};
void event_happen(int choice);
float random_study();
float random_money();
float random_E_Q();
float random_date();
float random_date_success();
void bate_fake(int chioce,int multiple,float bribe);
void bate();
void mainly_choice();
void game_ruler();
void show_my_imformation_out();
int main()
{
int i;
printf(""R""R"游戏名:如果我爱你\n"E""R"我想应该每个男孩子心中都有一个得不到的人吧?\n"R"如果再给你一次机会,你能勇敢地站在她面前、大声地告诉她\"我爱你!\"\n"R"那么现在我让时光倒流,再给你一次机会,你愿意勇敢一次吗?\n",girl_name);
printf(""E""R"1.我接受这次机会,并好好把握\n"R"2.我选择放弃,并带着遗憾了却余生\n"R"请做出你的选择:");
scanf("%d",&choice);
if(choice==1)
{
printf(""E""R"我曾经无数次想过回到那年,以弥补曾经的缺憾和懦弱\n\n"R"你还记得你心中挂念的她的名字吗?\n"R"她的名字是:");
scanf("%s",girl_name);
printf(""E""R"而你的名字呢:");
scanf("%s",player.player_name);
}
if(choice!=1)goto why_they_give_up;
for(;limit_day;limit_day--)
{
choice=0;//选择归零
notice;//个人属性
if(random_date()>=200)//随机触发约会
{
printf(""E""R"来自时光老人的信:恭喜你,%s,你现在已经足够优秀了。现在你将有一场和她的约会:\n",player.player_name);
for(i=1;i<=20;i++) printf(""R"提示:约会正在进行着。\n");
switch(random_date_success())
{
case 0: printf(""E""R"提示:要让一个男人成长的话,一次告白失败就够了.\n");
break;
case 1:
printf(""E""R"提示:恭喜你,在你的不懈努力下,你终于抱得美人归了");
goto marry_weeding;
break;
default: printf("hello");
}
for(player.enough=3;player.enough;choice=0)//每一天的模块
{
notice;//个人属性
mainly_chioce();//活动页面主面板
if(!(choice==1||choice==2||choice==3||choice==4||choice==5))
{
printf(""E""R"提示:你的选择有误,既然给你机会了就要好好珍惜\n"R"周树人:鲁迅表示看不起你!\n");
}
else event_happen(choice);
}
}
if(limit_day==0)
printf(""E""R"提示:遗憾终究是遗憾,就算再有一次机会,历史还是会重演!");
why_they_give_up: printf(""E""R"时光老人:我本以为你错过她而遗憾是因为曾经的懵懂和年幼\n"R"而现在在我看来你就懦弱和胆怯,既然在爱情面前你都轻言放弃,\n"R"那么你又有什么可以热爱的呢?\n"R"既然生命暗淡无光,又何必来世上白白走一遭呢?\n"R"太宰治:生而为人,我很抱歉!");
death_of_bate: printf(""R"鲁迅:当你把暴富的梦寄托在赌场,那我劝你还是多吃肾宝找个富婆吧!");
marry_weeding: printf(""E""R"提示:恭喜你,你只用了%d天,终于弥补了你的遗憾!",100-limit_day);
return 0;
}
void event_happen(int choice)
{
switch(choice)
{
case 1: float grade_add;
float grade_add=random_study();
printf(""E""R""R"周恩来说过:过为中华之崛起而读书\n"R""R"科学研究表明:学习不仅让他成为总理,还顺便泡来了邓颖超\n"R"学习完毕:成绩:%d+%d\n"R"精力:%d-%d\n",play.grade,int(float(grade_add)*(float(player.E_Q)/100+1));
player.grade=player.grade+(grade_add)*(player.E_Q/100+1));
player.enough--;
break;
case 2:float money_add;
float money_add=random_money()*(player.money/1000+player.E_Q/100+1);
printf(""E""R""R"今天,你找到一份兼职,那是在街头传单的累活:日晒风吹,本就偏黄的皮肤竟有丝黝黑\n"R""R"经过数个小时努力,你终于拿到了薪水%f\n"R""R"你猛然发现街角那家花店门口,落日的余晖洒在花束上\n"R""R"一束玫瑰点缀在百合间,红色更深许些,眯眼一看:芒刺上竟泛着些金色\n"R""R"那是故人吗?岁月不会抹杀美,金色的麦芒不会是深红的玫瑰.\n",&money_add);
player.money=money_add+player.money;
player.enough--;
break;
case 3: print(""E""R"旁白:你去好朋友家和朋友更加亲密了,你们谈天说地,不知不知觉你渐渐学会如何交谈。\n");
player.E_Q=player.E_Q+random_E_Q();
player.enough--;
break;
case 4: bate();
player.enough--;break;
case 5:printf(""E""R"旁白:一觉醒来,又是新的一天\n");
player.enough-=player.enough;
break;
default: printf(""E""R"旁白:我只是点错了键盘而已\n");
}
notice();
}
float random_study()//学习的函数定义
{
float grade_add;
srand((unsigned)time(NULL));
grade_add=rand()%6;
return grade_add;
}
float random_money()//赚钱的函数定义
{
float money_add;
srand((unsigned)time(NULL));
money_add=rand()%81+20;
return money_add;
}
float random_E_Q()//朋友交谈函数
{
float E_Q_add;
srand((unsigned)time(NULL));
E_Q_add=float(rand()%4+1);
return E_Q_add;
}
float random_date()//约会触发的随机事件函数
{
float P_date;
srand((unsigned)time(NULL));
P_date=rand()%100;
P_date=P_date+player.E_Q/8+player.grade/10+player.money/8;
return P_date;
}
float random_date_success()//约会成功概率控制函数
{
float P_date_success;
float tolly_P;
srand((unsigned)time(NULL));
P_date_success=rand()%61+20;
tolly_P=player.money/20+player.grade*0.8+player.E_Q*1.2+player.enough/10+P_date_success;
if(tolly_P>=260)
return 1;
else return 0;
}
void bate_fake(int chioce,int multiple,float bribe)//赌博游戏,判断部分
{
float p_fake; //骗子概率,百分百输钱
int judge_ment;
srand((unsigned)time(NULL));
p_fake=rand()%11;
if(p_fake>=7) goto fake_success;
judge_ment=rand()%2+1;
if(juge_ment==choice)
{
player.money=player.money+bribe*multiple;
printf(""E""R"周润发:小伙子,不错啊!你猜对了!再来一把大的吧!\n");
}
else
{
if(player.money<bribe*multiple) gotodeath_of_bate_offten;
else
{
player.money=player.money-bribe*multiple;
printf(""E""R"周润发:小伙子,别灰心!再来一把吧!咋们肯定能回本!\n");
}
}
fake_success:
{
if(player.money<bribe*multiple) gotodeath_of_bate_offten;
else
{
player.money=player.money-bribe*multiple;
printf(""E""R"周润发:小伙子,别灰心!再来一把吧!咋们肯定能回本!\n");
}
}
}
void bate()
{
floatbribe;
int multiple,
printf(""E""R"孙二娘:欢迎来到老娘的良心赌场,隔壁有家当铺.\n"R"客官要不要考虑把您的梦想卖个好价钱?\n"R"周润发:我这里有比大小?要不要来一把?\n");
printf(""E""R"R"1.是\n"R""R"2.否");
scanf("%d",&choice);
if(choice==1)
{
printf(""E""R"周润发:小伙子请输入你的赌注!命运的车轮开始加速咯!\n"R"");
scanf_bribe:printf(""E""R"周润发:小伙子请输入你的赌注!命运的车轮开始加速咯!\n"R"");//当输入的赌金不足以支付时会跳转
scanf("%f",&bribe);
if(bribe>=player.money) goto scanf_bribe;//优化赌金输入
printf(""E""R"周润发:小伙子请输入你的倍数!\n");
scanf("%d",&multiple);
if(multiple/10==0)multiple=1;
else multiple=multiple/10;//赌注优化语句
printf(""R"只有一只手的荷官:老弟,很棒!我当年就是这样才输了一只手和一辈纸的!\n"R"荷官:好啦好哦啦,你说这骰子是大还是小\n"R"1.大"R""R"2.小");
scanf("%d",&choice);
if(!(choice==1||choice==2||))choice=2;//优化二选一choice
bate_fake(chioce,multiple,bribe)
}
if(choice==2) goto reuse;
}
void mainly_choice()
{
printf(""E""R"又是新的一天到来,你应该做些什么来追到%s\n"R"1.学习,既然现在没有女朋友,那就武装大脑吧\n"R"2.赚钱,钱乃身外之物\n"R"3.找朋友玩,朋友有时候也可以走一辈子\n"R"4.赌钱,如果祖坟冒烟,老子一夜暴富\n"R"5.算了,今天我累了.还是洗洗睡吧!",girl_name);
scanf("%d",&choice);
}
void game_ruler()
{
printf(""E""R""R"胜利条件:和你喜欢的女生约会成功。\n"E"你要在短暂的时间内不断提升自己,进而增加约会成功的概率。\n"E"当然系统会随机让你选择是否发起约会\n"E"我们现在已知的是你越优秀,就越容易抱得美人归——开发人员如是说\n");
}
void show_my_imformation_out()
{
printf("距离中考还有%d\n姓名:%s\n精力:%.1f\n成绩:%.1f\n情商:%.1f\n金钱:%.\n",limit_day,player.player_name,player.enough,player.grade,player.E_Q,player.money);//调出状态函数
}
游戏说明:
游戏介绍:
你扮演一个离中考只有30天的初中生,你要变得优秀才能追到你同桌。你每天都会随机触发和她约会,但是当你的各个属性综合来讲到达一定值时你才会约会成功。30天结束没约会成功就算输。
你拥有的属性:struct player_imformation
{
char player_name;//角色名字
float enough;//精力值
float grade;//成绩
floatE_Q;//情商
float money;//金钱
}
main.c里面有触发条件
每天可以选择的活动:
1.学习,既然现在没有女朋友,那就武装大脑吧\n"R"
2.赚钱,钱乃身外之物\n"R"
3.找朋友玩,朋友有时候也可以走一辈子\n"R
4.赌钱,如果祖坟冒烟,老子一夜暴富\n"
5.算了,今天我累了.还是洗洗睡吧!
每选择一个活动会消耗一点精力,每天有三点精力,选择睡觉或者精力耗尽则结束一天
{:10_275:}能折腾 ba21 发表于 2020-2-28 21:37
能折腾
大佬救命
页:
[1]