高山 发表于 2022-10-30 18:24:43

每周一练第12期 鱼C生活小游戏【C++版块提升计划】【限免】

本帖最后由 高山 于 2022-11-5 17:01 编辑

好久不见,终于等到我亲自发了~
我给大家准备了1个大惊喜~

先上图~


看完了没?期不期待?
期待就先说说程序运行过程吧!
首先,程序询问用户名,并“嘟”一声提示注册成功
然后,随机设置初始积分
选择您要做的事件
看到第4个图了吗?那是触发敏感词了,马上会被随机扣分
其他见程序内帮助
OK,上代码
#include<iostream>
#include<string>
#include <cstdlib>
#include<windows.h>
#include<time.h>
using namespace std;
string name;
int yu=1;//鱼币
int ry=1;//荣誉
int gx=1;//贡献
int jsz=1;//技术值
int cb=1;//C币
void jfxs()
{
      cout<<"您剩余鱼币:"<<yu<<endl;
      cout<<"您剩余荣誉:"<<ry<<endl;
      cout<<"您剩余贡献:"<<gx<<endl;
      cout<<"您剩余技术值:"<<jsz<<endl;
      cout<<"您剩余C币:"<<cb<<endl;
}
void live()
{
      cout<<"欢迎你来到鱼C生活~"<<endl;
      cout<<"请告诉我你的名字:";
      cin>>name;
      cout<<"注册成功!你的名字是:"<<name<<endl<<"如有问题访问fishc.com.cn哦"<<endl;
      Beep(800,200);
      Sleep(1500);
      system("cls");
}
void start()
{
      srand((int)time(0));
      yu=1 + rand() % 20;
      ry=1 + rand() % 20;
      gx=1 + rand() % 10;
      jsz=1 + rand() % 10;
      cb=1 + rand() % 10;
      cout<<name<<",你现在的初始鱼币是(系统默认赠送从1到20取随机数)"<<yu<<endl;
      cout<<name<<",你现在的初始荣誉是(系统默认赠送从1到20取随机数)"<<ry<<endl;
      cout<<name<<",你现在的初始贡献是(系统默认赠送从1到10取随机数)"<<gx<<endl;
      cout<<name<<",你现在的初始技术值是(系统默认赠送从1到10取随机数)"<<jsz<<endl;
      cout<<name<<",你现在的初始C币是(系统默认赠送从1到10取随机数)"<<cb<<endl;
      system("pause");
      system("cls");
}
void help()
{
      int p;
      cout<<"请问您是否需要帮助?"<<endl;
      cout<<"跳过输入1,查看输入2:" ;
      cin>>p;
      if(p==2)
      {
                cout<<"发帖增加1~3荣誉,1~2鱼币,1贡献,其他事项跟鱼C差不多、字数达30字可以触发神秘大礼~"<<endl;
                cout<<"评分会随机增加C币,但会消耗0~5枚荣誉、鱼币和0~3枚贡献"<<endl;
                cout<<"发表回复可以增加1荣誉、随机鱼币"<<endl;
                cout<<"帖子触及设定的敏感词也会被扣分且删除"<<endl;
      }
      system("pause");
      system("cls");
}
void ft()
{
      string title;
      string nr;
      int ybj;//扣去的鱼币
      int ryj;//扣去的荣誉
      srand((int)time(0));
      ybj=1 + rand() % 5;
      ryj=1 + rand() % 5;
      cout<<"现在来到鱼C帖子编辑器"<<endl;
      cout<<"请输入帖子标题(输入exit可退出编辑):";
      cin>>title;
      if(title=="1"||title=="水帖"||title=="蹭一下"||title==""||title=="无"||title=="刷一下"||title=="a"||title=="e")
      {
                cout<<"发现刷分行为,您的帖子已被删除,您的鱼币减去"<<ybj<<",您的荣誉减去"<<ryj<<endl;
                jfxs();
                yu-=ybj;
                ry-=ryj;
                system("pause");
                system("cls");
                return;
      }
      if(title!="exit")
      {
                cout<<"记录成功,您的标题为:"<<title;
                system("cls");
                cout<<"正在编辑{"<<title<<"}帖子,操作人用户名为"<<name<<endl;
                cout<< "请输入帖子内容(1行)(输入exit可退出编辑):";
                cin>>nr;
                if(nr!="exit")
                {
                        if(nr=="1"||nr=="水帖"||nr=="蹭"||nr==""||nr=="无"||nr=="刷一下"||nr=="a"||nr=="e")
                        {
                              cout<<"发现刷分行为,您的帖子已被删除,您的鱼币减去"<<ybj<<",您的荣誉减去"<<ryj<<endl;
                              yu-=ybj;
                              ry-=ryj;
                              system("pause");
                              system("cls");
                              return;
                        }
                        cout<<"发帖完成!"<<endl;
                        cout<<"您的荣誉+"<<ryj<<",您的鱼币+"<<ybj<<"您的贡献+1"<<endl;
                        ry+=ryj;
                        yu+=ybj;
                        gx++;
                        jfxs();
                        system("pause");
                        system("cls");
                }
      }

}
void ht()
{
      string nr;
      int jl;
      jl=1+rand()%5;
      srand((int)time(0));
      cout<<"欢迎进行回帖,您现在有5种方式,100鱼币,10鱼币,5鱼币,1鱼币和无奖励五种,回复后将随机抽取"<<endl;
      cout<<"请输入您的回帖内容(输入exit退出编辑,请勿灌水,灌水直接扣除5鱼币5荣誉)";
      cin>>nr;
      if(nr=="1"||nr=="水帖"||nr=="蹭"||nr==""||nr=="无"||nr=="刷一下"||nr=="a"||nr=="e")
      {
                cout<<"发现刷分行为,您的帖子已被删除,您的鱼币-5,您的荣誉-5"<<endl;
                yu-=5;
                ry-=5;
                system("pause");
                system("cls");
                return;
      }
      if(nr!="exit")
      {
                cout<<"回帖发表成功!您目前抽中的是";
                if(jl==1)
                {
                        cout<<"100鱼币!"<<endl;
                        yu+=100;
                }
                if(jl==2)
                {
                        cout<<"10鱼币!"<<endl;
                        yu+=10;
                }
                if(jl==3)
                {
                        cout<<"5鱼币!"<<endl;
                        yu+=5;
                }
                if(jl==4)
                {
                        cout<<"1鱼币!"<<endl;
                        yu+=1;
                }
                if(jl==5)
                {
                        cout<<"很遗憾,没有奖励"<<endl;
                }
                cout<<"还会收获1荣誉!"<<endl;
                ry++;
                jfxs();
                system("pause");
                system("cls");
      }

      
}
void abc()
{
      int ybj,ryj,gxj,cbj;
      int p;
      srand((int)time(0));
      ybj=1 + rand() % 3;
      ryj=1 + rand() % 3;
      gxj=1 + rand() % 3;
      cbj=1 + rand() % 5;
      cout<<"请问您现在要干什么?" <<endl;
      cout<<"1.发帖 2.显示积分 3.给帖子评分"<<endl;
      cout<<"4.回帖 "<<endl;
      cout<<"请输入操作项目前的数字:";
      cin>>p;
      if(p==1)
      {
                ft();
      }
      if(p==2)
      {
                jfxs();
                system("pause");
                system("cls");
      }
      if(p==3&&yu>=ybj&&gx>=gxj)
      {
                cout<<"您已评分鱼币"<<ybj<<",您已评分荣誉"<<ryj<<",您已评分贡献"<<gxj<<",您已收获C币"<<cbj<<endl;
                yu-=ybj;
                gx-=gxj;
                ry-=ryj;
                cb+=cbj;
                jfxs();
                system("pause");
                system("cls");
      }
      if(p==3)
      {
                cout<<"如果您收到评分成功提示,说明您已评分成功,否则为某项无相应积分,可增加积分或重新再试(更换随机数)"<<endl;
                system("pause");
                system("cls");
         }
         if(p==4)
         {
               ht();
         }
}
int main()
{
      live();
      start();
      help();
      while(true)
      {
                abc();
      }
}这边没有C++的可以下载现成exe文件

