C语言程序课程设计—读心术

简介: 前言这是我大学C语言程序课程设计的第一个项目((●’◡’●)),还是挺开心滴哈哈。虽然这个项目制作难度不高,代码量也不多,但只要你手法足够,任何简单的东西都能够复杂化滴。

前言

这是我大学C语言程序课程设计的第一个项目((●’◡’●)),还是挺开心滴哈哈。虽然这个项目制作难度不高,代码量也不多,但只要你手法足够,任何简单的东西都能够复杂化滴。

一、游戏规则

读心术,顾名思义,就是我能知道你心里所想的东西呗。当然,这玩意没有这么神奇哈,怎么可能知道你在想撒子呢对吧。这里的读心术只是我们被套路了而已。

具体规则:从0~7中选择一个数默想在心中,选择完之后需要回答三个问题,每次回答输入1或0,如果输入了其他的数字或字母将会要求重新输入,三个问题回答完之后,就能知道你心中所想的那个数字了,然后我们在原有的基础上增加了一个用户登入的系统,也就是说只有正确的输入账号和密码才能够登入成功来进行游戏,但是注意如果账号输入错误时需要重新输入账号,账号输入正确但密码输入错误时也需要重新输入账号,账号密码输入错误次数共达三次的话将会无法进行输入,需在下次打开游戏时才能再次输入。

二、原理

读心术的本质其实就是进制转换的问题,首先我们先把0到7的八个数字从十进制转换成二进制,最大数7的二进制是111,也就是说三位的二进制就够了,位数不够的地方补0即可。0:000,1:001,2:010,3:011,4:100,5:101,6:110,7:111。然后我们从这八个数二进制的低位往高位看,看看相同位的都为1的数字有哪些,所以第一个问题就是1、3、5、7,第二个问题是3、5、6、7,第三个问题是4、5、6、7。然后我们根据回答问题的1或0即可知道你心里所想的数,也就是说这个数字是我们计算出来的。

三、代码

#include <bits/stdc++.h>
using namespace std;
int main() 
{ 
  int num[3][4] = {{1, 3, 5, 7}, {2, 3, 6, 7}, {4, 5, 6, 7}};
  int sum=0,t=1;
  printf("\t\t\t\t\t\t欢迎来到读心术游戏\t\n");
  string s="jiruan6ban";
  int password = 123456789;
  for(int i=1;i<=3;i++)
  {
    cout<<"请输入您的用户名:"<<endl;
    string username;
    cin>>username;
    int password1;
    if(username==s)
    {
      cout<<"用户名正确,请输入密码:"<<endl; 
      cin>>password1;
      if(password1==password)
      {
        cout<<"密码正确!登入成功!"<<endl<<endl;
        cout<<"接下来将进行读心术的游戏了哦!"<<endl;
        cout << "请从下面的数字(0~7)中选择一个默念在心中" << endl;
        cout << "0、1、2、3、4、5、6、7"<<endl;
        cout<<"心里有数了叭!接下来我只需要询问您三个问题就能知道您想的那个数是什么,怎么? 不信吗?那么咋们走着瞧吧哈哈"<<endl<<endl;
        for(int i=0;i<=2;i++)
        {
          printf("第%d个问题~下面的数字是否有你所想的:",i+1);
          for(int j=0;j<=3;j++)
          {
            cout<<num[i][j]<<" ";
          }
          char a ;
          cout<<"请输入1(有) 或 0(没有)"<<endl;
          while(1)
          {
            cin>>a;
            if(a!='0'&&a!='1')
            {
              printf("输入非法,请重新输入:\n");
              continue;
            } 
            else
              break;
          }
          if(a =='1')
          {
            sum+=t;
            t*=2;
          }
          else
            t*=2;
        }
        printf("见证奇迹的时刻到啦!你心里想的那个数字是 %d 吧嘿嘿\n",sum);
        return 0;
      }
      else
      {
        cout<<"密码错误!"<<endl;
        continue; 
      }        
    }
    else
    {
      cout<<"用户名错误!"<<endl;
      continue;
    }
  }
  cout<<"抱歉!您已输入错误三次,无法再次进行输入,为确保账号的安全,请在下次打开时进行尝试!"<<endl; 
} 

代码测试:

c01415eb776043eab55830d4638a2229.png我想的确实是7,可恶居然被它猜到了。不信的话你来试试咯!

总结

总的来说,不论是做读心术项目还是其他的一些项目,都是需要有规则的,规则是面向用户的,帮助用户了解如何进行操作,而项目的原理是需要我们通过代码来实现的,而代码本身是我们写出来的,所以原理相当于是把我们所熟知的东西写成代码让计算机能够理解从而去执行。拓展是在原有的基础上加上一些别的功能,增加游戏的可玩性。画出了整个程序的流程图我们就能清楚的知道这个项目的框架,当我们的程序某个部分出现Bug时我们就可以根据流程图快速找到出现问题的那部分从而对症下药。分析代码的过程可以提升我们的框架思维,对项目有一个更好的理解。

相关文章
|
2月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
4月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
115 1
|
4月前
|
NoSQL 编译器 程序员
【C语言】揭秘GCC:从平凡到卓越的编译艺术,一场代码与效率的激情碰撞,探索那些不为人知的秘密武器,让你的程序瞬间提速百倍!
【8月更文挑战第20天】GCC,GNU Compiler Collection,是GNU项目中的开源编译器集合,支持C、C++等多种语言。作为C语言程序员的重要工具,GCC具备跨平台性、高度可配置性及丰富的优化选项等特点。通过简单示例,如编译“Hello, GCC!”程序 (`gcc -o hello hello.c`),展示了GCC的基础用法及不同优化级别(`-O0`, `-O1`, `-O3`)对性能的影响。GCC还支持生成调试信息(`-g`),便于使用GDB等工具进行调试。尽管有如Microsoft Visual C++、Clang等竞品,GCC仍因其灵活性和强大的功能被广泛采用。
152 1
|
4月前
|
编译器 C语言 计算机视觉
C语言实现的图像处理程序
C语言实现的图像处理程序
213 0
|
27天前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
53 5
|
27天前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
59 4
|
26天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
57 1
|
27天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
38 2
|
27天前
|
程序员 C语言
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门。本文深入探讨了指针的基本概念、声明方式、动态内存分配、函数参数传递、指针运算及与数组和函数的关系,强调了正确使用指针的重要性,并鼓励读者通过实践掌握这一关键技能。
37 1
|
2月前
|
存储 文件存储 C语言
深入C语言:文件操作实现局外影响程序
深入C语言:文件操作实现局外影响程序

相关实验场景

更多