鱼C论坛

 找回密码
 立即注册
查看: 1716|回复: 2

这是我写的文字游戏,用的是c语言,改两天都没改出来来bug我

[复制链接]
发表于 2020-2-28 20:15:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在里面写了游戏说明也完成了整个游戏的代码,代码也有注释。在这里我贴出来求助.呜呜呜
代码如下:

#include"stdio.h"
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <windows.h>
#include <mmsystem.h>
#define Graduation_limit_totally  30//总毕业期限 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[20];//存放女主名字的变量
int limit_day=T;//期限。
char girl_name[20];
int choice;//选择变量
        struct player_imformation
        {
                char player_name[10];//角色名字
        float enough;//精力值
                float   grade;//成绩
                float  E_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[10]);
                        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) goto  death_of_bate_offten;
                else
                {
                        player.money=player.money-bribe*multiple;
                        printf(""E""R"周润发:小伙子,别灰心!再来一把吧!咋们肯定能回本!\n");
                }
        }
fake_success:
        {       
                if(player.money<bribe*multiple) goto  death_of_bate_offten;
                else
                {
                        player.money=player.money-bribe*multiple;
                        printf(""E""R"周润发:小伙子,别灰心!再来一把吧!咋们肯定能回本!\n");
                }
        }
}

void bate()
{
        float  bribe;
        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[10];//角色名字
        float enough;//精力值
                float   grade;//成绩
                float  E_Q;//情商
                float   money;//金钱
        }
main.c里面有触发条件
每天可以选择的活动:
1.学习,既然现在没有女朋友,那就武装大脑吧\n"R"
2.赚钱,钱乃身外之物\n"R"
3.找朋友玩,朋友有时候也可以走一辈子\n"R
4.赌钱,如果祖坟冒烟,老子一夜暴富\n"
5.算了,今天我累了.还是洗洗睡吧!
每选择一个活动会消耗一点精力,每天有三点精力,选择睡觉或者精力耗尽则结束一天



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-28 21:37:12 | 显示全部楼层
能折腾
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-2-29 19:21:10 | 显示全部楼层

大佬救命
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 00:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表