/[LeafOK_CVS]/lbbs/utils/game/chicken.c
ViewVC logotype

Annotation of /lbbs/utils/game/chicken.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Fri May 6 15:48:44 2005 UTC (20 years, 10 months ago) by sysadm
Branch: MAIN
Changes since 1.1: +321 -323 lines
Content type: text/x-csrc
*** empty log message ***

1 sysadm 1.2 /* ���Ӽ� С��f..��a��b��Ϸ.�� */
2 sysadm 1.1
3 sysadm 1.2 /* Writed by Birdman From 140.116.102.125 �����۹���*/
4 sysadm 1.1
5    
6    
7     #include "bbs.h"
8     #include "common.h"
9     #include "io.h"
10     #include <stdio.h>
11     #define DATA_FILE "chicken"
12    
13     char
14 sysadm 1.2 *cstate[10]={"���ڳԷ�","͵����ʳ","-���","����..���?","��..ӮС��Ҳû�����"
15     ,"ûʳ��2..","ƣ��ȫ��!"};
16     char *cage[9]={"����","����","����","����","����","��f","׳��","����"};
17     char *menu[8]={"��Ϸ","�˶�","��̼���","�����","���?��"};
18 sysadm 1.1
19     time_t birth;
20     int weight,satis,mon,day,age,angery,sick,oo,happy,clean,tiredstrong,play;
21     int winn,losee,last,chictime,agetmp,food,zfood;
22     char Name[20];
23     FILE *cfp;
24     int gold,x[9]={0},ran,q_mon,p_mon;
25     unsigned long int bank;
26     char buf[1],buf1[6];
27    
28     static int creat_a_egg(void);
29     static int death(void) ;
30     static int doit(void);
31     static int guess(void) ;
32     static int lose(void) ;
33     static int pressany(int i) ;
34     static int sell(void) ;
35     static int show_chicken(void) ;
36     static int show_m(void);
37     static int situ(void) ;
38     static int select_menu(void);
39     static int tie(void) ;
40     static int compare(char ans[],char buf[],int c);
41     static int ga(char buf[],int l);
42     static int win_c(void) ;
43    
44 sysadm 1.2 int chicken_main() {
45 sysadm 1.1 FILE *fp;
46     time_t now = time(0);
47     struct tm *ptime;
48     char fname[50];
49    
50     agetmp=1;
51     // modify_user_mode(CHICK);
52     time(&now);
53     ptime = localtime(&now);
54     setuserfile(fname, DATA_FILE);
55     if ((fp = fopen(fname, "r+")) == NULL) {
56     creat_a_egg();
57     last=1;
58     fp = fopen(fname, "r");
59     fscanf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %s "
60     ,&weight,&mon,&day,&satis,&age,&oo,&happy,&clean,&tiredstrong,&play
61     ,&winn,&losee,&food,&zfood,Name);
62     fclose(fp);
63     } else {
64     last=0;
65     fscanf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %s "
66     ,&weight,&mon,&day,&satis,&age,&oo,&happy,&clean,&tiredstrong,&play
67     ,&winn,&losee,&food,&zfood,Name);
68     fclose(fp);
69     }
70 sysadm 1.2 /*��*/
71 sysadm 1.1 if(day<(ptime->tm_mon+1)) {
72     age=ptime->tm_mday;
73     age=age+31-mon;
74     } else
75     age=ptime->tm_mday-mon;
76    
77     show_chicken();
78     select_menu();
79     fp = fopen(fname, "r+");
80     fprintf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %s "
81     ,weight,mon,day,satis,age,oo,happy,clean,tiredstrong,play
82     ,winn,losee,food,zfood,Name);
83    
84     fclose(fp);
85     return 0;
86     }
87    
88     static int creat_a_egg() {
89     char fname[50];
90     struct tm *ptime;
91     FILE *fp;
92     time_t now;
93    
94     time(&now);
95     ptime = localtime(&now);
96 sysadm 1.2 clrtobot(2);
97 sysadm 1.1 while(strlen(Name)<1) {
98 sysadm 1.2 strcpy(Name,"����");
99     get_data (2, 0, "��С��ȡ������֣�", Name, 21, 1);
100 sysadm 1.1 }
101     setuserfile(fname, DATA_FILE);
102     fp = fopen(fname, "w");
103     fprintf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %s "
104     ,ptime->tm_hour*2,ptime->tm_mday,ptime->tm_mon+1
105     ,0,0,0,0,0,0,0,0,0,10,5,Name);
106     fclose(fp);
107     if((fp = fopen("game/chicken", "a"))==NULL) {
108     prints("Error!!cannot open then 'game/chicken'!\n");
109     return -1;
110     }
111 sysadm 1.2 fprintf(fp,"%s �� [%d/%d %d:%02d] ����һֻ�� %s ��С��\n",
112 sysadm 1.1 BBS_username,ptime->tm_mon + 1, ptime->tm_mday,
113     ptime->tm_hour, ptime->tm_min,Name);
114     fclose(fp);
115     return 0;
116     }
117    
118     static int show_chicken() {
119     //int diff;
120     /*int chictime;*/
121    
122     //diff = (time(0)/* - login_start_time*/) / 120;
123    
124     if(chictime>=200) {
125     weight-=5;
126     clean+=3;
127     if(tiredstrong>2)
128     tiredstrong-=2;
129     }
130     /*food=food-diff*3;*/
131     if(weight<0)
132     death();
133 sysadm 1.2 /* if((diff-age)>1 && agetmp) ����������
134 sysadm 1.1 {age++;
135     agetmp=0;}
136     */
137 sysadm 1.2 clrtobot(1);
138 sysadm 1.1 prints(
139     "Name:%s"
140 sysadm 1.2 " Age :%d��"
141     " ��:%d"
142     " ʳ��:%d"
143     " ��ʳ:%d"
144     " ƣ��:%d"
145     " ���:%d\n"
146     " ����:%d��%d��"
147     " ����:%8d"
148     " ���ֶ�:%d"
149     " �����:%d",
150     // " ����:%d\n",
151 sysadm 1.1 Name,age,weight,food,zfood,tiredstrong,clean,day
152     ,mon,BBS_user_money,happy,satis);//,oo);
153    
154     moveto (3,0);
155     if(age<=16) {
156     switch(age) {
157     case 0:
158     case 1:
159 sysadm 1.2 prints (" �����\n"
160     "�� ��� ��\n"
161     "�������\n"
162     "��� ���\n"
163     "�������\n"
164     " ����� ");
165 sysadm 1.1
166     break;
167     case 2:
168     case 3:
169 sysadm 1.2 prints (" �������\n"
170     " �� ��\n"
171     "�� �� �� ��\n"
172     "�� ��\n"
173     "�� ��� ��\n"
174     "�� ��\n"
175     "�� ��\n"
176     " �� ��\n"
177     " ������� ");
178 sysadm 1.1
179     break;
180     case 4:
181     case 5:
182    
183 sysadm 1.2 prints (" �������\n"
184     " �� ��\n"
185     " �� �� �� ��\n"
186     " �� ��\n"
187     " �� ��� ��\n"
188     "���� ��� ���\n"
189     " �� ��\n"
190     " �� ��\n"
191     " �� ����� ��\n"
192     " �� �� ��\n"
193     " �� ");
194 sysadm 1.1 break;
195     case 6:
196     case 7:
197 sysadm 1.2 prints (" �� �������\n"
198     "�� ��� �� ��\n"
199     "�� �� ��\n"
200     " ���� ��\n"
201     "�� ��\n"
202     "�� ��� ��\n"
203     " �� �� ��\n"
204     " �� ��\n"
205     " �� ��\n"
206     " ������� ");
207 sysadm 1.1 break;
208    
209     case 8:
210     case 9:
211     case 10:
212 sysadm 1.2 prints (" ��� ���\n"
213     " ����� �����\n"
214     " ������������\n"
215     " �� ��\n"
216     " �� �� �� ��\n"
217     "�� ��\n"
218     "�� ���� ��\n"
219     " �� ��\n"
220     "�� �� �� ��\n"
221     " ��� ����\n"
222     " �� ��\n"
223     " �� ��\n"
224     " �� ���� ��\n"
225     " �� �� ��\n"
226     " �� ");
227 sysadm 1.1
228     break;
229    
230     case 11:
231     case 12:
232 sysadm 1.2 prints (" �������\n"
233     " �� �� ���\n"
234     " �� �� �� ���\n"
235     " ��� ����\n"
236     "�� �� ���\n"
237     "��������� ���\n"
238     " �� ���\n"
239     " �� �� �� ��\n"
240     " �� �� �� ��\n"
241     " �� �� ��\n"
242     " �� ��\n"
243     " �� ���� ��\n"
244     " �� �� �� ��\n"
245     " �� �� ");
246 sysadm 1.1
247     break;
248     case 13:
249     case 14:
250 sysadm 1.2 prints (" �����\n"
251     " ���������\n"
252     " �����������\n"
253     " �������������\n"
254     " �� ����������\n"
255     "��� �� ���\n"
256     "����� ��\n"
257     " �� ��\n"
258     " ��� ���\n"
259     " �� ������� ��\n"
260     " �� ��\n"
261     " �� ��\n"
262     " �� ��\n"
263     " ���� ���� ");
264 sysadm 1.1 break;
265     case 15:
266     case 16:
267 sysadm 1.2 prints (" �� �������\n"
268     "�� ��� �� ��\n"
269     "�� �� ��\n"
270     " ���� ��\n"
271     "�� ��\n"
272     "�� ��� ��\n"
273     " �� �� ��\n"
274     " �� �� �� ��\n"
275     " �� �� ��\n"
276     " �� ��\n"
277     " �� ��\n"
278     " �� ��� ����\n"
279     " �� ��� ��\n"
280     " �� �� ");
281 sysadm 1.1
282     break;
283     }
284     } else {
285 sysadm 1.2 prints (" ��������\n"
286     " �� ����\n"
287     " �� �� �� ����\n"
288     " �������� ���\n"
289     " �� �� ��\n"
290     " �������� �� ���Ǵ����\n"
291     " �� �� ��\n"
292     " ������� ��\n"
293     " �� ��\n"
294     " �� ��\n"
295     " �� ��\n"
296     "��� �� ��\n"
297     "�� ������� ���\n"
298     " �� ��\n"
299     "���� ���Ǵ���� ���� ");
300 sysadm 1.1
301     }
302     if(clean>10) {
303     moveto (10,30);
304 sysadm 1.2 prints ("���ö�..���...");
305 sysadm 1.1 if(clean>15)
306     death();
307 sysadm 1.2 press_any_key ();
308 sysadm 1.1 }
309    
310     moveto (17,0);
311 sysadm 1.2 prints ("[1]-�Է� [2]-����ʳ [3]-���?�� [4]-��С����ȭ [5]-Ŀǰս��");
312     prints ("\n[6]-������$20 [7]-����ʳ$30 [8]-�Դ��� [9]-��� ");
313     //press_any_key ();
314 sysadm 1.1 return 0;
315     }
316    
317     static int select_menu() {
318     char inbuf[80];
319     //int diff;
320     struct tm *ptime;
321     time_t now;
322    
323     time(&now);
324     ptime = localtime(&now);
325     //diff = (time(0) /*- login_start_time*/) / 60;
326     moveto (23,0);
327 sysadm 1.2 prints(" ʹ�ð���  c ������ k ɱ�� t ����ƣ��($50) ");
328 sysadm 1.1 while(1) {
329 sysadm 1.2 get_data (22, 0, "Ҫ��Щʲ����?��[0]", inbuf, 4, 1);
330 sysadm 1.1 if(tiredstrong>20) {
331 sysadm 1.2 clearscr ();
332 sysadm 1.1 moveto (15,30);
333 sysadm 1.2 prints ("��~~~С�����ۻ���...Ҫ��ȥ��Ϣһ��..");
334     prints ("\n\n�� �� ��");
335 sysadm 1.1 }
336     switch(inbuf[0]) {
337     case '1':
338     if (food<=0) {
339     pressany(5);
340     break;
341     }
342     moveto (10,0);
343 sysadm 1.2 prints (" �������\n"
344     " �ߡ� �� ��\n"
345     " �� �� ����� ��\n"
346     " �� �� �� �� ��������\n"
347     " �ã��� �� _����������_ ���������\n"
348     " �� �� ������������������ ��ɡɡ���\n"
349     " �� �� ���������� ��Mcdonald�� ��������\n"
350     " �� �� ���������� ���������\n"
351     " ������� ���������� ��������� ");
352 sysadm 1.1
353     pressany(0);
354 sysadm 1.2 iflush ();
355 sysadm 1.1 sleep(1);
356     food--;
357     tiredstrong++;
358     satis++;
359     if(age<5)
360     weight=weight+(5-age);
361     else
362     weight++;
363     if(weight>100) {
364     moveto (9,30);
365 sysadm 1.2 prints ("̫����2..�ʼ�~~������<�����....���֡��a�");
366     press_any_key ();
367 sysadm 1.1 }
368     if(weight>150) {
369     moveto (9,30);
370 sysadm 1.2 prints ("��������~~");
371     press_any_key ();
372 sysadm 1.1 }
373     if(weight>200)
374     death();
375     break;
376     case '2':
377     if (zfood<=0) {
378     pressany(5);
379     break;
380     }
381     moveto (10,0);
382 sysadm 1.2 prints (" ��\n"
383     " �����\n"
384     " ���\n"
385     " ���\n"
386     " ���\n"
387     "  �� \n"
388     "  ��� ˮ��Ʊ�����մ� ��!�ú�! ");
389 sysadm 1.1 pressany(1);
390     zfood--;
391     tiredstrong++;
392     happy++;
393     weight+=2;
394     if(weight>100) {
395     moveto (9,30);
396 sysadm 1.2 prints ("̫����2..�ʼ�~~");
397     press_any_key ();
398 sysadm 1.1 }
399     if(weight>200)
400     death();
401     break;
402     case '3':
403     moveto (10,0);
404 sysadm 1.2 prints (" ������\n"
405     " �������\n"
406     " �����\n"
407     " ����������������\n"
408     " ���������������\n"
409     " ���������� ��\n"
410     " ����������\n"
411     " �������\n"
412     "  �������\n"
413     " ҮҮҮ...���-���... ");
414 sysadm 1.1
415     pressany(2);
416     tiredstrong+=5;
417     clean=0;
418     break;
419     case '4':
420     guess();
421     satis+= (ptime->tm_sec%2);
422     tiredstrong++;
423     break;
424     case '5':
425     situ();
426     break;
427     case '6':
428     moveto (20,0);
429     if(BBS_user_money<20) {
430 sysadm 1.2 prints ("�ǹ���!!");
431     press_any_key ();
432 sysadm 1.1 break;
433     }
434     food+=5;
435 sysadm 1.2 prints("\nʳ����  %d ��",food);
436     prints(" ʣ��  %d ��",demoney(20));
437     press_any_key ();
438 sysadm 1.1 break;
439    
440     case '7':
441     moveto (20,0);
442     if(BBS_user_money<30) {
443 sysadm 1.2 prints ("�ǹ���!!");
444     press_any_key ();
445 sysadm 1.1 break;
446     }
447     zfood+=5;
448 sysadm 1.2 prints("\n��ʳ��  %d ��",zfood);
449     prints(" ʣ��  %d ��",demoney(30));
450     press_any_key ();
451 sysadm 1.1 break;
452     case '8':
453     moveto (21,0);
454     if(oo>0) {
455     moveto (10,0);
456     prints ("\n"
457 sysadm 1.2 " �����\n"
458     " �����\n"
459     " �����\n"
460     " ͵�Խ�ҩ����.....");
461 sysadm 1.1 tiredstrong = 0;
462     happy+=3;
463     oo--;
464     pressany(6);
465     break;
466     }
467     moveto (20,4);
468 sysadm 1.2 prints ("û����2!!");
469     press_any_key ();
470 sysadm 1.1 break;
471    
472     case '9':
473     if(age<5) {
474     moveto (20,4);
475 sysadm 1.2 prints("̫С��...���÷���δ����С��.....");
476     press_any_key ();
477 sysadm 1.1 break;
478     }
479     sell();
480     break;
481     case 'k':
482     death();
483     break;
484     case 't':
485     tiredstrong = 0;
486     BBS_user_money-=50;
487     break;
488     case 'c':
489 sysadm 1.2 get_data (22, 0, "��С��ȡ������֣�", Name, 21, 1);
490 sysadm 1.1 break;
491     default:
492     return -1;
493     break;
494     }
495     show_chicken();
496     }
497     return 0;
498     }
499    
500     int death() {
501     char fname[50];
502     FILE *fp;
503     struct tm *ptime;
504    
505     time_t now;
506    
507     time(&now);
508     ptime = localtime(&now);
509 sysadm 1.2 clearscr ();
510     clrtobot(5);
511 sysadm 1.1 if((fp = fopen("game/chicken", "a"))!=NULL)
512     prints("Error!\n");
513     /*fp=fopen("game/chicken,"ab");*/
514 sysadm 1.2 fprintf(fp,"%s �� [%d/%d %d:%02d] ���� %s ����~~ \n",
515 sysadm 1.1 BBS_username,ptime->tm_mon + 1, ptime->tm_mday,
516     ptime->tm_hour, ptime->tm_min,Name);
517     fclose(fp);
518 sysadm 1.2 prints ("��...������....");
519     prints ("\n��ʷ��...�ϳ�ϵͳ...");
520     press_any_key ();
521 sysadm 1.1 setuserfile(fname, DATA_FILE);
522    
523     unlink(fname);
524     //strcpy(Name,"");
525     creat_a_egg();
526     chicken_main();
527     //abort_bbs();
528     return 0;
529     }
530    
531 sysadm 1.2 /*int comeclearscr ()
532 sysadm 1.1 {
533     extern struct commands cmdlist[];
534    
535 sysadm 1.2 domenu(MMENU, "��\�ܱ�", (chkmail(0) ? 'M' : 'C'), cmdlist);
536 sysadm 1.1 }
537     */
538    
539     int pressany(i) {
540     int ch;
541     moveto (23,0);
542     prints(" %s ",cstate[i]);
543     do {
544     ch = igetch ();
545     /*
546     if (ch == KEY_ESC && KEY_ESC_arg == 'c')
547     // capture_screen()
548 sysadm 1.2 clearscr ();
549 sysadm 1.1 */
550     } while ((ch != ' ') && (ch != KEY_LEFT) && (ch != '\r') && (ch != '\n'));
551     moveto (23, 0);
552     clrtoeol();
553 sysadm 1.2 iflush ();
554 sysadm 1.1 return 0;
555     }
556    
557     int guess() {
558     int ch,com;
559     struct tm *qtime;
560     time_t now;
561    
562     time(&now);
563     qtime = localtime(&now);
564    
565     do {
566 sysadm 1.2 /*getdata(22, 0, "[1]-�� [2]-ʯͷ [3]-����", inbuf, 4,
567 sysadm 1.1 DOECHO,NULL);*/
568     moveto (23,0);
569 sysadm 1.2 prints ("[1]-�� [2]-ʯͷ [3]-����");
570 sysadm 1.1 ch = igetch ();
571     } while((ch!='1')&&(ch!='2')&&(ch!='3'));
572    
573     /* com=qtime->tm_sec%3;*/
574     com=rand()%3;
575     moveto (21,35);
576     switch(com) {
577     case 0:
578 sysadm 1.2 prints ("��:��");
579 sysadm 1.1 break;
580     case 1:
581 sysadm 1.2 prints ("С��:ʯͷ");
582 sysadm 1.1 break;
583     case 2:
584 sysadm 1.2 prints ("��:��");
585 sysadm 1.1 break;
586     }
587    
588     moveto (19,0);
589    
590    
591     switch(ch) {
592     case '1':
593 sysadm 1.2 prints ("����---���Ҽ�4�ĵ�---");
594 sysadm 1.1 if (com==0)
595     tie();
596     else if (com==1)
597     lose();
598     else if (com==2)
599     win_c();
600     break;
601     case '2':
602 sysadm 1.2 prints ("��---����һ��ʯͷ!!---");
603 sysadm 1.1 if (com==0)
604     win_c();
605     else if (com==1)
606     tie();
607     else if (com==2)
608     lose();
609     break;
610     case '3':
611 sysadm 1.2 prints ("�<�---����һ���Ʋ�!---");
612 sysadm 1.1 if (com==0)
613     lose();
614     else if (com==1)
615     win_c();
616     else if (com==2)
617     tie();
618     break;
619     }
620     /* sleep(1);*/
621 sysadm 1.2 press_any_key ();
622 sysadm 1.1 return 0;
623     }
624    
625     int win_c() {
626     winn++;
627     /* sleep(1);*/
628 sysadm 1.2 moveto (20,0);
629     prints ("�ж�:С������.... >_<~~~~~\n"
630 sysadm 1.1 "\n"
631     " ");
632     return 0;
633     }
634     int tie() {
635     /* sleep(0);*/
636 sysadm 1.2 moveto (21,0);
637     prints ("�ж�:ƽ�� -_-\n"
638 sysadm 1.1 "\n"
639     " ");
640     return 0;
641     }
642     int lose() {
643     losee++;
644     happy+=2;
645     /*sleep(0);*/
646 sysadm 1.2 moveto (21,0);
647     prints ("С��Ӯ�� �ɡ�\n"
648     " �� ");
649 sysadm 1.1 return 0;
650     }
651    
652     int situ() {
653    
654     moveto (16,0);
655     prints (" ");
656     moveto (17,0);
657 sysadm 1.2 prints ("��: %dʤ %d�� ",winn,losee);
658 sysadm 1.1 moveto (18,0);
659 sysadm 1.2 prints ("��: %dʤ %d�� ",losee,winn);
660 sysadm 1.1
661     if (winn>=losee)
662     pressany(4);
663     else
664     pressany(3);
665    
666     return 0;
667     }
668    
669     void p_bf() {
670     FILE *fp;
671     char fname[50];
672     // modify_user_mode(CHICK);
673 sysadm 1.2 clearscr ();
674 sysadm 1.1 moveto (21,0);
675     if(BBS_user_money<100) {
676 sysadm 1.2 prints ("�ǹ���!!");
677     press_any_key ();
678 sysadm 1.1 return;
679     }
680     setuserfile(fname, "chicken");
681     if ((fp = fopen(fname, "r+")) == NULL) {
682 sysadm 1.2 prints ("û��..��������..����...");
683     press_any_key ();
684 sysadm 1.1 return;
685     } else {
686     fp = fopen(fname, "r");
687     fscanf(fp,"%d %d %d %d %d %d %d %d %d %d %s %d %d"
688     ,&weight,&mon,&day,&satis,&age,&oo,&happy,&clean,&tiredstrong,&play,Name
689     ,&winn,&losee);
690     fclose(fp);
691     oo++;
692 sysadm 1.2 prints("\n������ %d ��",oo);
693     prints(" ʣ�� %d ��,��Ǯ100",demoney(100));
694     press_any_key ();
695 sysadm 1.1 fp = fopen(fname, "r+");
696     /*if (last!=1)
697     { */
698     fprintf(fp,"%d %d %d %d %d %d %d %d %d %d %s %d %d"
699     ,weight,mon,day,satis,age,oo,happy,clean,tiredstrong,play,Name
700     ,winn,losee);
701     fclose(fp);
702     }
703     return;
704     }
705    
706 sysadm 1.2 /*
707 sysadm 1.1 int year(char *useri) {
708     FILE *fp;
709     char fname[50];
710     getuser(useri);
711     sethomefile(fname, useri, "chicken");
712     if ((fp = fopen(fname, "r+")) == NULL) {
713     return -1;
714     }
715     fscanf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %s "
716     ,&weight,&mon,&day,&satis,&age,&oo,&happy,&clean,&tiredstrong,&play
717     ,&winn,&losee,&food,&zfood,Name);
718     fclose(fp);
719     return age;
720    
721     }
722 sysadm 1.2 */
723 sysadm 1.1 int sell() {
724     int sel=0;
725     char ans[5];
726     struct tm *ptime;
727     FILE *fp;
728     time_t now;
729    
730     time(&now);
731     ptime = localtime(&now);
732    
733 sysadm 1.2 get_data(20, 0, "ȷ��Ҫ���С��?[y/N]",ans,3,1);
734 sysadm 1.1 if(ans[0]!='y')
735     return -1;
736     sel+=(happy*10);
737     sel+=(satis*7);
738     sel+= ((ptime->tm_sec%9)*10);
739     sel+= weight;
740     sel+=age*10;
741     moveto (20,0);
742 sysadm 1.2 prints("С��ֵ$$ %d ����",sel);
743     get_data(19, 0, "���Ҫ���С��?[y/N]",ans,3,1);
744 sysadm 1.1 if(ans[0]!='y')
745     return -2;
746    
747     if((fp = fopen("game/chicken", "a"))!=NULL)
748     ;
749 sysadm 1.2 fprintf(fp,"%s �� [%d/%d %d:%02d] ��С�� %s �� %d �ǹ�����\n",
750 sysadm 1.1 BBS_username,ptime->tm_mon + 1, ptime->tm_mday,
751     ptime->tm_hour, ptime->tm_min,Name,sel);
752     fclose(fp);
753 sysadm 1.2 clearscr ();
754 sysadm 1.1
755     inmoney(sel);
756     strcpy(Name,"");
757     creat_a_egg();
758     chicken_main();
759     return 0;
760     }
761    
762     int gagb_c() {
763     char abuf[5],buf1[6];
764     char ans[5];
765     int i,k,flag[11],count=0,GET=0;
766     int l=1,money=0;
767    
768     //setutmpmode(NANB);
769 sysadm 1.2 clearscr ();
770 sysadm 1.1 do {
771     /* while(strlen(buf1)<1)*/
772 sysadm 1.2 get_data (0, 0, "ҪѺ�����ǹ�(���2000)��", buf1, 5, 1);
773 sysadm 1.1 money=atoi(buf1);
774     if(BBS_user_money<money) {
775 sysadm 1.2 prints ("����$$");
776     press_any_key ();
777 sysadm 1.1 return 0;
778     }
779     } while((money<=0)||(money>2000));
780     demoney(money);
781     for(i=0;i<11;i++)
782     flag[i]=0;
783     for(i=0;i<4;i++) {
784     do {
785     k=rand()%9;
786     } while (flag[k]!=0);
787     flag[k]=1;
788     ans[i]=k+'0';
789     }
790     while(!GET) {
791     ga(abuf,l);
792     if (abuf[0]=='q'&&abuf[1]=='k') {
793 sysadm 1.2 prints("Ͷ��..���� %d��",count);
794     prints("\n����:%s",ans);
795     press_any_key ();
796 sysadm 1.1 /*return 0*/
797     ;
798     }
799     if(abuf[0]=='q') {
800 sysadm 1.2 prints("\n����:%s",ans);
801     press_any_key ();
802 sysadm 1.1 return 0;
803     }
804     if(compare(ans,abuf,count))
805     /* GET=1;*/
806     break;
807     if(count>8) {
808 sysadm 1.2 prints ("����..��ʮ�λ�����...����û��..");
809     press_any_key ();
810 sysadm 1.1 return 0;
811     }
812     count++;
813     l+=2;
814     }
815     count++;
816     switch(count) {
817     case 1:
818     money*=10;
819     break;
820     case 2:
821     case 3:
822     money*=6;
823     break;
824     case 4:
825     case 5:
826     money*=3;
827     break;
828     case 6:
829     money*=2;
830     break;
831     case 7:
832     money*=2;
833     break;
834     case 8:
835     money*=1.1;
836     break;
837     case 9:
838     money+=10;
839     break;
840     /* case 8:
841     money*=2;
842     break;*/
843     default:
844     /* money/=2;*/
845     money=1;
846     break;
847     }
848     inmoney(money);
849    
850 sysadm 1.2 prints("\n��춶���..���� %d �� ������ %d ��",count,money);
851     press_any_key ();
852 sysadm 1.1
853     return 0;
854     }
855    
856     static int compare(char ans[],char buf[],int c) {
857     int i,j,A,B;
858    
859     A=0;
860     B=0;
861     for(i=0;i<4;i++)
862     if(ans[i]==buf[i])
863     A++;
864     for(i=0;i<4;i++)
865     for(j=0;j<4;j++)
866     if((ans[i]==buf[j])&&(i!=j))
867     B++;
868     prints("%s",buf);
869 sysadm 1.2 prints(" ���: %d A %d B ʣ %d ��\n",A,B,9-c);
870     /* press_any_key (); */
871 sysadm 1.1 if(A==4)
872     return 1;
873     else
874     return 0;
875     }
876    
877     static int ga(char buf[],int l) {
878     int ok=0;
879    
880 sysadm 1.2 get_data (l, 0, "������µ�����(��λ���ظ�)��", buf, 5, 1);
881 sysadm 1.1 if (strlen(buf)!=4) {
882     if (buf[0]=='z'&&buf[1]=='k')
883     return 0;
884     if (buf[0]=='q')
885     return 0;
886 sysadm 1.2 prints ("��4..����4λ");
887     /* press_any_key ();*/
888 sysadm 1.1 return 0;
889     }
890     if((buf[0]!=buf[1])&&(buf[0]!=buf[2])&&(buf[0]!=buf[3])
891     &&(buf[1]!=buf[2])&&
892     (buf[1]!=buf[3])&&(buf[2]!=buf[3]))
893     ok=1;
894     if(ok!=1) {
895 sysadm 1.2 prints ("�ظ���");
896     /*press_any_key ();*/
897 sysadm 1.1 return 0;
898     }
899    
900     return 0;
901     }
902    
903 sysadm 1.2 /*
904 sysadm 1.1 int nam(char *useri) {
905     FILE *fp;
906     char fname[50];
907     getuser(useri);
908     sethomefile(fname, useri, "chicken");
909     if ((fp = fopen(fname, "r+")) == NULL) {
910     return -1;
911     }
912     fscanf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %s "
913     ,&weight,&mon,&day,&satis,&age,&oo,&happy,&clean,&tiredstrong,&play
914     ,&winn,&losee,&food,&zfood,Name);
915     fclose(fp);
916     //return Name;
917     return 1;
918     }
919 sysadm 1.2 */
920 sysadm 1.1
921    
922     int mary_m() {
923     FILE *fp;
924     // modify_user_mode(MARY);
925     if ((fp = fopen("game/bank", "r")) == NULL) {
926     fp = fopen("game/bank", "w");
927     fprintf(fp,"%ld",1000000L);
928     fclose(fp);
929     }
930     fp = fopen("game/bank", "r");
931     fscanf(fp,"%ld",&bank);
932     fclose(fp);
933 sysadm 1.2 clearscr();
934 sysadm 1.1 p_mon=0;
935     q_mon=BBS_user_money;
936     show_m();
937    
938     fp = fopen("game/bank", "r+");
939     fprintf(fp,"%ld",bank);
940     fclose(fp);
941     return 0;
942     }
943    
944     static int show_m() {
945     int i,j,k,m;
946    
947     moveto (0,0);
948 sysadm 1.2 clearscr ();
949     prints (" ��� ���\n"
950     " �� �ܣ� ��\n"
951     " �� ��� �� ��� ��\n"
952     " ��___�����ܡ��\n"
953     " �� ___ ___ ��\n"
954     " ������_���_�� ����\n"
955     " (~~.�� �ܣ� ��.~~)\n"
956     " `�ܣ� �� �� �� �ܣ�\n"
957     " �� �� �ܡ��� ��\n"
958     " �� �ܣ��� �� ��ܣ�\n"
959     " �� �� ��ϡ� ��\n"
960     " �� ��___���ϣ�___��\n"
961     " �� ��__��__�� ��ӭ����С����..");
962 sysadm 1.1
963     moveto (13,0);
964 sysadm 1.2 prints ("�����ǹ�: %-d ����̨���ֽ�: %-ld",q_mon,bank);
965 sysadm 1.1 moveto (14,0);
966    
967    
968 sysadm 1.2 prints("����������������������������������������������������������������������������\n");
969 sysadm 1.1
970 sysadm 1.2 prints("ƻ��-1 bar-2 777-3 ���-4 BAR-5 ����-6 ���-7 ����-8 ��֦-9\n");
971     prints("x5 x40 x30 x25 x50 x20 x15 x10 x2��\n");
972 sysadm 1.1 prints("%-7d%-7d%-7d%-7d%-7d%-7d%-7d%-7d%-7d\n",x[0],x[1],x[2],x[3],x[4],x[5],
973     x[6],x[7],x[8]);
974    
975 sysadm 1.2 prints("\n������������������������������������������aȫѹ����������s��ʼ������q�뿪����");
976     get_data (20, 0, "ҪѺ����(��Ѻ���)��", buf, 2, 1);
977 sysadm 1.1 switch(buf[0]) {
978     case 's':
979     doit();
980     return 0;
981     break;
982     case 'a':
983 sysadm 1.2 get_data (21, 0, "ҪѺ�����ǣ�", buf1, 6, 1);
984 sysadm 1.1 for(i=0;i<=8;i++)
985     x[i]=atoi(buf1);
986     j=(x[0]*9);
987     j=abs(j);
988     if(q_mon<j) {
989 sysadm 1.2 prints ("�ǹ���");
990     press_any_key ();
991 sysadm 1.1 for(i=0;i<=8;i++)
992     x[i]=0;
993     show_m();
994     return -1;
995     }
996     /* demoney(j);*/
997     q_mon-=j;
998     p_mon+=j;
999     /* strcpy(buf," ");*/
1000     show_m();
1001     return 0;
1002     break;
1003     case 'q':
1004     for(i=0;i<=8;i++)
1005     x[i]=0;
1006     return 0;
1007     break;
1008     case 't':
1009     m=10000000;
1010     for(i=1;i<=5;i++) {
1011 sysadm 1.2 clearscr ();
1012 sysadm 1.1 moveto (20,i);
1013     prints ("x");
1014     if(i%3==0)
1015     m*=10;
1016     for(j=1;j<=m;j++)
1017     k=0;
1018    
1019 sysadm 1.2 iflush ();
1020 sysadm 1.1
1021     }
1022     return 0;
1023     break;
1024     default:
1025     i=atoi(buf);
1026     break;
1027     }
1028     k=x[i-1];
1029     do {
1030 sysadm 1.2 get_data (21, 0, "ҪѺ�����ǣ�", buf1, 6, 1);
1031 sysadm 1.1 x[i-1]+=atoi(buf1);
1032     j=atoi(buf1);
1033     } while(x[i-1]<0);
1034    
1035     /* j=x[i-1];*/
1036     if(j<0)
1037     j=abs(j);
1038     if(q_mon<j) {
1039 sysadm 1.2 prints ("�ǹ���");
1040     press_any_key ();
1041 sysadm 1.1 x[i-1]=k;
1042 sysadm 1.2 clearscr ();
1043 sysadm 1.1 j=0;
1044     }
1045     q_mon-=j;
1046     p_mon+=j;
1047     /* demoney(j);*/
1048     show_m();
1049     return 0;
1050     }
1051    
1052     static int doit() {
1053     int i,j,k,m,seed,flag=0,flag1=0;
1054     int g[10]={5,40,30,25,50,20,15,10,2,0};
1055    
1056 sysadm 1.2 clearscr ();
1057 sysadm 1.1 moveto (0,0);
1058     /* prints ("
1059 sysadm 1.2 ������������
1060     �� ��
1061     �� ��
1062     �� �ΣɣΣԣţΣģ� ��
1063     �� ����ת���� ��
1064     �� �������� ��
1065     �� ��
1066     ������������
1067 sysadm 1.1 NINTENDO
1068    
1069 sysadm 1.2 ��
1070     ���� ��
1071     �� ��
1072     �� �� .....
1073 sysadm 1.1 .......
1074 sysadm 1.2 .....��
1075 sysadm 1.1 ");
1076     */
1077     m=1000000;
1078     for(i=1;i<=30;i++) {
1079 sysadm 1.2 clearscr ();
1080 sysadm 1.1 moveto (10,i);
1081 sysadm 1.2 prints ("��");
1082 sysadm 1.1 if(i%23==0)
1083     m*=10;
1084     for(j=1;j<=m;j++)
1085     k=0;
1086    
1087 sysadm 1.2 iflush ();
1088 sysadm 1.1
1089     }
1090     demoney(p_mon);
1091 sysadm 1.2 iflush ();
1092 sysadm 1.1 sleep(1);
1093 sysadm 1.2 clearscr ();
1094 sysadm 1.1 moveto (10,31);
1095     gold=0;
1096     seed=time(0)%10000;
1097     //if(p_mon>=50000)
1098     // seed=1500;
1099    
1100     do {
1101     ran=rand()%seed;
1102     flag1=0;
1103    
1104     moveto (10,31);
1105     if(ran<=480) {
1106 sysadm 1.2 prints ("��֦");
1107 sysadm 1.1 j=8;
1108     } else if(ran<=670) {
1109 sysadm 1.2 prints ("ƻ��");
1110 sysadm 1.1 j=0;
1111     } else if(ran<=765) {
1112 sysadm 1.2 prints ("����");
1113 sysadm 1.1 j=7;
1114     } else if(ran<=830) {
1115 sysadm 1.2 prints ("���");
1116 sysadm 1.1 j=6;
1117     } else if(ran<=875) {
1118 sysadm 1.2 prints ("����");
1119 sysadm 1.1 j=5;
1120     } else if(ran<=910) {
1121 sysadm 1.2 prints ("���");
1122 sysadm 1.1 j=3;
1123     } else if(ran<=940) {
1124     prints ("777!");
1125     j=2;
1126     } else if(ran<=960) {
1127     prints ("bar!");
1128     j=1;
1129     } else if(ran<=975) {
1130     prints ("BAR!");
1131     j=4;
1132     } else {
1133 sysadm 1.2 /* prints ("test ��ȥ�ұ� ����һ��\n");
1134 sysadm 1.1 for(i=4;i<=8;i++)*/
1135 sysadm 1.2 prints ("��л�ݹ�");
1136 sysadm 1.1 /* for(i=0;i<=8;i++)
1137     x[i]=0;*/
1138     j=9;
1139     }
1140     gold=x[j]*g[j];
1141     if(!flag)
1142     if(gold>=10000) {
1143     flag=1;
1144     flag1=1;
1145     }
1146     /* } while( ran>976 || flag1 );*/
1147     } while(flag1);
1148 sysadm 1.2 iflush ();
1149 sysadm 1.1 sleep(1);
1150     moveto (11,25);
1151 sysadm 1.2 prints("��ɵ� %d ����",gold);
1152     iflush ();
1153 sysadm 1.1 if (gold>0) {
1154     bank-=gold;
1155     bank+=p_mon;
1156     } else
1157     bank+=p_mon;
1158    
1159     inmoney(gold);
1160 sysadm 1.2 press_any_key ();
1161 sysadm 1.1 for(i=0;i<=8;i++)
1162     x[i]=0;
1163     p_mon=0;
1164     q_mon=BBS_user_money;
1165    
1166     show_m();
1167     return 0;
1168     }

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1