Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
1.4 kB
5
Indexable
Never
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <time.h>

int input[4],ans[4];

bool check_ans(){
	for(int i=0;i<4;i++) if(ans[i]!=input[i]) return false;
	return true;
}

int main(){
	srand(time(0));
	
	bool play=true;
	while(play){
	    bool check[10]={0};
		for(int i=0;i<4;i++){
			do{
				ans[i]=rand()%10;
			}while(check[ans[i]]);
			check[ans[i]]=true;
	    }
		bool guess=false;
		for(int T=1;T<=10;T++){
			printf("請輸入4位不重複的數字:");
			bool repeat=false;
			do{
				if(repeat) printf("數字重複,請重新輸入:");
				repeat=false;
				for(int i=0;i<4;i++){
					scanf("%d",&input[i]);
					for(int j=0;j<i;j++) if(input[i]==input[j]) repeat=true;
				}
			}while(repeat);
	      
			if(check_ans()){
				guess=true;
				printf("恭喜你答對了!答案就是 ");
				for(int i=0;i<4;i++) printf("%d ",ans[i]);
				break;
			}else{
				int A=0,B=0;
				for(int i=0;i<4;i++){
					if(input[i]==ans[i]) A++;
					else if(check[input[i]]) B++;
				}
				printf("%02d. ",T);
				for(int i=0;i<4;i++) printf("%d ",input[i]);
				printf("A%dB%d\n",A,B);
			}
		}
		if(!guess){
			printf("沒關係再接再厲,答案是 ");
			for(int i=0;i<4;i++) printf("%d ",ans[i]);
		}
		printf("\n\n你要再玩一次嗎?(y/Y)");
	    char c;
		scanf(" %c",&c);
		if(c!='y' && c!='Y') play=false;
	}
}