//
// 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函数
//define
int 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;
}
猜数游戏
最新推荐文章于 2024-05-05 19:55:51 发布