还有一个活动,您可以帮我添加敏感词
请跟我上代码
|| nr=="+ 敏感词内容 "并且在第二行再上代码
|| title=="+ 敏感词内容 + "OK,再见
上一期:鸡兔同笼
下一期:二叉树问题

高山 发表于 2022-10-30 18:28:28

本帖最后由 高山 于 2022-10-30 18:29 编辑

@不二如是 @zhangjinxuan @hveagle @陈尚涵 @编程追风梦 @元豪 @xiaosi4081 @漫星闪求支持

zhangjinxuan 发表于 2022-10-30 19:01:41

做的真有创意,一定要顶~

高山 发表于 2022-10-30 19:03:23

zhangjinxuan 发表于 2022-10-30 19:01
做的真有创意,一定要顶~

谢谢,对了,你也有灌水大师了

hveagle 发表于 2022-10-30 19:13:34

不{:7_146:}打{:10_256:}

陈尚涵 发表于 2022-10-31 19:28:21

做的真不戳

zhangjinxuan 发表于 2022-11-3 18:55:43

嗯,记得上一篇链接{:10_256:}

|| nr.size()<=1
|| title.size()<=1
还可以看长度~

元豪 发表于 2022-11-5 09:50:33

哇!{:10_257:}{:10_257:}

元豪 发表于 2022-11-5 09:55:57

