-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpip3viet.cpp
More file actions
1813 lines (1696 loc) · 92.1 KB
/
pip3viet.cpp
File metadata and controls
1813 lines (1696 loc) · 92.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// PIP3 - Personal Identity Profile Version 3
// Created by Michael Robbins and Rick Good
// PC program created 10/20/2018 - 4/5/2021 by Walter D. Pullen (Astara@msn.com)
// See also: https://sevenray.org/education/
#include <windows.h>
#include <shellapi.h>
#include <stdio.h>
// Definitions
#define szDate "Ngay 06 thang Tu nam 2021"
#define szAddr "Astara@msn.com"
#define szSave "pip3.sav"
#define fFalse 0
#define fTrue 1
#define cRay 7
#define cPart 4
#define cInit 27
#define cStatement 141
#define cAspire 14
#define cAspire2 13
#define cTrait 28
#define cTrait2 5
#define cResponse 7
#define colMax 80
#define cchSzMax (255*2)
#define chNull '\0'
#define FOdd(n) ((n) & 1)
#define NAbs(b) abs(n)
#define ChHex(n) ((char)((n) < 10 ? '0'+(n) : 'a'+(n)-10))
#define Rgb(bR, bG, bB) \
(((long)(bR)) | ((long)(bG)<<8) | ((long)(bB)<<16))
#define RgbR(l) ((int)((long)(l) & 255))
#define RgbG(l) ((int)(((long)(l) >> 8) & 255))
#define RgbB(l) ((int)((long)(l) >> 16))
#define ClearB(pb, cb) memset(pb, 0, cb)
enum _entrycode {
ecNormal = 0,
ecRetry = 1,
ecNew = 2,
ecDone = 3,
ecExit = 4,
ecLast = 5,
ecUndo = 6,
ecGoto = 7,
ecPart = 8,
ecLate = 9,
};
// Types
typedef int flag;
typedef float real;
typedef struct _statement {
int ray;
int nType;
flag fReverse;
flag fSkip;
char *sz;
} STATEMENT;
typedef struct _trait {
int ray;
char *sz;
} TRAIT;
typedef struct _response {
int res;
int resf;
} RESPONSE;
typedef struct _powerray {
int typea;
int typeb;
int gen;
int tot;
} POWRAY;
// Tables
const char *rgInit[cInit] = {
"day du ho ten",
"cho o hien tai cua ban (thanh pho, tinh, quoc gia)",
"noi sinh (thanh pho, tinh, quoc gia)",
"ngay sinh (thang, ngay, nam, phut)",
"nghe nghiep hien nay",
"nghe nghiep truoc day",
"chuyen nganh hoc va cac mon hoc yeu thich",
"so thich va thien huong",
"cac muc tieu lon trong cuoc song",
"cac nhan to dan ban den viec tim hieu huyen bi hoc",
"thoi gian ban da tim hieu ve huyen bi hoc",
"thoi gian ban da nghien cuu ve Alice Bailey",
"thoi gian ban da nghien cuu ve 7 Cung",
"thoi gian ban da nghien cuu ve Chiem tinh hoc Ngoai mon",
"thoi gian ban da nghien cuu ve Chiem tinh hoc Ngoai mon",
"Cung Chan Than uoc doan cua ban (1-7)",
"Muc do tu tin vao uoc doan Cung Chan than cua ban",
"Cung Linh hon uoc doan cua ban (1-7)",
"Muc do tu tin cua ban vao Cung Linh hon uoc doan",
"Cung Pham nga uoc doan cua ban (1-7)",
"Muc do tu tin cua ban vao Cung Pham nga uoc doan",
"Cung The tri uoc doan cua ban (1-7)",
"Muc do tu tin cua ban vao Cung The tri uoc doan",
"Cung the cam duc uoc doan cua ban (1-7)",
"Muc do tu tin cua ban vao Cung the cam duc uoc doan",
"Cung co the vat ly uoc doan cua ban (1-7)",
"Muc do tu tin cua ban vao Cung co the vat ly uoc doan",
};
const char *rgInit2[cInit] = {
"Ho Ten",
"Noi o hien tai",
"Noi sinh",
"Thoi gian sinh",
"Nghe nghiep hien nay",
"Nghe nghiep truoc day",
"Nhung chu de ua thich",
"Thien huong",
"Cac muc tieu lon trong cuoc song",
"Cac nhan to dan ban den viec tim hieu huyen bi hoc",
"Nghien cuu huyen bi hoc trong bao lau",
"Nghien cuu Alice Bailey trong bao lau",
"Nghien cuu Bay Cung trong bao lau",
"Nghien cuu Chiem tinh ngoai mon trong bao lau",
"Nghien cuu Chiem tinh hoc Noi mon trong bao lau",
"Cung Chan Than uoc doan",
"Muc do tu tin vao uoc doan Cung Chan than",
"Cung Linh hon uoc doan",
"Muc do tu tin cua ban vao Cung Linh hon",
"Cung Pham nga uoc doan",
"Muc do tu tin vao Cung Pham nga uoc doan",
"Cung The tri uoc doan",
"Muc do tu tin vao Cung The tri uoc doan",
"Cung the cam duc uoc doan",
"Muc do tu tin vao Cung the cam duc uoc doan",
"Cung co the vat ly uoc doan",
"Muc do tu tin vao Cung co the vat ly uoc doan",
};
const char *rgInitDef[cInit] = {
"HO THANH HOA",
"HANOI, HANOI, VIETNAM",
"HANOI, HANOI, VIETNAM",
"Thang 11 01, 1971 LUC 11:00pm",
"BAO MAU TAI GIA",
"QUAN LY IT",
"CONG NGHE TIN HOC",
"Huyen bi hoc",
"TRI LIEU HUYEN MON",
"TINH YEU VOI CHAN LY",
"Tu 2016",
"Tu 2018",
"Since 2018",
"Since 2018",
"Since 2018",
"1",
"THUONG CHAC CHAN",
"2",
"THUONG CHAC CHAN",
"1",
"THUONG CHAC CHAN",
"4 - cung 5 phu",
"THUONG CHAC CHAN",
"6",
"THUONG CHAC CHAN",
"3",
"THUONG CHAC CHAN",
};
#define G 1
#define a 2
#define b 4
#define Ga (G|a)
#define Gb (G|b)
#define norm 0
#define REVERSE 1
#define inc 0
#define SKIP 1
const STATEMENT rgStatement[cStatement] = {
{3, a, norm, inc, "Toi la mot nguoi co tu duy truu tuong dieu luyen, nguoi ma mot cach tu nhien co the nhan thay cac kieu mau truu tuong trong triet hoc, toan hoc, ly thuyet hoac cac moi quan he co tinh he thong hap dan hon rat nhieu viec kham pha va ap dung nhung kien thuc thuc tien, cu the, co tinh nghe thuat hay tham chi la khoa hoc, cho du nhung kien thuc cu the nhu vay von di ly thu va huu dung ngay lap tuc."},
{6, Gb, norm, inc, "Neu toi thuc su yeu ai do, toi se di den \"tan cung troi cuoi dat\" de bay to tinh yeu cua minh "},
{6, b, norm, inc, "Toi duoc biet den la mot nguoi co thai do lac quan, nhiet tinh, \"khong that vong\" va \"khong bao gio bo cuoc\"."},
{4, b, norm, inc, "Cuoc song toi da tung trai qua nhung thang tram, nhung luc \"len voi, xuong cho\"."},
{6, a, norm, inc, "Toi cam nhan rat ro ret rang minh dang duoc dan dat. Toi co niem tin tuyet doi vao su dan dat do va di theo no."},
{4, a, norm, inc, "Kien tao cai dep trong moi thu toi lam la dieu hoan toan khong the thieu duoc voi toi. Toi luon tim cach de tro thanh \"nguoi nghe si cua doi minh\"."},
{7, G, norm, inc, "Toi la tuyp nguoi luon \"sap dat moi viec\" va \"phan loai moi thu ngan nap\". Phuong cham cua toi la \"mot noi cho tat ca moi thu va moi thu phai o dung vi tri\" cua no."},
{1, a, norm, inc, "Cho du cuoc doi doi xu voi toi nhu nao, toi van dung vung, ngang cao dau, kien dinh, khong so hai, vung vang va kien tri den cung."},
{1, b, norm, inc, "Toi khong ngan ngai do du pha bo nhung cai cu va khong can thiet hon da so moi nguoi."},
{2, G, norm, inc, "Toi gan nhu luc nao cung <i>dong hoa</i> (ngay lap tuc va sau sac) nhung cam xuc va tinh trang the tri cua nguoi khac. Hap thu duoc chung nhu the chung la cua chinh ban than minh."},
{1, a, norm, inc, "Toi la mot nha lanh dao bam sinh."},
{3, a, norm, inc, "Tren het, toi la mot *<i>nha tu tuong</i>*, biet su dung su thong minh cua minh de suy nghi o tam * nhung khai niem rong nhat * ve bat ky chu de nao toi dang nghien cuu."},
{1, a, norm, inc, "So voi nhung nguoi khac, toi co mot y chi vo cung manh me va vung vang."},
{7, b, norm, inc, "Toi la mot \"nguoi to chuc\" - noi dung hon, la mot \"nguoi tai to chuc\" - mot nguoi co the manh chu yeu o viec thiet ke, xay dung hoac quan ly hieu qua tat ca cac chi tiet cua bat cu loai to chuc moi nao (du lon hay nho) duoc can den de giup nhan loai giai quyet nhieu van de - cho du la ve phap luat, tai chinh, xa hoi, ton giao hay chinh phu v.v."},
{5, G, norm, inc, "Toi dac biet gioi toan ung dung, mot nganh toan doi hoi tinh toan chinh xac va thanh thao cac phep toan so hoc khac nhau von co the ung dung vao giai quyet cac van de thuc te."},
{1, G, norm, inc, "Khi toi so sanh ban than minh voi nguoi khac, toi co the thanh that noi rang toi la mot nguoi co suc manh khac thuong - manh me va kien dinh la hai trong so cac pham chat <i>chi huy</i> cua toi."},
{4, b, norm, inc, "Toi chien dau, roi lai dan hoa, roi lai chien dau, va roi lai lam hoa. Duong nhu toi khong the nao lam gi khac ngoai hai viec do."},
{4, b, norm, inc, "Toi thich nhung gi kich tinh, va cuoc song cua toi chua day nhung trai nghiem kich tinh va nhung mau thuan ve cam xuc."},
{2, b, norm, inc, "Hay cho toi *<i>Minh triet</i>* tren het moi thu; Toi coi trong no hon so voi rat nhieu pham chat thiet yeu khac nhu quyen luc, bac ai, thong tue, tham my, kien thuc, ly tuong, trat tu, v.v ... Minh triet la tren het."},
{1, G, norm, inc, "Toi la nguoi dinh huong nhung nguoi khac."},
{4, b, norm, inc, "Hon hau het moi nguoi, cuoc doi toi day nhung xung dot (noi tam, ben ngoai hoac ca hai), toi rat hay cam thay bi giang xe giua cac luc doi lap."},
{4, b, norm, inc, "Khi toi lam mot viec gi do, cach tiep can dac trung cua toi thuong la bung len hanh dong khong ngung, sau do la khoang thoi gian tho o gan nhu tuong duong (cho du dang ra toi nen hanh dong). Toi chi la khong the bat minh lam mot dieu gi do. Va sau do, dot nhien, tam trang toi thay doi, va toi lai lao vao hanh dong."},
{5, G, norm, inc, "Toi thuong giai quyet cac van de hoac nhiem vu bang phuong phap dinh luong. Toi phan tich hoac danh gia mot van de hay mot nhiem vu tren phuong dien cac con so, va xac dinh mot giai phap phu hop."},
{2, b, norm, inc, "Tat ca cac con duong den trung tam cua ban the - cho du la con duong cua quyen luc, bac ai, thong tue, tham my, kien thuc, xuat than, huyen thuat, v.v. - deu co gia tri nhu nhau, nhung con duong cua toi la vinh vien kien tri theo duoi minh triet tu tam thuan khiet, giac ngo hoan toan va chan ly tuyet doi."},
{4, a, norm, inc, "Toi chi don gian la yeu mau sac va co kha nang cam nhan mau sac tot ma toi the hien bang cach nay hay cach khac vao moi luc."},
{6, a, norm, inc, "Khi toi can nhac tat ca cac cach khac nhau de nang do nhan loai, toi nghi long tin va niem tin vao Thuong De, vao Dang Toi cao hoac Nguon goc Chan ly nao do la dieu quan trong nhat."},
{1, b, norm, inc, "Toi da san sang, duoc trang bi va co khuynh huong thuc day cac van de va dua ra toi hau thu bat cu khi nao toi nghi la can thiet."},
{5, a, norm, inc, "Toi de cao tinh chinh xac hoan toan, thuc su, cho du khi nhung nguoi khac co the mat kien nhan voi muc do chinh xac va dung dan do."},
{7, a, norm, inc, "Toi luon rat can than trong viec xu ly cac van de cho du la cac chi tiet nho nhat, toi muon moi thu phai hoan hao."},
{2, G, norm, inc, "Toi luon tim cach phat trien su thau hieu hoan toan ve con nguoi, su thau hieu sau sac, truc giac, tu \"trai tim den trai tim\"."},
{5, a, norm, inc, "Bat cu khi nao toi tien hanh mot nghien cuu, toi deu thuc hien mot cach nghiem tuc va co he thong, hoan toan nam vung moi chi tiet thuc te cua de tai."},
{1, Gb, norm, inc, "Toi duoc troi phu cho suc manh nang dong de vuot qua cac chuong ngai vat - va toi luon nhu vay!"},
{5, b, norm, inc, "Toi tich cuc tham gia (do nghe nghiep hoac do so thich) vao mot hoac nhieu \"nganh khoa hoc chinh xac\" nhu vat ly, hoa hoc, thien van hoc, sinh hoc, dien tu, khoa hoc may tinh, v.v. hoac nhieu chuong trinh mo rong, ket hop hoac ung dung cua cac nganh nay."},
{5, b, norm, inc, "Toi tiep can giai quyet van de thong qua quan sat truc tiep, can than kiem tra tat ca cac chi tiet. Sau do, toi bat dau thu nghiem mot cach co phuong phap, su dung quy trinh \"thu va sai\" va toi kien tri cho den khi toi tu chung minh rang toi co mot giai phap thuc su hieu qua."},
{1, b, norm, inc, "Toi la nguoi se \"chiem lay Vuong Quoc Thien Duong bang bao to\"."},
{2, G, norm, inc, "Toi co kha nang phat trien cao de nhan thuc ro rang va voi tam nhin xa thay truoc bang truc giac. Kha nang nay dac biet nhay ben khi duoc ap dung de thau hieu con nguoi - tiem nang, dong co, cac van de va moi quan he cua ho."},
{2, a, norm, inc, "Toi co mot nhu cau tham can co de muon nuoi duong va an ui moi nguoi, ngay ca khi toi khong quen biet ho."},
{7, a, norm, inc, "Toi la mot nguoi co thoi quen len lich trinh va danh sach cac viec ; do la cach toi dam bao rang toi se lam moi thu toi phai lam, vao dung thoi diem viec do nen duoc thuc hien va trong khoang thoi gian toi phai lam dieu do."},
{3, a, norm, inc, "Mac du co nhieu thu dang de theo duoi, song toi song cuoc song cua minh chu yeu nhu mot tri thuc, chu yeu tham gia vao the gioi tu tuong."},
{1, b, norm, inc, "Toi khong thay kho khan gi khi cham dut hoac loai bo moi thu. Tren thuc te, toi thuong cam thay phan khich - dac biet la khi mot thu gi do cu va loi thoi can phai duoc loai bo de mot cai gi do moi me co the thay the no."},
{5, b, norm, inc, "Toi thich may mo va tach roi moi thu (cac thiet bi, thiet bi co khi, nhieu do vat khac, v.v.) de xem cach chung duoc lap rap voi nhau, cach chung hoat dong va cach chung co the duoc sua chua."},
{6, G, norm, inc, "Toi thuong khan nguyen voi Thuong De (hoac voi chinh toi hoac voi nguoi khac) rang toi se giu gin mot so ly tuong cao ca."},
{6, a, norm, inc, "Toi khao khat song mot cuoc song voi su trung thuc va trung thanh, tha thiet phung su nhung nguoi toi yeu thuong."},
{3, G, norm, inc, "Toi noi rat nhieu - nhieu hon hau het moi nguoi. Tam tri cua toi thuong chua day nhung suy nghi thu vi, va toi can phai bieu dat chung bang loi."},
{1, G, norm, inc, "Toi co mot kha nang noi bat de khoi xuong hanh dong, kich thich nguoi khac hanh dong. Toi giang cac cu dap bua lam cho moi thu rung dong."},
{3, a, norm, inc, "Cach hanh van cua toi thuong truu tuong, phuc tap va kha kho hieu. Toi thich su trau chuot va phan nhanh, va toi mo rong tam tri minh vao nhieu linh vuc de ket hop nhieu mach suy nghi."},
{4, a, norm, inc, "Trai nghiem ve dep xuat phat tu su sap xep hai hoa, loi cuon mot cach tham my cua ca nhan va cua moi truong xa hoi xung quanh minh la dieu toi quan trong doi voi hanh phuc cua toi."},
{7, b, norm, inc, "Nhiem vu cua toi la \"mang Thien duong den Trai dat\" - khong chi chung chung nhu tat ca nhung nguoi phung su, ma thong qua * <i>bieu hien xuat sac cua cac hinh the thien duong nguyen mau</i> *, thong qua * <i>cac hinh tuong tran the hoan hao.</i>*"},
{3, G, norm, inc, "Toi thich \"tinh toan xac suat\" - dat cuoc va phong doan ve xac suat cac kich ban co the xay ra."},
{7, a, norm, inc, "Hay de cac chi tiet thuc te cho toi; Toi se to chuc chung va thuc hien chung theo cach hieu qua nhat."},
{3, G, norm, inc, "Toi suy luan voi su kheo leo khac thuong ve cac van de co tinh truu tuong, tinh ly thuyet cao trong do mot mang luoi phuc tap cac moi quan he truu tuong phai duoc hieu mot cach ro rang va chinh xac. (Vi du: toan cao cap, triet hoc han lam, ly thuyet kinh te, du bao thi truong hang hoa va chung khoan, xu the lich su, v.v.)"},
{7, a, norm, inc, "Trong hau het moi viec toi lam, hinh thanh mot thoi quen hoac mot nghi thuc ca nhan la dieu hien nhien nhat - mot chuoi mo thuc cac hanh dong lap lai thuong xuyen co hieu qua doi voi toi va toi muon lap lai dieu do."},
{4, G, norm, inc, "Toi qua de dang thoa hiep nhung khi ma dang ra toi nen kien dinh ung ho cac nguyen tac."},
{1, a, norm, inc, "Toi la nguoi cuong quyet, rat can dam khi doi mat voi moi nguy hiem."},
{3, b, norm, inc, "Khi toi xem xet tat ca cac cach khac nhau de nang cao nhan loai, toi cho rang viec kinh doanh tot, nen kinh te thong minh; thong le su dung tien te lanh manh va co hoi tai chinh rong khap la nhung thu quan trong nhat."},
{5, G, norm, inc, "Toi thich doc cac an pham ve hoc thuat hoac ky thuat, trong do giai thich can ke chi tiet nhung tien bo trong cac linh vuc nghien cuu chuyen nganh nhat dinh."},
{1, G, norm, inc, "Khi bi bat cu ai hay bat cu dieu gi can tro, *<i>y chi chinh phuc</i> * cua toi ngay lap tuc troi day."},
{5, G, norm, inc, "Toi rat say me tinh than kham pha khoa hoc, va toi cam thay thich thu va hai long khi theo duoi nghien cuu khoa hoc."},
{1, a, norm, inc, "Toi co muc dich ro rang trong moi viec minh nghi hoac lam."},
{4, G, norm, inc, "Toi khong chi say me nghe thuat sang tao ma toi con the hien va bay to cam xuc cua minh thong qua mot so hinh thuc sang tao nghe thuat."},
{5, G, norm, inc, "Toi thuong co mot thai do rat khach quan, xuat phat tu viec nghien cuu diem tinh, vo tu, tri tue cao va co tinh phan tich cac tinh huong trong cuoc song."},
{1, a, norm, inc, "Toi co du suc manh va su doc lap de dung mot minh; Toi can su ho tro va dong hanh cua nhung nguoi khac it hon nhieu so voi hau het moi nguoi."},
{2, G, norm, inc, "Boi vi toi rat vui khi thay moi nguoi truong thanh va phat trien, nen mot trong nhung niem vui lon nhat cua toi la tro thanh mot huan su."},
{6, a, norm, inc, "Toi giu nhung nguoi toi yeu that gan ben toi; Toi cam thay het long vi ho va ket noi khong the tach roi."},
{7, b, norm, inc, "Toi la mot nguoi theo chu nghia thuc hanh nghi thuc - mot nguoi su dung nhung hanh dong co to chuc, cac suy nghi co kiem soat va tu ngu nhip nhang (cung nhu ngon ngu huyen dieu cua mau sac, am nhac va bieu tuong) de keu goi cac manh luc cao hon de ho tro nhan loai."},
{2, a, norm, inc, "Bang cach nhe nhang, an can, tinh lang va yeu thuong rieng cua minh, toi lay no lam diem de nhan manh vao su tich cuc. Hau nhu toi luon co dieu gi do tot dep de suy nghi hoac noi ve moi nguoi."},
{2, a, norm, inc, "Toi thu hut moi nguoi lai voi nhau thong qua su am ap va tu tinh, va tinh yeu cua toi giup giu moi nguoi lai voi nhau."},
{1, G, norm, inc, "Vi bat cu ly do gi, toi luon co xu huong manh me toi viec gianh the chi phoi. Toi khong do du viec ap dat tham quyen."},
{5, Ga, norm, inc, "Dau oc cua toi ti mi, phan tich ky luong, va duoc chu trong sac sao vao kien thuc thuc te va cac van de cu the, dac thu."},
{5, a, norm, inc, "Toi dua ra nghien cuu ky luong, chi tiet (nhung truc giac) voi tham chi la nhung pham vi rong nhat cua cac chu de; Mot so nguoi goi cach tiep can cua toi mo pham, nhung muc dich cua toi la dat duoc su linh hoi day du, toan dien ve tat ca cac yeu to lien quan, de tro nen nam ro mot chu de (von su dung phuong phap \"cuc ky ti mi\" ua thich cua toi), den muc toi co the hoan toan hap thu duoc chu de do."},
{6, b, norm, inc, "Khi toi theo duoi mot ly tuong cao dep, toi cong hien het minh cho ly tuong do mot cach nhat tam voi cam xuc vo cung manh liet."},
{6, G, norm, inc, "Toi kien dinh voi nhung ly tuong cao ca nhat dinh ma toi tai khang dinh mot cach thuong xuyen va nhiet hanh voi chinh minh va nhan manh voi nhung nguoi khac. Nhung ly tuong nay la \"ngoi sao dan duong\" cho toi, va nho cac ly tuong, toi vach ra lo trinh cuoc doi minh."},
{7, G, norm, inc, "Toi nghi nhung dien mao rat quan trong; Toi dau tu cong suc dang ke de co ngoai hinh dep trong tat ca cac khia canh cua cuoc song va hoan canh cua toi."},
{6, b, norm, inc, "Bat cu khi nao toi \"tham gia\" thu gi do, toi deu say me voi su nhiet tinh khong gioi han."},
{3, b, norm, inc, "Dau oc thong minh, lanh loi cua toi rat phu hop de lam viec trong linh vuc kinh te va tai chinh."},
{5, b, norm, inc, "Khi cac su co ky thuat phat sinh, toi dong vai tro la \"nguoi giai quyet rac roi\"."},
{6, a, norm, inc, "Toi cau nguyen voi niem tin hoan toan rang nhung loi cau nguyen cua toi luon duoc Thuong De hoac Dang toi cao nao do hoi dap, va toi luon san sang chap nhan bat ky hoi dap hoac cau tra loi nao ma toi nhan duoc voi thai do khiem nhuong."},
{4, a, norm, inc, "Toi thich tao ra cac ban hoa tau, cac tac pham hoac nhung su pha tron day mau sac va mang tinh tham my, bang cach lam cho nhung thu thuong khong duoc tim thay cung nhau tro thanh mot the thong nhat day nghe thuat va giau tuong tuong."},
{4, b, norm, inc, "Cam giac that vong va \"chan nan\" thuong xuyen xuat hien trong toi, nhung tam trang toi som phan chan va toi lai \"dung day\" va san sang co gang lan nua."},
{3, b, norm, inc, "Toi thich dich chuyen tien toi cho nay hay cho khac tuy theo viec toi du doan cho nao sinh loi tot nhat."},
{3, b, norm, inc, "Ban chat thich nghi mot cach thong minh va tam nhin xa trong rong cua toi ve cac xu huong thuong mai giup cho viec kinh doanh tro thanh linh vuc bieu hien tu nhien cua toi."},
{3, b, norm, inc, "So voi nhieu nguoi, toi thich tro thanh \"nguoi thong minh\" ve tien bac - dau co, dau tu va su dung tri thong minh cua minh de tao ra loi nhuan"},
{4, G, norm, inc, "Toi nghi, viet va noi bang nhung tu ngu va hinh anh day mau sac."},
{1, b, norm, inc, "Khi toi o trong mot tinh huong ca nhan hay cong viec ma khong nen tiep tuc nhu the nua, toi muon co nhung dieu chinh quyet liet, mang tinh giai phong de ngay lap tuc ket thuc nhung dieu kien cu ky."},
{3, b, norm, inc, "Toi dac biet thich nhung khia canh cua bat ky doanh nghiep kinh doanh nao ma doi hoi toi sap xep cac giao dich mot cach kheo leo va sang tao."},
{5, a, norm, inc, "Khi toi giai thich mot dieu gi do, toi chac chan rang toi cuc ky sang suot, logic va cu the (dua ra cac vi du cu the de minh hoa quan diem cua toi), de nguoi nghe co the nam bat tung chi tiet mot cach hoan toan ro rang."},
{2, G, norm, inc, "Toi lien tuc thien dinh va nghien cuu voi muc dich dat duoc su giac ngo hoan toan va hieu sau sac ve su that - mac du su hieu biet thau dao, ton thoi gian nhu vay co the khong co ung dung thuc te ngay lap tuc trong hoan canh hien tai."},
{4, G, norm, inc, "Toi yeu mau sac; nhung toi khong chi thich no - toi *<i>che tao ra no</i>* trong tat ca nhung gi toi tao ra va toi * <i>the hien khieu mau sac cua minh</i>* trong bo quan ao toi mac."},
{7, a, norm, inc, "Toi la mot trong nhung nguoi yeu cau tat ca moi thu phai duoc thuc hien mot cach kheo leo va theo trinh tu."},
{5, b, norm, inc, "Khi toi nhin vao mot phan thiet bi, suy nghi dau tien cua toi la \"no hoat dong nhu the nao?\" sau do toi tu tim hieu."},
{3, G, norm, inc, "Toi danh rat nhieu thoi gian de truyen dat rat nhieu cac y tuong va thong tin thong qua bat ky phuong tien nao san co cho toi- cho du truyen mieng hay nhieu loai phuong tien truyen thong."},
{6, G, norm, inc, "Toi dang hanh quan ve phia Anh sang."},
{6, G, norm, inc, "Toi thuong xuyen trai nghiem cam xuc dang hien manh me."},
{2, b, norm, inc, "Toi yeu men va ton trong sau sac Duc Christ va hinh mau tinh yeu thuan khiet cua Ngai, nhung ban nang cua toi xui khien toi tim kiem su giac ngo va Tu Nhan Thu thong qua viec dung trai tim va tri thien dinh de co duoc minh triet uyen tham ma Duc Phat day."},
{7, G, norm, inc, "Toi tap trung rat nhieu vao co the, vao cac quy tac va che do giu cho co the khoe manh day suc song, hoac chu y toi cac chuong trinh giup phat huy het tiem nang cua no."},
{3, G, norm, inc, "Toi rat gioi trong viec \"len ke hoach va lap kich ban\" - hoach dinh cac buoc se lam truoc rat nhieu. Toi thuc su la mot chien luoc gia xuat sac."},
{1, G, norm, SKIP, "So voi nhung nguoi khac toi la mot ca nhan manh me - suc manh va su kien dinh la hai trong so nhung pham chat noi troi cua toi."},
{4, Ga, norm, SKIP, "Toi khong chi bi thu hut boi nghe thuat sang tao, ma toi con the hien va giai phong cam xuc cua minh thong qua mot so hinh thuc sang tao nghe thuat."},
{5, b, norm, inc, "Toi cam thay o trong cac phong thi nghiem nhu o nha, va se thich lam viec trong mot so loai phong thi nghiem, noi kien thuc duoc theo duoi va xac nhan bang thuc nghiem."},
{6, G, norm, inc, "Toi mong muon cong hien het minh cho mot muc dich ly tuong hoac cao ca."},
{7, a, norm, inc, "Toi la mot nguoi thuc su hieu gia tri va tam quan trong cua viec ton trong luat phap va \"choi dung luat\"."},
{2, b, norm, inc, "Thong qua viec nghien cuu ky luong va thien dinh sau, toi quyet tam dat toi su thau hieu mot cach truc giac, hoan toan bao gom nhung chi tiet ti mi ve ve dep kieu mau cua su tong the."},
{6, a, norm, inc, "Toi muon ton tho Thuong De, va toi tran day su ton kinh doi voi cac vi thanh va hien nhan vi dai, nhung nguoi minh chung cho cac Con Duong cua Dang Tao Hoa."},
{3, b, norm, inc, "Toi la mot nha chien thuat va chien luoc - mot nguoi luon thich co mot \"ke hoach tro choi\"."},
{6, b, norm, inc, "Toi la mot 'thap tu quan' hien dai chien dau cho mot su nghiep cao ca."},
{2, a, norm, inc, "Cach cua toi la tu do chia se anh nang rang ro cua tinh yeu chan thanh voi cang nhieu nguoi cang tot."},
{1, Gb, norm, inc, "Toi noi ra su that mot cach thang than va truc tiep; no co the lam ton thuong hoac gay phien mot so nguoi, nhung su that la su that va toi khong ngai noi ra dieu von di nhu vay."},
{3, G, norm, inc, "Dau oc sang tao va tu duy linh hoat dac biet cua toi khien toi de dang sua doi va dieu chinh cac y tuong theo moi cach; Toi rat gioi trong viec giup moi nguoi nhin moi thu tu nhieu goc do moi la, tu do giup tang them nhung lua chon cho ho."},
{7, G, REVERSE, inc, "Mot so nguoi noi rang \"dau oc toi o tren may\", nhung toi khong lo lang cho ban than hay nhung nguoi khac ve nhung gi toi cho la khong quan trong. Mac du voi nhung nguoi khac, nhung thu nhu vay thuong rat quan trong, nhung voi toi chung thuong chi la nhung chuyen vat vanh khong the khien toi phien long."},
{4, a, norm, inc, "Toi luon thay minh \"o vi tri trung lap\" - giong mot cay cau trung gian va la tac nhan giup hoa giai cac y kien trai nguoc va cac manh luc doi lap."},
{5, a, norm, inc, "Toi khong chi thich nghien cuu, ma toi con kien nhan va kien tri de theo duoi tung thong tin nho nhat den nguon cua no de dam bao tinh chinh xac trong nghien cuu cua toi."},
{4, a, norm, inc, "Toi la mot \"nguoi kien tao hoa binh\" thien nghe boi vi toi hau nhu luon co su hieu biet thuc su ve \"ca hai phia\" trong cac tinh huong mau thuan va thuc su thich qua trinh cho va nhan von thuong cang thang, tim ra nhung diem dong thuan chung can thiet de giai quyet xung dot va tao ra su hai hoa."},
{2, a, norm, inc, "So voi hau het moi nguoi, toi de dang thiet lap moi quan he tu te, am ap va yeu thuong voi nhung nguoi toi gap."},
{2, G, norm, inc, "Viec tiep can bat ky muc tieu quan trong nao mot cach kien nhan va nhay ben la mot dieu tu nhien nhat voi toi. Toi hoan thanh nhieu viec thong qua su kheo leo, chu dao va hanh dong cham rai mot cach khon ngoan."},
{7, G, norm, inc, "Toi thuc su coi trong cach thuc va phong thai lam viec. Toi la mot nguoi rat gioi trong viec lam moi thu theo \"hinh thuc tot\"."},
{2, b, norm, inc, "Mac du co nhieu cach de the hien tinh yeu, song cach rieng cua toi la ket hop, pha tron tinh yeu voi tri tue hon la chi don gian bieu lo tinh yeu don thuan, vo dieu kien."},
{5, a, norm, inc, "Khi mai me phan biet thu nay voi thu khac, toi tim cach kham pha hoac tim hieu cach phan loai hoac goi ten chinh xac bat cu thu gi ma toi dang nghien cuu, xem xet, de toi co the biet chinh xac do la thu gi va khong phai thu gi."},
{3, G, norm, inc, "Toi la mot ca nhan *<i>rat</i>* tich cuc hoat dong - nhu nhieu nguoi da noi, \"tang dong\". Co rat nhieu viec phai lam va nguoi ta khong the hoan thanh chung bang cach hanh dong cham chap duoc."},
{7, a, norm, inc, "Khi toi sap xep moi thu, toi dac biet hon hau het moi nguoi ve viec sap xep chinh xac, chuan chinh hay \"dung nhu the\"!"},
{7, b, norm, inc, "Toi lien tuc tai cau truc trat tu hien co cua moi vat, cai tien va thiet ke lai cac phuong dien thuc te cua cuoc song hang ngay - cho du trong pham vi ca nhan va cong viec, hoac trong boi canh rong lon hon."},
{1, a, norm, inc, "Toi thuong co quyen luc, suc manh o trung tam cua moi vat; do la mot vi tri hoan toan tu nhien doi voi toi."},
{6, b, norm, inc, "Khi toi thuc su khao khat dat duoc muc tieu, toi \"bung chay\" va \"chay het minh\" cho den khi toi dat duoc muc tieu."},
{3, a, norm, inc, "Toi hanh dong dua tren tien de triet hoc rang chan ly co the dat duoc ma khong can thu nghiem khoa hoc, chu yeu bang cach su dung suy nghi chat che, logic, suy dien - mien la nhung tien de cua mot nguoi la dung va ly luan cua mot nguoi la co co so, hop ly."},
{4, a, norm, inc, "Vi su bat hoa luon khien toi cam thay vo cung kho chiu, nen toi ngay lap tuc hanh dong de khoi phuc lai su hai hoa mot cach nhanh chong va kheo leo nhat co the."},
{3, a, norm, inc, "Toi la mot triet gia, mot nguoi co tri tue. Trong qua trinh tim hieu ve triet hoc sau rong, tinh kho hieu va phuc tap vo tan cua the gioi tri thuc la ngoi nha that su cua toi."},
{1, G, norm, inc, "Toi biet con duong sieu viet huong moi nguoi lam theo y chi cua toi hoac Y chi cua Dang Toi cao - thuc te la toi khien ho lam nhu vay."},
{2, a, norm, inc, "Thuong thi toi cam thay tran day su cam thong va long trac an cho tat ca moi nguoi. Nhung luc dac biet nhu vay, toi yeu va tha thu tat ca mot cach vo dieu kien, bat ke ho la ai, hay ho da lam gi."},
{7, b, norm, inc, "Toi thuc su co kha nang dua nhung thu hon loan trong cuoc song con nguoi tro lai trat tu mot cach nhip nhang, bang cach hien thuc nhung y tuong co tinh chuyen hoa qua hanh dong thuc tien va chung kien chung bieu hien hoan hao."},
{7, b, norm, inc, "Toi la mot nha \"huyen thuat\" hien dai. Quen thuoc voi cac manh luc thien than va tinh linh cua tu nhien, toi ap dung mot cach can than va co ky nang cac luat thuc tien cua y chi va tu tuong de lien ket tinh than voi vat chat vi loi ich cua nhan loai."},
{1, G, norm, inc, "Khi toi xac dinh nhung gi can phai duoc thuc hien, toi nhat dinh khong de tinh cam, cam xuc hoac su quyen luyen voi moi nguoi ngan can toi thuc hien tron ven y dinh cua minh."},
{4, b, norm, inc, "Toi vua can dam vua hen nhat (va thuong cung mot luc); va cai toi the hien tuy thuoc vao tam trang cua toi, von rat thuong thay doi."},
{4, G, norm, inc, "Bat cu khi nao cang thang tich tu, toi hau nhu luon noi hoac lam dieu gi do hai huoc de giai toa su cang thang."},
{7, a, norm, inc, "Toi nhan duoc su hai long lon tu viec nghi ra hoac tham gia vao cac chuong trinh hanh dong duoc len ke hoach ky luong, co to chuc tot, trong do cac quy trinh phu hop duoc chi tiet hoa mot cach ro rang va ket qua mong muon dat duoc cung duoc xac dinh ro."},
{3, a, norm, inc, "Toi rat thich ren luyen tri nao va the hien su tai gioi ve tri thuc."},
{4, G, norm, inc, "Cach viet va cach noi thong thuong cua toi la bay to suy nghi cua minh mot tu do, ngau hung va thuong co ca chat tho."},
{4, G, norm, inc, "Toi rat gioi trong viec gay cuoi va lam cho moi cam thay giai tri bang nhung cuoc tro chuyen sinh dong, giau tri tuong tuong, nhung toi cung co the bong tro nen noi tam hoac tham chi tram lang, u dot."},
{5, b, norm, inc, "Toi khong chi quan tam sau sac toi phat minh, ma con co kha nang la mot nha phat minh trong linh vuc cong nghe."},
{2, a, norm, inc, "Toi luon the hien long trac an trong tat ca cac cuoc gap go va trai nghiem trong cuoc song cua minh."},
{6, G, norm, inc, "Bat cu khi nao nhung ly tuong ap u cua toi bi thu thach, toi nhat dinh bao ve chung mot cach nhiet tinh."},
{6, a, norm, inc, "Toi thuong khao khat duoc o noi nao ma moi thu thuan khiet va hoan hao - mot \"xa hoi khong tuong\" hay co the goi la \"thien duong\"."},
{7, b, norm, inc, "Cach song cua toi co the duoc mo ta mot cach chinh xac la \"thuc hanh nghi thuc\"; nghi le, phep thuat va bieu hien ket qua la nhung chu de chinh trong tam thuc va hoat dong cua toi."},
};
const TRAIT rgAspire[cAspire] = {
{1, "Toi khao khat tro thanh mot nha lanh dao nang dong, manh me va nhan tu - manh me, vung vang va kien dinh trong viec phung su Luat Toi Cao va bao ve Dieu Thien Hao Toi Thuong."},
{2, "Toi khao khat co duoc su thau hieu sau sac, truc giac, day yeu thuong ve moi nguoi de toi co the bao duong ho, va giup ho khai mo phat huy tiem nang cao nhat cua minh."},
{3, "Toi khao khat co mot tam tri linh hoat va gioi giang de toi co the ap dung no mot cach sang tao vao nhieu viec mang tinh thach thuc ve tri tue."},
{4, "Toi khao khat the hien kha nang nghe thuat tuyet voi trong moi khia canh cuoc song cua minh, tu do truyen cam hung cho nhung nguoi khac de sang tao hon nua va co mot tinh yeu lon hon doi voi cai dep."},
{5, "Toi khao khat duoc tham gia het minh vao viec kham pha cac chia khoa va giai phap cho nhung bi an cua Tu nhien thong qua nghien cuu va thu nghiem khoa hoc tien tien."},
{6, "Toi khao khat duoc song voi niem tin manh liet va theo duoi dam me, co su trung thanh khong lay chuyen voi he gia tri va ly tuong cao nhat cua toi - \"Vien canh ve dieu Cong Chinh\" cua toi."},
{7, "Toi khao khat mang lai mot trat tu nhip nhang dep de tu su hon loan cua cuoc song con nguoi, bang cach \"hien thuc\" nhung y tuong chuyen hoa qua hoat dong thuc tien va \"nhin thau chung\" de the hien mot cach hoan hao."},
{1, "Toi khao khat pha vo xieng xich, giai phong con nguoi khoi moi hinh thuc tu day va ap buc."},
{2, "Toi khao khat co duoc su thau hieu thong thai, khon ngoan va truc giac, sau sac va day du ve cuoc song de toi co the day va khai sang cho nhung nguoi khac."},
{3, "Toi khao khat tao ra mot hoc thuyet triet hoc that toan dien, that hop ly ve su thuc, thong qua suc manh suy nghi sau sac va ly luan can than nhat."},
{4, "Toi khao khat tro thanh mot nguoi hoa giai, mot nguoi trung gian dan xep, mot \"cau noi hop nhat\"- mot nguoi hoa giai cac xung dot cua con nguoi, va la mot cong cu hoa binh."},
{5, "Toi khao khat phat minh hoac phat trien nhung co che, cong cu hoac nhung cai tien ky thuat, de bien doi va nang cao chat luong cuoc song cua con nguoi."},
{6, "Voi duc tin hoan toan va dang hien het minh, toi khao khat phung su \"Thuong De\", hoac \"ly tuong cao ca nhat\" toi co the nhan thuc."},
{7, "Toi khao khat duoc tham gia sau vao nghe thuat va khoa hoc sang tao, chuyen hoa co cau to chuc, thiet ke lai va tai cau truc cac mo hinh tuong tac con nguoi voi nhau, de \"mot the gioi tot hon\" co the nhanh chong xuat hien hon."},
};
const TRAIT rgTrait[cTrait] = {
{7, "Qua quan tam den cac quy tac va quy dinh."},
{6, "Mat kiem soat, nhiet tinh mu quang."},
{5, "Qua nhieu hoai nghi."},
{4, "Qua nhieu \"thang\" va \"tram\"."},
{7, "Cung nhac va bieu hien khong tu nhien, guong gao."},
{6, "Cam tinh qua muc."},
{7, "Su phu thuoc vao thoi quen va le thuong."},
{5, "Khong bao quat, qua chu y den tieu tiet."},
{3, "Noi qua nhieu va suy nghi thai qua, khong mang lai ich loi ro rang."},
{2, "Thich duoc yeu men."},
{1, "Ban nga qua muc, coi trong cai toi va tu cao tu dai; luon muon tro thanh \"trung tam\"."},
{1, "Tham vong quyen luc mot cach ich ky."},
{2, "Hoc qua nhieu ma khong hanh dong."},
{3, "Ngao man ve tri tue."},
{4, "Co xu huong tu mau thuan, khong nhat quan, kho luong, hay thay doi."},
{5, "Qua chu trong phan tich va de y den tri tue."},
{6, "Qua dua dam vao nguoi khac."},
{7, "Qua quan tam den su ngan nap va chi tiet."},
{4, "Qua non nong muon thoa hiep; muon \"hoa binh voi bat cu gia nao.\""},
{6, "Qua non nong muon tin tuong va ky vong; nhiet tinh khong dung cho."},
{3, "Phi hoai nang luong vi nhung hoat dong qua muc, cuoc song dan trai va khong yen on."},
{3, "Muu mo, khong ngay thang va manh khoe."},
{2, "Hay so hai vi qua nhay cam."},
{1, "Mong muon chi phoi va kiem soat nguoi khac."},
{1, "Ngoan co, ngang nganh."},
{2, "Qua de de bo cuoc, dau hang."},
{5, "Khong chap nhan nhung y tuong khong phu hop voi nhung kien thuc co huu."},
{4, "Co gang mot cach yeu ot, bat an va hon loan."},
};
const char *rgszResponse[cResponse+1] = {"Khong co cau tra loi", "Hoan Toan Dung", "Thuong La Dung", "Dung Nhieu Hon Sai", "O Giua - Vua Dung Vua Sai", "Sai Nhieu Hon Dung", "Thuong La Sai", "Hoan Toan Sai"};
const char *rgszResponseAbbrev[cResponse+1] = {"KT", "HD", "TD", "DH", "OG", "SH", "TS", "HS"};
const char *rgszColor[cRay+3] = {"Black", "Red", "#191970", "#008000", "#c0c000", "#ffa500", "#ff3edf", "#9900CC", "White", "Yellow"};
const int rgPart[cPart] = {cInit, cStatement, cAspire2, cTrait2};
// Variables
char rgResInit[cInit][cchSzMax];
RESPONSE rgResS[cStatement];
RESPONSE rgResA[cAspire2];
RESPONSE rgResT[cTrait2];
flag fInfo = fFalse, fHTML = fFalse;
FILE *file = NULL;
int cmdarg = 0;
// Functions
long BlendColor(long kv1, long kv2, int n1, int n2)
{
if (n2 < 1)
n2 = 1;
return Rgb((RgbR(kv2) - RgbR(kv1)) * n1 / n2 + RgbR(kv1),
(RgbG(kv2) - RgbG(kv1)) * n1 / n2 + RgbG(kv1),
(RgbB(kv2) - RgbB(kv1)) * n1 / n2 + RgbB(kv1));
}
int CchSz(const char *sz)
{
const char *pch = sz;
while (*pch)
pch++;
return (int)(pch - sz);
}
flag FEqSz(char *sz1, char *sz2)
{
while (*sz1 && (*sz1 == *sz2))
sz1++, sz2++;
return *sz1 == *sz2;
}
flag FPrefixSz(char *sz1, char *sz2)
{
while (*sz1 && (*sz1 == *sz2))
sz1++, sz2++;
return *sz2 == chNull;
}
void ReadLine(FILE *fileIn, char *sz)
{
int i;
char ch;
for (i = 0; i < cchSzMax*2 && !feof(fileIn) && (ch = getc(fileIn)) >= ' '; i++)
sz[i] = ch;
sz[i] = chNull;
if (ch != '\n')
ch = getc(fileIn);
}
void PrintBr()
{
if (fHTML)
fprintf(file, "<br>");
fprintf(file, "\n");
}
void Print(char *sz)
{
char *pch = sz;
flag fBold = fFalse, fItalic = fFalse;
while (*pch) {
if (fHTML && *pch == ' ' && (*(pch+1) == ' ' || pch == sz))
fprintf(file, " ");
else if (fHTML && *pch == '\"')
fprintf(file, """);
else if (fHTML && *pch == '&')
fprintf(file, "&");
else if (*pch == '~') {
if (fHTML)
fprintf(file, !fBold ? "<b>" : "</b>");
fBold = !fBold;
} else if (*pch == '`') {
if (fHTML)
fprintf(file, !fItalic ? "<i>" : "</i>");
fItalic = !fItalic;
} else
fprintf(file, "%c", *pch);
pch++;
}
}
void PrintLine(char *sz)
{
Print(sz);
PrintBr();
}
void PrintCh(char ch, int n)
{
if (fHTML && ch == ' ') {
n--;
while (n > 0) {
fprintf(file, " ");
n--;
}
if (n >= 0)
fprintf(file, "");
return;
}
while (n > 0) {
fprintf(file, "%c", ch);
n--;
}
}
void PrintLong(char *sz)
{
char szT[cchSzMax], *pch1, *pch2, *pchT;
if (fHTML) {
PrintLine(sz);
return;
}
for (pch1 = pch2 = sz; *pch2; pch2++) {
if (pch2 - pch1 >= colMax-1) {
while (pch2 > pch1 && *pch2 != ' ')
pch2--;
for (pchT = pch1; pchT < pch2; pchT++)
szT[pchT - pch1] = *pchT;
szT[pchT - pch1] = chNull;
Print(szT);
fprintf(file, "\n");
pch1 = pch2 + 1;
}
}
Print(pch1);
fprintf(file, "\n");
}
void PrintLongBr(char *sz)
{
PrintLong(sz);
PrintBr();
}
void PrintIndent(char *sz, flag fExtra)
{
char *pchW, *pchR, *pch1, *pch2;
flag fLater = fFalse;
for (pchW = pchR = sz; *pchW = *pchR; pchW++, pchR++) {
if (*pchR == '<') {
*pchW = '*';
pchR += 2 + (*(pchR+1) == '/');
}
}
for (pch1 = pch2 = sz; *pch2; pch2++) {
if (pch2 - pch1 >= colMax-3 - (fExtra && fLater)*2) {
while (pch2 > pch1 && *pch2 != ' ')
pch2--;
*pch2 = chNull;
if (fExtra && fLater)
printf(" ");
printf(" %s\n", pch1);
pch1 = pch2 + 1;
fLater = fTrue;
}
}
if (fExtra && fLater)
printf(" ");
printf(" %s\n", pch1);
}
void PrintBanner(char *sz)
{
if (fHTML) {
fprintf(file, "<hr><h1>%s</h1>\n", sz);
return;
}
PrintCh('*', 79);
fprintf(file, "\n %s\n", sz);
PrintCh('*', 79);
fprintf(file, "\n\n");
}
void PrintHeading(char *sz)
{
if (fHTML) {
fprintf(file, "<b>%s</b>", sz);
PrintBr();
return;
}
PrintLine(sz);
}
void StartColor(int i)
{
char ch1, ch2;
int nR, nG, nB;
if (!fHTML)
return;
if (i < 0) {
i = -i;
ch1 = ChHex(i >> 4);
ch2 = ChHex(i & 15);
fprintf(file, "<font color=\"#%c%c%c%c%c%c\">", ch1, ch2, ch1, ch2, ch1, ch2);
return;
}
if (i > cRay+2) {
nR = RgbR(i); nG = RgbG(i); nB = RgbB(i);
fprintf(file, "<font color=\"#%c%c%c%c%c%c\">", ChHex(nR >> 4), ChHex(nR & 15), ChHex(nG >> 4), ChHex(nG & 15), ChHex(nB >> 4), ChHex(nB & 15));
return;
}
fprintf(file, "<font color=\"%s\">", rgszColor[i]);
}
void EndColor()
{
if (fHTML)
fprintf(file, "</font>");
}
void StartBkColor(int i)
{
char ch1, ch2;
int nR, nG, nB;
if (!fHTML)
return;
if (i < 0) {
i = -i;
ch1 = ChHex(i >> 4);
ch2 = ChHex(i & 15);
fprintf(file, "<span style=\"background-color:#%c%c%c%c%c%c\">", ch1, ch2, ch1, ch2, ch1, ch2);
return;
}
if (i > cRay+2) {
nR = RgbR(i); nG = RgbG(i); nB = RgbB(i);
fprintf(file, "<span style=\"background-color:#%c%c%c%c%c%c\">", ChHex(nR >> 4), ChHex(nR & 15), ChHex(nG >> 4), ChHex(nG & 15), ChHex(nB >> 4), ChHex(nB & 15));
return;
}
fprintf(file, "<span style=\"background-color:%s\">", rgszColor[i]);
}
void EndBkColor()
{
if (fHTML)
fprintf(file, "</span>");
}
void StartBar(int i)
{
if (i == 4)
i = cRay+2;
StartBkColor(i);
StartColor(i);
}
void EndBar()
{
EndColor();
EndBkColor();
}
void StartBold()
{
if (fHTML)
fprintf(file, "<b>");
}
void EndBold()
{
if (fHTML)
fprintf(file, "</b>");
}
void StartFixed()
{
if (fHTML)
fprintf(file, "<font face=\"Courier\">\n");
}
void EndFixed()
{
if (fHTML)
fprintf(file, "</font>");
}
void StartList()
{
if (fHTML)
fprintf(file, "<ul>");
else
fprintf(file, "\n");
}
void EndList()
{
if (fHTML)
fprintf(file, "</ul>");
else
fprintf(file, "\n");
}
void PrintList(int i, char *sz)
{
if (fHTML)
fprintf(file, "<li>");
StartColor(i);
PrintLong(sz);
EndColor();
}
int Rnd(int n)
{
return (rand() & 16383) * n / 16384;
}
flag FFindLatest(int *part, int *ques, int *half)
{
int i;
*half = 0;
for (i = 0; i < cInit; i++)
if (rgResInit[i][0] == chNull) {
*part = 1; *ques = i; *half = 0; return fFalse;
}
for (i = 0; i < cStatement; i++)
if (rgResS[i].res == 0 || rgResS[i].resf == 0) {
*part = 2; *ques = i; *half = 0; return fFalse;
}
for (i = 0; i < cAspire2; i++)
if (rgResA[i].res == 0) {
*part = 3; *ques = i; *half = 0; return fFalse;
}
for (i = 0; i < cAspire2; i++)
if (rgResA[i].resf == 0) {
*part = 3; *ques = i; *half = 1; return fFalse;
}
for (i = 0; i < cTrait2; i++)
if (rgResT[i].res == 0) {
*part = 4; *ques = i; *half = 0; return fFalse;
}
for (i = 0; i < cTrait2; i++)
if (rgResT[i].resf == 0) {
*part = 4; *ques = i; *half = 1; return fFalse;
}
*part = 1; *ques = 0;
return fTrue;
}
void EnsureBetween(int *n, int n1, int n2)
{
if (*n < n1) {
printf("LOI: Luu bien tep %d duoi pham vi tu %d den %d! Gia su %d.\n", *n, n1, n2, n1);
*n = n1;
}
if (*n > n2) {
printf("LOI: Luu bien tep %d tren pham vi tu %d den %d! Gia su %d.\n", *n, n1, n2, n2);
*n = n2;
}
}
void Load(FILE *fileIn)
{
char sz[cchSzMax], ch;
int i, n;
ReadLine(fileIn, sz);
if (!FEqSz(sz, szDate))
printf("CANH BAO: Luu tep ngay (%s) khong bang ngay chuong trinh (%s).\n", sz, szDate);
for (i = 0; i < cInit; i++) {
ReadLine(fileIn, sz);
sprintf(rgResInit[i], "%s", sz);
}
for (i = 0; i < cStatement; i++) {
ch = getc(fileIn); n = (ch - '0'); EnsureBetween(&n, 0, cResponse); rgResS[i].res = n;
ch = getc(fileIn); n = (ch - '0'); EnsureBetween(&n, 0, cResponse); rgResS[i].resf = n;
}
for (i = 0; i < cAspire2; i++) {
fscanf(fileIn, "%d", &n); EnsureBetween(&n, 0, cAspire); rgResA[i].res = n;
fscanf(fileIn, "%d", &n); EnsureBetween(&n, 0, cAspire); rgResA[i].resf = n;
}
for (i = 0; i < cTrait2; i++) {
fscanf(fileIn, "%d", &n); EnsureBetween(&n, 0, cTrait); rgResT[i].res = n;
fscanf(fileIn, "%d", &n); EnsureBetween(&n, 0, cTrait); rgResT[i].resf = n;
}
}
void Save(FILE *fileOut, flag fResults)
{
FILE *fileSav = file;
int i;
file = fileOut;
PrintLine(szDate);
for (i = 0; i < cInit; i++)
PrintLine(rgResInit[i]);
for (i = 0; i < cStatement; i++) {
if (fResults && i > 0 && i % ((colMax-1)/2) == 0)
PrintBr();
fprintf(file, "%d%d", rgResS[i].res, rgResS[i].resf);
}
PrintBr();
for (i = 0; i < cAspire2; i++)
fprintf(file, " %d %d", rgResA[i].res, rgResA[i].resf);
PrintBr();
for (i = 0; i < cTrait2; i++)
fprintf(file, " %d %d", rgResT[i].res, rgResT[i].resf);
PrintBr();
file = fileSav;
}
flag FResponsedAlready(RESPONSE *rgres, int cres, int n, flag fFormer)
{
int i;
for (i = 0; i < cres; i++)
if ((!fFormer ? rgres[i].res : rgres[i].resf) == n)
return fTrue;
return fFalse;
}
int GetString(char sz[cchSzMax])
{
int cch, i, n;
char ch = chNull;
if (fgets(sz, cchSzMax, stdin) == NULL)
exit(0);
cch = CchSz(sz);
while (cch > 0 && sz[cch-1] < ' ')
cch--;
sz[cch] = chNull;
if (sz[0] == '~' && sz[1] != chNull)
ch = sz[1];
if (FEqSz(sz, "help")) {
printf("\n");
PrintLong("Chao mung den su giup do PIP III. Nhap cau tra loi cua ban cho moi cau hoi va sau do nhan <Enter>. Ban cung co the nhap bat ky lenh nao sau day:");
printf(" undo : Neu ban tra loi sai, hay nhap \"undo\" de sao luu mot cau hoi.\n");
printf(" back <#>: Chang han, \"back 7\" de quay lai 7 cau hoi truoc.\n");
printf(" next <#>: Chang han, \"next 3\" de nhay den 3 cau hoi sau do.\n");
printf(" goto <#>: Chang han, \"goto 109\" de nhay toi cau hoi #109.\n");
printf(" part <#>: Chang han, \"part 2\" de nhay toi Phan 2: muc Nhan Dinh.\n");
printf(" latest: Chuyen den cau hoi chua duoc tra loi dau tien hoac hien thi ket qua neu hoan thanh.\n");
printf(" restart: Khoi dong lai bai kiem tra tu dau, xoa tat ca cac phan hoi truoc do.\n");
printf(" help: Hien thi danh sach giup do.\n\n");
return ecRetry;
}
if (FPrefixSz(sz, "undo") || FPrefixSz(sz, "back")) {
cmdarg = -atoi(sz + 4);
if (cmdarg >= -1) {
cmdarg = -1;
printf("LUU Y: Dang sao luu mot cau hoi.\n\n");
} else
printf("LUU Y: Dang sao luu %d cau hoi.\n\n", -cmdarg);
return ecUndo;
}
if (FPrefixSz(sz, "next")) {
cmdarg = atoi(sz + 4);
if (cmdarg <= 1) {
cmdarg = 1;
printf("LUU Y: Chuyen tiep mot cau hoi.\n\n");
} else
printf("LUU Y: Chuyen tiep den %d cau hoi.\n\n", cmdarg);
return ecUndo;
}
if (FPrefixSz(sz, "goto")) {
cmdarg = atoi(sz + 4);
if (cmdarg <= 1)
cmdarg = 1;
printf("LUU Y: Chuyen tiep den cau hoi #%d.\n\n", cmdarg);
cmdarg--;
return ecGoto;
}
if (FPrefixSz(sz, "part")) {
cmdarg = atoi(sz + 4);
if (cmdarg <= 1)
cmdarg = 1;
printf("LUU Y: Chuyen tiep den Phan %d.\n\n", cmdarg);
return ecPart;
}
if (FEqSz(sz, "latest")) {
printf("LUU Y: Chuyen den cau hoi da tra loi moi nhat.\n\n");
return ecLate;
}
if (FEqSz(sz, "restart")) {
printf("LUU Y: Bat dau lai kiem tra tu dau!\n\n");
return ecNew;
}
if (ch == 'i') {
fInfo = !fInfo;
printf("LUU Y: Che do thong tin %s.\n", fInfo ? "ON" : "OFF");
return ecRetry;
}
if (ch == 'z') {
printf("LUU Y: Chuyen den cau hoi cuoi cung trong phan hien tai.\n\n");
return ecLast;
}
if (ch == 'f') {
printf("LUU Y: Dang hien thi ket qua.\n\n");
return ecDone;
}
if (ch == 'x') {
printf("LUU Y: Dang thoat chuong trinh.\n");
return ecExit;
}
if (ch == '?' || ch == '/') {
for (i = 0; i < cInit; i++)
sprintf(rgResInit[i], "%s", rgInitDef[i]);
if (ch == '?') {
if (sz[2])
srand(atoi(sz + 2));
for (i = 0; i < cStatement; i++) {
rgResS[i].res = Rnd(cResponse) + 1;
rgResS[i].resf = Rnd(cResponse) + 1;
}
for (i = 0; i < cAspire2; i++) {
do {
rgResA[i].res = Rnd(cAspire)+1;
} while (FResponsedAlready(rgResA, i, rgResA[i].res, fFalse));
do {
rgResA[i].resf = Rnd(cAspire)+1;
} while (FResponsedAlready(rgResA, i, rgResA[i].resf, fTrue));
}
for (i = 0; i < cTrait2; i++) {
do {
rgResT[i].res = Rnd(cTrait)+1;
} while (FResponsedAlready(rgResT, i, rgResT[i].res, fFalse));
do {
rgResT[i].resf = Rnd(cTrait)+1;
} while (FResponsedAlready(rgResT, i, rgResT[i].resf, fTrue));
}
printf("LUU Y: Tat ca cac cau tra loi duoc ngau nhien hoa. Nhap \"latest\" de hien thi ket qua ngay bay gio.\n");
} else {
n = sz[2] - '0';
if (n < 1) n = 1;
if (n > cResponse) n = cResponse;
for (i = 0; i < cStatement; i++) {
rgResS[i].res = n;
rgResS[i].resf = n;
}
for (i = 0; i < cAspire2; i++) {
rgResA[i].res = cAspire-i;
rgResA[i].resf = i+1;
}
for (i = 0; i < cTrait2; i++) {
rgResT[i].res = cTrait-i;
rgResT[i].resf = i+1;
}
printf("LUU Y: Tat ca cac cau tra loi duoc dat thanh lua chon #%d. Nhap \"latest\" de hien thi ket qua ngay bay gio.\n", n);
}
return ecRetry;
}
return ecNormal;
}
int GetInitResponse(int i)
{
char sz[cchSzMax];
int ec;
printf("Cau hoi khoi dau #%d/%d:\n", i+1, cInit);
if (rgResInit[i][0])
printf("LUU Y: Ban da tra loi cau hoi nay truoc day. Ban da noi: %s\n", rgResInit[i]);
LRetry:
printf("Nhap %s: ", rgInit[i]);
ec = GetString(sz);
if (ec == ecRetry)
goto LRetry;
else if (ec > ecNormal)
return ec;
if (!sz[0] && !rgResInit[i][0]) {
printf("LOI: Vui long nhap thong tin nao do (ngay ca \"anonymous\" hoac \"unknown\").\n");
goto LRetry;
}
if (sz[0])
sprintf(rgResInit[i], "%s", sz);
else
printf("LUU Y: Giu cau tra loi cu cho cau hoi nay: %s\n", rgResInit[i]);
Print("\n");
return ec;
}
int GetStatementResponse(int s)
{
char sz[cchSzMax];
const STATEMENT *ps;
int i, f, n, n1, n2, nPrev, ec;
ps = &rgStatement[s];
printf("Nhan dinh #%d/%d:\n", s+1, cStatement);
sprintf(sz, "%s", ps->sz);
PrintIndent(sz, fFalse);
if (fInfo)
printf("THONG TIN: Cung %d%s%s, %s, %s\n", ps->ray, (ps->nType & a) > 0 ? "a" : ((ps->nType & b) > 0 ? "b" : ""), (ps->nType & G) > 0 ? " chung" : "", ps->fReverse ? "DAO NGUOC" : "thuong", ps->fSkip ? "NHAY" : "tinh ca");
printf("Nhan dinh tren co the la:\n");
for (i = 1; i <= cResponse; i++)
printf(" %d) %s: %s.\n", i, rgszResponseAbbrev[i], rgszResponse[i]);
for (f = 0; f <= 1; f++) {
nPrev = !f ? rgResS[s].res : rgResS[s].resf;
if (nPrev)
printf("LUU Y: Ban da tra loi nhan dinh nay truoc day. Ban da noi: %d (%s)\n", nPrev, rgszResponseAbbrev[nPrev]);
LRetry:
printf("Nhap cach nhan dinh ap dung cho ban %s (1-%d): ", f == 0 ? "HIEN TAI" : "trong qua khu TRUOC KIA", cResponse);
ec = GetString(sz);
if (ec == ecRetry)
goto LRetry;
else if (ec > ecNormal)
return ec;
if (!sz[0] && nPrev != 0) {
printf("LUU Y: Giu cau tra loi cu cho nhan dinh nay: #%d (%s)\n", nPrev, rgszResponseAbbrev[nPrev]);
goto LDone1;