猜数字游戏

猜数字游戏是以前功能机上的一款益智游戏,计算机会根据输入的位数随机分配一个符合要求的数据,计算机输出guess后便可以输入数字,注意数字间需要用空格或回车符加以区分,计算机会根据输入信息给出相应的提示信息:A表示位置与数字均正确的个数,B表示位置不正确但数字争取的个数,这样便可以根据提示输入,直到正确为止,并且根据输入次数给出相应评价。

源代码如下:

  1. #include<stdio.h>
  2. #include<time.h>
  3. #include<stdlib.h>
  4. void guess(int);
  5. int main(void)
  6. {
  7. int i,n;
  8. system("cls");                                              //清屏
  9. printf("1.start game?(y/n)\n");
  10. printf("2.Rule\n");
  11. printf("3.exit\n");
  12. printf("please choose:");
  13. scanf("%d",&i);
  14. while(i!=3)                                                   //循环结构
  15. {
  16. switch(i)
  17. {
  18. case 1:
  19. printf("please input n:\n");
  20. scanf("%d",&n);
  21. guess(n);
  22. break;
  23. case 2:
  24. printf("\t\tThe rules of the game\n");
  25. printf("step1:input the number of digits\n");
  26. printf("step2:input the number,separated by a space between two numbers.\n");
  27. break;
  28. default:
  29. break;
  30. }
  31. scanf("%d",&i);
  32. }
  33. }
  34. void guess(int n)
  35. {
  36. int acount,bcount,i,j,k=0,flag,a[10],b[10];
  37. do
  38. {
  39. flag=0;
  40. srand((unsigned long)time(0));
  41. for(i=0;i<n;i++)
  42. a[i]=rand()%10;
  43. for(i=0;i<n-1;i++)
  44. {
  45. for(j=i+1;j<=n;j++)
  46. if(a[i]==a[j])                                        //不能出现相同的数字
  47. {
  48. flag=1;
  49. break;
  50. }
  51. }
  52. }while(flag==1);
  53. do
  54. {
  55. k++;
  56. acount=0;
  57. bcount=0;
  58. printf("guess:");
  59. for(i=0;i<n;i++)
  60. scanf("%d",&b[i]);                              //输入测试数据
  61. for(i=0;i<n;i++)
  62. for(j=0;j<n;j++)
  63. {
  64. if(a[i]==b[i])                                 //位置和数字都相同
  65. {
  66. acount++;
  67. break;
  68. }
  69. if(a[i]==b[j]&&i!=j)                      //数字相同,位置不同
  70. {
  71. bcount++;
  72. break;
  73. }
  74. }
  75. printf("clue on:%dA%d B\n\n",acount,bcount);
  76. if(acount==n)                                    //给出评价
  77. {
  78. if(k==1)
  79. printf("you are the topmose\n");
  80. else if(k<=5)
  81. printf("you are genius!\n");
  82. else if(k<=10)
  83. printf("you are cleaver!\n");
  84. else
  85. printf("you need try hard!\n");
  86. break;
  87. }
  88. }while(1);
  89. }

效果图:

C语言之猜数字游戏的更多相关文章

  1. 李洪强漫谈iOS开发[C语言-049]-猜数字游戏

  2. [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏]

    [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏] 项目实战 实战1:猜数字游戏 我们今天来来开始简单的项目实战. 第一个简单项目是猜数字游戏. 简单来说,系统给了 ...

  3. C语言猜数字游戏

    猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...

  4. c语言-猜数字游戏

    #include <stdio.h> #include <stdlib.h> int top(); int input(); void main() { ; int numbe ...

  5. java 猜数字游戏

    作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...

  6. 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

    最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...

  7. 实验三 Java猜数字游戏开发

    课程:Java实验   班级:201352     姓名:程涵  学号:20135210 成绩:             指导教师:娄佳鹏   实验日期:15.06.03 实验密级:         ...

  8. 通过游戏学python 3.6 第一季 第三章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码 可复制直接使用 娱乐 可封装 函数

       猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码   #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码 import random secrst = random.rand ...

  9. 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数

      猜数字游戏--核心代码--猜测次数   #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...

随机推荐

  1. Static block start new thread

    Static block start new thread public class StaticThreadInit { static{ Threadt = newThread(){ public ...

  2. GridView行编辑、更新、取消、删除事件使用方法

    注意:当启用编辑button时,点击编辑button后会使一整行都切换成文本框.为了是一行中的一部分是文本框,须要把以整行的全部列都转换成模板,然后删掉编辑模板中的代码.这样就能使你想编辑的列转换成文 ...

  3. PendingIntent详解

    Intent是一个意图,一个描述了想要启动一个Activity.Broadcast或是Service的意图.它主要持有的信息是它想要启动的组件(Activity.Broadcast或是Service) ...

  4. javascript操作JSON字符

    1.先要区分JSON字符串和JSON对象 JSON字符串: Var strJSON = “{“Area”:[{“AreaId”:”123”},{“AreaId”:”345”}]}”,   或者 Var ...

  5. uploadify 使用 详细 说明

    简单 常用的 时间 有点 紧  先写 这点 ,  有时间 在更新 下面有 例子  链接 不过要 自己 摘 一下 很简单的啦   <script type="text/javascrip ...

  6. JavaScriptCore.framework基本用法(二)

    接着上节我们讲到的iOS调用js 下来我们使用js调用iOS js调用iOS分两种情况 一,js里面直接调用方法 二,js里面通过对象调用方法 首先我们看第一种,直接调用方法. 其中用到了iOS的bl ...

  7. SQLite学习手册(目录)

    链接地址:http://www.cnblogs.com/stephen-liu74/archive/2012/01/22/2328757.html 在实际的应用中,SQLite作为目前最为流行的开源嵌 ...

  8. [Swust OJ 581]--彩色的石子(状压dp)

    题目链接:http://acm.swust.edu.cn/problem/0581/ Time limit(ms): 1000 Memory limit(kb): 65535   Descriptio ...

  9. 帝国cms分页样式修改文件-注意事项

    帝国cms分页样式主要有:内容页分页样式.列表页分页样式以及默认搜索模板使用的搜索样式等几种. 要改这些样式其实也很简单,在网站目录中找到相应的.css文件修改empages属性就行了,但是这样比较麻 ...

  10. Symfony框架系列----常用命令

    一.常用命令 从Entity操作数据库: app/console doctrine:database:create # 创建数据库 app/console doctrine:schema:update ...