怼bug:
输入英文会刷频。{:10_250:}{:10_250:}@高山

Jason茗 发表于 2022-11-6 13:04:57

好厉害的样子,可惜代码一行都看不懂{:10_266:}

两手空空儿 发表于 2022-11-6 22:34:20

有趣味性的东西总是能让人很喜欢{:5_108:}

Jason茗 发表于 2022-11-7 14:25:00

本帖最后由 Jason茗 于 2022-11-7 14:27 编辑

提个意见哈:我起的名字带空格,结果空格后面的名字就神秘失踪了……

看看能不能修复一下,提供两个思路:
1、禁止取带有空格的名字
2、取完带空格的名字可以把全名保存

Jason茗 发表于 2022-11-7 14:32:33

Jason茗 发表于 2022-11-7 14:25
提个意见哈:我起的名字带空格,结果空格后面的名字就神秘失踪了……

看看能不能修复一下,提供两个思路 ...

还有,取完名字之后,问我需不需要帮助,结果我试过了,不管点1还是2,都会陷入一个死循环,导致我用Ctrl+C强制退出了

用一个不带空格的名字就没事

Jason茗 发表于 2022-11-7 14:33:21

Jason茗 发表于 2022-11-7 14:32
还有,取完名字之后,问我需不需要帮助,结果我试过了,不管点1还是2,都会陷入一个死循环,导致我用Ctrl ...

可以亲自试一试

Jason茗 发表于 2022-11-7 14:34:34

Jason茗 发表于 2022-11-7 14:25
提个意见哈:我起的名字带空格,结果空格后面的名字就神秘失踪了……

看看能不能修复一下,提供两个思路 ...

我只能提供思路了,C++我不太会,也没法帮忙改

Jason茗 发表于 2022-11-7 14:41:11

建议:可不可以添加一个储存数据功能,这样不用每次来都从头开始(同时配套一个删除存档功能)

存档就存在玩家的电脑上

Jason茗 发表于 2022-11-7 14:43:33

元豪 发表于 2022-11-5 09:55
怼bug:
输入英文会刷频。@高山

准确的来讲,是问你进行什么操作让你输1234的时候输入字母会触发(看起来触发死循环式刷屏的方法不少啊,我再去瞅瞅还有没有)

Jason茗 发表于 2022-11-7 14:46:38

本帖最后由 Jason茗 于 2022-11-7 15:08 编辑

我发现,发帖的内容为“12”时不会扣分,看看能不能设置输入纯数字为触发敏感词

Jason茗 发表于 2022-11-7 15:07:39

Jason茗 发表于 2022-11-7 14:32
还有,取完名字之后,问我需不需要帮助,结果我试过了,不管点1还是2,都会陷入一个死循环,导致我用Ctrl ...

结尾是空格也没事,空格后面带东西就得出事

高山 发表于 2022-11-7 17:35:32

Jason茗 发表于 2022-11-7 14:32
还有,取完名字之后,问我需不需要帮助,结果我试过了,不管点1还是2,都会陷入一个死循环,导致我用Ctrl ...

我也遇到过这样的事情,你退出重进程序就OK了,还有空格的问题,我不太会
页: [1] 2
查看完整版本: 每周一练第12期 鱼C生活小游戏【C++版块提升计划】【限免】