猜数字游戏

猜数字游戏是以前功能机上的一款益智游戏,计算机会根据输入的位数随机分配一个符合要求的数据,计算机输出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. gravitas是什么意思_gravitas在线翻译_英语_读音_用法_例句_海词词典

    gravitas是什么意思_gravitas在线翻译_英语_读音_用法_例句_海词词典 gravitas

  2. iOS搜索指定字符在字符串中的位置

    NSString *tmpStr = @"asd341234aaaaccd"; NSRange range; range = [tmpStr rangeOfString:@&quo ...

  3. nefu 462 fib组合

    nefu 462 fib组合 (斐波那契数列的通项公式以及推倒过程) 分类: 数学2014-05-21 10:27 190人阅读 评论(0) 收藏 举报 题目链接:http://acm.nefu.ed ...

  4. hdu 4738 Caocao's Bridges(2013杭州网络赛丶神坑)

    就是求最小权值的桥..不过有好几个坑... 1:原图不连通,ans=0. 2: m<=n^2 显然有重边,重边必然不是桥,处理重边直接add(u, v, INF). 3:   最小桥边权为0的时 ...

  5. windows下搭建apache+php+mysql

    在windows下,apache和mysql都有自动化安装的程序,本篇则侧重从apache和php版本选择,php线程安全,apache和mysql安装启动服务,工作环境配置这几个方面来阐述windo ...

  6. protobuf 中的嵌套消息的使用

    protobuf的简单的使用,不过还留下了一个问题,那就是之前主要介绍的都是对简单数据的赋值,简单数据直接采用set_xx()即可,但是如果不是简单变量而是自定义的复合类型变量,就没有简单的set函数 ...

  7. Android SQLite之乐学成语项目数据库存储

    一.SQLite是什么?为什么要用SQLite?SQLite有什么特点?(下面小编一 一解答) ①SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,很适合在移动设备上使用, 不仅支持 标 ...

  8. 【微信公众号】WeixinJSBridge.call('closeWindow')无效

    公众号上面使用iframe嵌套子页面,然而子页面无法使用WeixinJSBridge.call('closeWindow') 这时候必须在函数前面加上parent.,比如parent.WeixinJS ...

  9. 百度下载google 浏览器安装失败

    installer integrity check has failed. Common causes include incomplete download and damaged media co ...

  10. Zencart先生成订单后付款,类似淘宝后台修改订单价格

    Zencart 使用 Paypal 付款,会出现漏单的情况,即 paypal 已经收到客户的付款,但是网站后台没有客户的订单.导致 paypal 漏单的原因大致会是当客户跳转到Paypal 网站付款完 ...