一个笨拙的猜数游戏代码参考

直接上代码!!!


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

#define TOP 1000
#define BOTTOM 0

/*
    由Mr.Blue and Mr.Green制作于2016.7.31 21:17
    本程序采用块状分段,使程序更加简单,但可读性降低,望见谅
*/

int main(int argc, char * argv[])
{
    int toobig, toosmall, temp;
    char input;
    printf("这是一个笨拙的猜数游戏.请在心里记下一个0~1000之间的数,然后按任意键开始.\n");
    getch();
    //--------------------猜测块---------------------------------------------------------
    passing:{
        toobig = TOP;
        toosmall = BOTTOM;
        temp = (TOP - BOTTOM) / 2;
        while(1){
            printf("%d太大,太小或刚好(b,s or r)\n",temp);
            switch( (input = getchar() ) ){
                case ‘b‘:{
                    toobig = temp; //将toobig置为temp,因为temp太大
                    temp = temp - (temp - toosmall) / 2; //如果太大,则temp向toosmall折半
                    break;
                }
                case ‘s‘:{
                    toosmall = temp; //将toosmall置为temp,因为temp太小
                    temp = temp + (toobig - temp) / 2; //如果太小,则temp向toobig折半
                    break;
                }
                case ‘r‘:
                    goto loop; //如果正确,跳至结果块
                default :{ //如果输入有误,重新输入
                    printf("请输入正确选项!\n");
                    fflush(stdin); //清空缓冲区防止getchar()误读,后面做法一致
                    continue;
                    }
            }
            if(temp == toobig || temp == toosmall){ //让程序更聪明
                printf("敢玩我?嘿嘿,被我看出来了!\n");
                goto restart;
            }
            fflush(stdin);
        }
    }
    //---------------------结果块-----------------------------------------------
    loop:{
        printf("我就知道我会猜出来\n");
    }
    //-------------------------重置块----------------------------------------------
    restart:{
        fflush(stdin);
        printf("重新开始吗?(y or n)\n");
        input = getchar();
        if(input == ‘y‘){ //如果要重玩,就重玩
            fflush(stdin);
            goto passing;
        }
        else if(input == ‘n‘) //不想就关了吧
            exit(0);
        else{ //如果用户不小心输入错误,重新询问
            printf("请输入正确的选项!\n");
            goto restart;
        }
    }
    /////////////////////////////////////////////////////////////////////
    return 0;
}

运行截图



  我猜89

  

  我猜873

  

  我玩它

  

时间: 2024-10-29 19:07:31

一个笨拙的猜数游戏代码参考的相关文章

rust猜数游戏代码

use std::io; use rand::Rng; use std::cmp::Ordering; fn main() { println!("Guess the number!"); let secret_number = rand::thread_rng().gen_range(1,101); loop { println!("Please input your guess."); // mut不可变改为可变 //String::可以看作是静态方法 let

C实现一个比较简单的猜数游戏

为了练习使用do..while和while,特地使用此实例,一个简单的猜数游戏对while循环进行的练习使用.所有的东西都在注释当中: #include <stdio.h> #include <conio.h> /********************************** * 该实例用于实现一个简单的猜数字的游戏 * 主要用于练习使用while循环 * 开始的时候需要用户输入游戏密码(1234) * 如果用户输入错误 * 则提示用户重新输入 * 如果三次输入错误,则提示用

bzoj 1594: [Usaco2008 Jan]猜数游戏——二分+线段树

Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面摆N(1 <= N<= 1,000,000)堆干草,每堆有若干捆,并且没有哪两堆中的草一样多.所有草堆排成一条直线,从左到右依次按1..N编号,每堆中草的捆数在1..1,000,000,000之间. 然后,游戏开始.另一头参与游戏的奶牛会问那头摆干草的奶牛 Q(1 <= Q <= 25,000)个问题,问题的格式如下: 编号为Ql..Q

猜数游戏,随机产生一个数字(0-9),自己看几次能出来,并且给出提示。

1 /* 2 * 猜数游戏,随机产生一个数字(0-9),自己看几次能出来,并且给出提示. 3 * */ 4 import java.util.Random; 5 import java.util.Scanner; 6 7 public class WhileTest{ 8 public static void main(String args[]){ 9 10 Scanner sc = new Scanner(System.in); 11 Random ran = new Random(); 1

模拟算法_掷骰子游戏&amp;&amp;猜数游戏

模拟算法是用随机函数来模拟自然界中发生的不可预测的情况,C语言中是用srand()和rand()函数来生成随机数. 先来介绍一下随机数的生成: 1.产生不定范围的随机数 函数原型:int rand() 产生一个介于0~RAD_MAX间的整数,其具体值与系统有关系.Linux下为2147483647.我们可以在include文件夹中的stdlib.h中可以看到(Linux在usr目录下,Windows在安装目录下) 1 #include<stdio.h> 2 #include<stdlib

BZOJ 2222: [Cqoi2006]猜数游戏【神奇的做法,傻逼题,猜结论】

2222: [Cqoi2006]猜数游戏 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 604  Solved: 260[Submit][Status][Discuss] Description 佳佳和明明玩一个猜数游戏.佳佳想一个1~n之间的整数,明明每次可以随便猜一个数.从第二次猜测起,佳佳告诉明明本次猜测的数和上次猜测的数相比哪个更接近.B表示本次猜测的数更接近,W表示上次猜测的数更接近.如果两次猜测的接近程度一样,则既可回答B也可回答W.

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

最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面: 从这个主界面可以看到,它包含标题,菜单栏,工具栏. 标题是给人一个认识,这是什么游戏,标题设置为:“猜数游戏”: 而菜单栏和工具栏才是游戏的核心,它要保证能够完成游戏的基本功能. 菜单栏和工具栏是对应的,包含了”start“,"help","restart"这三个菜

OJ_1003.猜数游戏

1003. 猜数游戏 (Standard IO) 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 有一个"就是它"的猜数游戏,步骤如下:请你对任意输入的一个三位数x,在这三位数后重复一遍,得到一个六位数,467-->467467.把这个数连续除以7.11.13,输出最后的商. 输入 输入一个三位数x. 输出 输出最后的商. 样例输入 100 1 #include<stdio.h> 2 int main() 3 { 4 int a,b,c; 5

数组常见操作_猜数游戏

数组常见操作: 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数,并记录该数在数组中存在多少次 public class fortyNine { public static void main(String[] args) { Scanner input = new Scanner(System.in); int[] sum = {10,20,21,34,65,76,6,87,98,20}; System.out.println("猜数游戏开始!"); System.out.