一个猜数的游戏

   说明 : 猜猜系统随机的四个数,用户输入一个四位数,与系统随机的数进行比较。。。

   注意 : 系统随机的四位数,各个位的数不同

   提示 : 输入位与系统对应位的数相同 输出提示A  输入位与系统对应位旁边的数字相同,输出B。

   ----------------------------------------------------------Suiprise-------------------------------------------------

  源代码 :

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <time.h>
  4 #include <unistd.h>
  5 #include <string.h>
  6 
  7 void rand_num_function(char []);
  8 void call_function(char [], int);
  9 void judge_function(char [], char []);
 10 void transform_function();
 11 void output_rand_num(char []); // 输出随机的数字
 12 
 13 char rand_num[4];
 14 
 15 int main(int argc, char *argv[])
 16 {
 17     int surprise_num, choose_num = 0;
 18 
 19     srand(time(NULL));
 20 
 21     printf("Game begin !\n"); 
 22     printf("Please wait! randnumber generate .........\n");
 23     rand_num_function(rand_num); //生成随机数
 24     sleep(1);
 25     printf("The randnumber generate success!!\n");
 26 
 27     printf("If you want a suiprise, Enter 1 ----------------------------------------------------- If you do't want a suiprise !!!!Enter 0 : ");
 28     scanf("%d", &choose_num);
 29     if(1 == choose_num) {
 30         printf("Go no Enter 521 : ");
 31         scanf("%d", &surprise_num);
 32         if(521 == surprise_num) {
 33             printf("The rand_numbers is : ");
 34             output_rand_num(rand_num);
 35             printf("\n");
 36             printf("Ha Ha!!!!!!!!!!!!\n");
 37             printf("--------------------------------------------------------------------\n");
 38             printf("After identification, your IQ is 0.\n");
 39             printf("--------------------------------------------------------------------\n");
 40         }
 41         else {
 42             printf("--------------------------------------------------------------------\n");
 43             printf("Sorry ! You lose the change !!!\n");
 44             printf("--------------------------------------------------------------------\n");
 45         }
 46     }
 47 
 48     transform_function(); //中间转换函数
 49     return 0;
 50 }
 51 
 52 void judge_function(char judge_rand_num[4], char judge_guess_num[4])
 53 {
 54     int i, j; 
 55     int itemp = 0;
 56 
 57     for(i = 0; i != 4; i ++)
 58     {
 59         if(judge_guess_num[i] == judge_rand_num[i]) {
 60             ++ itemp;    
 61         }
 62     }
 63 
 64     if(4 == itemp) {
 65         printf("Congratulation! You guess right!\n");
 66         printf("The rand_num : ");
 67         output_rand_num(judge_rand_num);
 68         printf("\n");
 69         printf("The Game End !!!\n");
 70         return ;
 71     }
 72     if(0 == itemp) {
 73         printf("Unfor tunately ! No one number is right.\n");
 74         printf("Please again!\n");
 75         printf("____\n");
 76         transform_function();   
 77         return ;
 78     }
 79 
 80     printf("The tips : ");
 81     for(i = 0;i != 4; i ++)
 82     {
 83         if(0 == i)
 84         {
 85             if(judge_guess_num[i] == judge_rand_num[0]) {
 86                 printf("A");
 87             }
 88             else if(judge_guess_num[i] == judge_rand_num[1]) {
 89                 printf("B");    
 90             }
 91             else {
 92                 printf("_");
 93             }
 94         }
 95         if(1 == i) {
 96             if((judge_guess_num[i] == judge_rand_num[0]) || (judge_guess_num[i] == judge_rand_num[2])) {
 97                 printf("B");
 98             }
 99             else if(judge_guess_num[i] == judge_rand_num[1]) {
100                 printf("A");
101             }
102             else {
103                 printf("_");
104             }
105         }
106         if(2 == i) {
107             if((judge_guess_num[i] == judge_rand_num[1]) || (judge_guess_num[i] == judge_rand_num[3])) {
108                 printf("B");
109             }
110             else if(judge_guess_num[i] == judge_rand_num[2]) {
111                 printf("A");
112             }
113             else {
114                 printf("_");
115             }
116         }
117         if(3 == i) {
118             if(judge_guess_num[i] == judge_rand_num[2]) {
119                 printf("B");
120             }
121             else if(judge_guess_num[i] == judge_rand_num[3]) {
122                 printf("A");
123             }
124             else {
125                 printf("_");
126             }
127         }
128     }
129     printf("\n");
130     printf("Please again!\n");
131     transform_function();   
132 
133     return ;
134 }
135 
136 void output_rand_num(char output_num[5])
137 {
138     int i;
139     for(i = 0;i != 4; i ++)
140     {
141         printf("%d", output_num[i]);
142     }
143 
144     return ;
145 }
146 
147 void transform_function()
148 {
149     char guess_num[4];
150     int num_4;
151 
152     printf("Please enter four number (0 - 9999): ");
153     scanf("%d", &num_4);
154 
155     if((num_4 > 10000) & (num_4 < 0)) {
156         printf("Fuck! Set tips !!!\n");
157         transform_function();
158     }
159 
160     printf("You enter number is  ---------------%d\n", num_4);
161     printf("Zheng zai jisuan -----------------------------------------------------------------------\n");
162     sleep(2);
163     call_function(guess_num, num_4); //将用户输入的数写入数组
164 
165    // printf("-----------------------");
166     //output_rand_num(guess_num);
167    // printf("\n");
168 
169     judge_function(rand_num, guess_num); //判断函数
170 
171     return ;
172 }
173 
174 void call_function(char call_num[4], int call_num_4)
175 {
176     int i = 3;
177 
178     do
179     {
180         call_num[i] = call_num_4 % 10;   
181         call_num_4 /= 10;
182         -- i;
183     }while(i >= 0);
184 
185     return ;
186 }
187 
188 void rand_num_function(char rand_num_function[4])
189 {
190     int i, itemp = 0, rand_number, jilu_number = 0;
191 
192     for(i = 0; i != 4; i ++)
193     {
194         itemp = i;
195         rand_number = rand() % 10;
196         if(1 == ((jilu_number >> rand_number) & 1)) {
197            i = itemp - 1;
198            continue ;
199         }
200         jilu_number = jilu_number | 1 << rand_number;
201         rand_num_function[i] = rand_number;
202     }
203 
204     return ;
205 }
bijiiaoshuo_1.c

  改了很多次。。终于改好了。。。晕

转载于:https://www.cnblogs.com/cxw825873709/p/3231744.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值