猜数游戏

来源:互联网 发布:萤石云ddns设备域名 编辑:程序博客网 时间:2024/06/16 00:18
////  main.c//  猜数游戏////  Created by Jean Zhao on 17/3/7.//  Copyright © 2017年 apple. All rights reserved.////  实现目标:猜数游戏,随机生成4个不同一位数字或人工输入,每次输入4个数字,如果数值和数位正确出A,如果只有数值正确,输出B,例如一个数字数位数值都正确,两个数字数值正确但是数位不正确,输出“1A2B”. 在7次内猜对输出“ You are right! ”,没有猜对输出“ DEFEATED! ”.//  输入示例:1 2 3 4#include <stdio.h>#include <stdlib.h>#include <time.h> //用到了time函数//defineint choice;int answer[4];int key[4];int count=1;int flag=0;int rightnumber = 0;int rightset = 0;//数位正确计算int SetRight(void);//数值正确计算int NumRight(void);int main(void) {    int i,j;    printf("Please input the mode you choose:\n");    printf("1.random mode\n");    printf("2.user mode\n");    printf("ex: 1\n");    scanf("%d",&choice);    int vis[100] = {0}, tot = 4;    j=0;    if(choice == 2)    {        printf("Please input your key number.\n");        for(i=0;i<4;i++)            scanf("%d",&key[i]);    }    else    {        srand((int)time(0));        for(;tot;)        {            int index = rand() % 10;            if(!vis[index])            {                key[j++]=index;                vis[index] = 1;                tot--;            }        }    }    //生成随机数    for(i=0;i<4;i++)        for(j=i+1;j<4;j++)        {            if(key[j]==key[i])                count=100;        }    if(count!=100)        printf("OK.Let's start.\n");    while(count<=7)    {        printf("The %d time(s).\n",count);        for(i=0;i<4;i++)            scanf("%d",&answer[i]);        rightset=0;        rightnumber=0;        SetRight();        NumRight();        if(rightset==4)            break;        else            printf("%dA%dB\n",rightset,rightnumber);        count+=1;    }    if(count<7)        printf("You are right!\nCongratulations!\n");    else if(count == 100)        printf("It's my fault.\nPlease start again.\n");    else        printf("DEFEATED!\nThe answer is %d%d%d%d.\n",&key[0],&key[1],&key[2],&key[3]);    getch();    return 0;}//数位正确计算int SetRight(void){    int i;    for(i=0;i<4;i++)        if(answer[i]==key[i])            rightset+=1;    return 0;}//数值正确计算int NumRight(void){    int i,j;    for(i=0;i<4;i++)        for(j=0;j<4;j++)            if(answer[j]==key[i])                rightnumber+=1;    rightnumber-=rightset;    return 0;}
0 0
原创粉丝点击