IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言24点小游戏 -> 正文阅读

[C++知识库]C语言24点小游戏

不知道大家有没有玩过计算器语音播报的24点游戏,学习C语言之后,一直想写一下,正好暑假有时间造作,写的还有不足之处,希望大家多指正

就不过多解说了,看代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

char Symbol[4] = {'+','-','*','/'};
int Game_Num[4];
int N1,N2,N3,N4,result,bridge;
char S1,S2,S3,S5,S6,S7;

void SetNum(void);
void play(void);
void jump(void);
int twonum(int num1, char op, int num2);
int expression_1(int num1, int num2, int num3, int num4, char sy1, char sy2, char sy3);
int expression_2(int num1, int num2, int num3, int num4, char sy1, char sy2, char sy3);

    int main(void)
    {
      printf("                            24点游戏                          \n");
      printf("游戏规则:请输入+ - * /,使数字顺序运算得到24,如果你觉得无解,则选择无解,如果你不会就跳过\n");
      SetNum();
      printf("                        1.作答                   \n");
      printf("                        2.跳过                   \n");
      printf("                        3.无解                   \n");
      printf("                        4.说明                   \n");
      printf("                        5.退出                   \n");
      
      scanf("%d",&bridge);
      if(bridge == 1)
      {
        play();
      }
      if(bridge == 2)
      {
        jump();
      }
      if(bridge == 3)
      {
        printf("恭喜你答对了,这题它无解,哈哈哈哈哈哈哈");
      }
      if(bridge == 4)
      {
        printf("24点游戏版本1.0:第一次编写相关代码,还是存在一些小问题,比如点击跳过,答案会和无解一起存在,还有在第一界面的无解不加入判断,由用户判断,程序不会纠正");
      }
      if (bridge == 5)
      {
        return 0;
      }
      
}

void SetNum(void)
{
  int ret = 0;
  srand((unsigned int)time(NULL));
  for(int i = 0; i < 4; i++)
  {
    ret = rand()%13+1;
    Game_Num[i] = ret;
    printf("%3d\n",ret);    
  }
}
int twonum(int num1,char op,int num2)
{
  int re;

  switch(op)
  {
    case '+': re = num1 + num2;break;
    case '-': re = num1 - num2;break;
    case '*': re = num1 * num2;break;
    case '/': re = num1 / num2;break;
    
    return re;
  }
}

//((A_B)_C)_D
int expression_2(int num1, int num2, int num3, int num4, char sy1, char sy2, char sy3)
{
  int re1, re2, re3;

  re1 = twonum(num1, sy1, num2);
  re2 = twonum(re1, sy2, num3);
  re3 = twonum(re2, sy3, num4);

  return re3;
}
void play(void)
{
  printf("请依次输入三个运算符(+,-,*,/)\n");
  scanf("%c%c%c", &S1, &S2, &S3);
  if (expression_2(Game_Num[0], Game_Num[1], Game_Num[2], Game_Num[3], S1, S2, S3) == 24)
  {
    printf("成功\n");
    printf("%d %c %d %c %d %c %d = 24", Game_Num[0], S1, Game_Num[1], S2, Game_Num[2], S3, Game_Num[3]);
  }
  if (expression_2(Game_Num[0], Game_Num[1], Game_Num[2], Game_Num[3], S1, S2, S3) != 24)
    printf("失败");
}
void jump(void)
{
  for (int i = 0; i < 4; i++)
  {
    S5 = Symbol[i];
    for (int j = 0; j < 4; j++)
    {
      S6 = Symbol[j];
      for (int k = 0; k < 4; k++)
      {
        S7 = Symbol[k];
        if (expression_2(Game_Num[0], Game_Num[1], Game_Num[2], Game_Num[3], S5, S6, S7) == 24)
        {
          printf("***答案***%d %c %d %c %d %c %d = 24\n", Game_Num[0], S5, Game_Num[1], S6, Game_Num[2], S7, Game_Num[3]);
        }
        if (expression_2(Game_Num[0], Game_Num[1], Game_Num[2], Game_Num[3], S5, S6, S7) != 24)
        {
          printf("***无解***%d %c %d %c %d %c %d != 24\n", Game_Num[0], S5, Game_Num[1], S6, Game_Num[2], S7, Game_Num[3]);
        }
      }
    }
  }
}

大家感兴趣的话可以贴到翻译器玩一玩,其中在运算的地方借鉴了一个博友的文章,在运算的地方还是有一些小bug,在详情里面介绍了在这里附上链接(大家写的24点小游戏规则都不一样)另外一个博主的

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:03:37  更:2021-08-09 10:05:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 20:16:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码