-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConnect 4.cpp
More file actions
1225 lines (1190 loc) · 69.6 KB
/
Connect 4.cpp
File metadata and controls
1225 lines (1190 loc) · 69.6 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
#include<iostream>
#include<fstream>
#include<iomanip>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
#include"animation.h"
using namespace std;
static int toggle=2,difficulty=2,winner;
//int avoid[6];
class connect4
{
int players,row,column;
char p1[30],p2[30],a[6][7];
void game();
int result();
void start();
int computer();
void move(int x,int y,char c);
public: void display();
void store(int);
void menu();
};
int connect4::computer()
{
//Checks For Computer To Win...
//HORIZONTAL
{
if(a[6][1]=='O' && a[6][2]=='O' && a[6][3]=='O' && a[6][4]=='_'){return(4);}
if(a[6][1]=='O' && a[6][2]=='O' && a[6][3]=='_' && a[6][4]=='O'){return(3);}
if(a[6][1]=='O' && a[6][2]=='_' && a[6][3]=='O' && a[6][4]=='O'){return(2);}
if(a[6][1]=='_' && a[6][2]=='O' && a[6][3]=='O' && a[6][4]=='O'){return(1);}
if(a[6][2]=='O' && a[6][3]=='O' && a[6][4]=='O' && a[6][5]=='_'){return(5);}
if(a[6][2]=='O' && a[6][3]=='O' && a[6][4]=='_' && a[6][5]=='O'){return(4);}
if(a[6][2]=='O' && a[6][3]=='_' && a[6][4]=='O' && a[6][5]=='O'){return(3);}
if(a[6][2]=='_' && a[6][3]=='O' && a[6][4]=='O' && a[6][5]=='O'){return(2);}
if(a[6][3]=='O' && a[6][4]=='O' && a[6][5]=='O' && a[6][6]=='_'){return(6);}
if(a[6][3]=='O' && a[6][4]=='O' && a[6][5]=='_' && a[6][6]=='O'){return(5);}
if(a[6][3]=='O' && a[6][4]=='_' && a[6][5]=='O' && a[6][6]=='O'){return(4);}
if(a[6][3]=='_' && a[6][4]=='O' && a[6][5]=='O' && a[6][6]=='O'){return(3);}
if(a[6][4]=='O' && a[6][5]=='O' && a[6][6]=='O' && a[6][7]=='_'){return(7);}
if(a[6][4]=='O' && a[6][5]=='O' && a[6][6]=='_' && a[6][7]=='O'){return(6);}
if(a[6][4]=='O' && a[6][5]=='_' && a[6][6]=='O' && a[6][7]=='O'){return(5);}
if(a[6][4]=='_' && a[6][5]=='O' && a[6][6]=='O' && a[6][7]=='O'){return(4);}
if(a[5][1]=='O' && a[5][2]=='O' && a[5][3]=='O' && a[5][4]=='_' && a[6][4]!='_'){return(4);}
if(a[5][1]=='O' && a[5][2]=='O' && a[5][3]=='_' && a[5][4]=='O' && a[6][3]!='_'){return(3);}
if(a[5][1]=='O' && a[5][2]=='_' && a[5][3]=='O' && a[5][4]=='O' && a[6][2]!='_'){return(2);}
if(a[5][1]=='_' && a[5][2]=='O' && a[5][3]=='O' && a[5][4]=='O' && a[6][1]!='_'){return(1);}
if(a[5][2]=='O' && a[5][3]=='O' && a[5][4]=='O' && a[5][5]=='_' && a[6][5]!='_'){return(5);}
if(a[5][2]=='O' && a[5][3]=='O' && a[5][4]=='_' && a[5][5]=='O' && a[6][4]!='_'){return(4);}
if(a[5][2]=='O' && a[5][3]=='_' && a[5][4]=='O' && a[5][5]=='O' && a[6][3]!='_'){return(3);}
if(a[5][2]=='_' && a[5][3]=='O' && a[5][4]=='O' && a[5][5]=='O' && a[6][2]!='_'){return(2);}
if(a[5][3]=='O' && a[5][4]=='O' && a[5][5]=='O' && a[5][6]=='_' && a[6][6]!='_'){return(6);}
if(a[5][3]=='O' && a[5][4]=='O' && a[5][5]=='_' && a[5][6]=='O' && a[6][5]!='_'){return(5);}
if(a[5][3]=='O' && a[5][4]=='_' && a[5][5]=='O' && a[5][6]=='O' && a[6][4]!='_'){return(4);}
if(a[5][3]=='_' && a[5][4]=='O' && a[5][5]=='O' && a[5][6]=='O' && a[6][3]!='_'){return(3);}
if(a[5][4]=='O' && a[5][5]=='O' && a[5][6]=='O' && a[5][7]=='_' && a[6][7]!='_'){return(7);}
if(a[5][4]=='O' && a[5][5]=='O' && a[5][6]=='_' && a[5][7]=='O' && a[6][6]!='_'){return(6);}
if(a[5][4]=='O' && a[5][5]=='_' && a[5][6]=='O' && a[5][7]=='O' && a[6][5]!='_'){return(5);}
if(a[5][4]=='_' && a[5][5]=='O' && a[5][6]=='O' && a[5][7]=='O' && a[6][4]!='_'){return(4);}
if(a[4][1]=='O' && a[4][2]=='O' && a[4][3]=='O' && a[4][4]=='_' && a[5][4]!='_'){return(4);}
if(a[4][1]=='O' && a[4][2]=='O' && a[4][3]=='_' && a[4][4]=='O' && a[5][3]!='_'){return(3);}
if(a[4][1]=='O' && a[4][2]=='_' && a[4][3]=='O' && a[4][4]=='O' && a[5][2]!='_'){return(2);}
if(a[4][1]=='_' && a[4][2]=='O' && a[4][3]=='O' && a[4][4]=='O' && a[5][1]!='_'){return(1);}
if(a[4][2]=='O' && a[4][3]=='O' && a[4][4]=='O' && a[4][5]=='_' && a[5][5]!='_'){return(5);}
if(a[4][2]=='O' && a[4][3]=='O' && a[4][4]=='_' && a[4][5]=='O' && a[5][4]!='_'){return(4);}
if(a[4][2]=='O' && a[4][3]=='_' && a[4][4]=='O' && a[4][5]=='O' && a[5][3]!='_'){return(3);}
if(a[4][2]=='_' && a[4][3]=='O' && a[4][4]=='O' && a[4][5]=='O' && a[5][2]!='_'){return(2);}
if(a[4][3]=='O' && a[4][4]=='O' && a[4][5]=='O' && a[4][6]=='_' && a[5][6]!='_'){return(6);}
if(a[4][3]=='O' && a[4][4]=='O' && a[4][5]=='_' && a[4][6]=='O' && a[5][5]!='_'){return(5);}
if(a[4][3]=='O' && a[4][4]=='_' && a[4][5]=='O' && a[4][6]=='O' && a[5][4]!='_'){return(4);}
if(a[4][3]=='_' && a[4][4]=='O' && a[4][5]=='O' && a[4][6]=='O' && a[5][3]!='_'){return(3);}
if(a[4][4]=='O' && a[4][5]=='O' && a[4][6]=='O' && a[4][7]=='_' && a[5][7]!='_'){return(7);}
if(a[4][4]=='O' && a[4][5]=='O' && a[4][6]=='_' && a[4][7]=='O' && a[5][6]!='_'){return(6);}
if(a[4][4]=='O' && a[4][5]=='_' && a[4][6]=='O' && a[4][7]=='O' && a[5][5]!='_'){return(5);}
if(a[4][4]=='_' && a[4][5]=='O' && a[4][6]=='O' && a[4][7]=='O' && a[5][4]!='_'){return(4);}
if(a[3][1]=='O' && a[3][2]=='O' && a[3][3]=='O' && a[3][4]=='_' && a[4][4]!='_'){return(4);}
if(a[3][1]=='O' && a[3][2]=='O' && a[3][3]=='_' && a[3][4]=='O' && a[4][3]!='_'){return(3);}
if(a[3][1]=='O' && a[3][2]=='_' && a[3][3]=='O' && a[3][4]=='O' && a[4][2]!='_'){return(2);}
if(a[3][1]=='_' && a[3][2]=='O' && a[3][3]=='O' && a[3][4]=='O' && a[4][1]!='_'){return(1);}
if(a[3][2]=='O' && a[3][3]=='O' && a[3][4]=='O' && a[3][5]=='_' && a[4][5]!='_'){return(5);}
if(a[3][2]=='O' && a[3][3]=='O' && a[3][4]=='_' && a[3][5]=='O' && a[4][4]!='_'){return(4);}
if(a[3][2]=='O' && a[3][3]=='_' && a[3][4]=='O' && a[3][5]=='O' && a[4][3]!='_'){return(3);}
if(a[3][2]=='_' && a[3][3]=='O' && a[3][3]=='O' && a[3][5]=='O' && a[4][2]!='_'){return(2);}
if(a[3][3]=='O' && a[3][3]=='O' && a[3][5]=='O' && a[3][6]=='_' && a[4][6]!='_'){return(6);}
if(a[3][3]=='O' && a[3][3]=='O' && a[3][5]=='_' && a[3][6]=='O' && a[4][5]!='_'){return(5);}
if(a[3][3]=='O' && a[3][3]=='_' && a[3][5]=='O' && a[3][6]=='O' && a[4][4]!='_'){return(4);}
if(a[3][3]=='_' && a[3][3]=='O' && a[3][5]=='O' && a[3][6]=='O' && a[4][3]!='_'){return(3);}
if(a[3][4]=='O' && a[3][5]=='O' && a[3][6]=='O' && a[3][7]=='_' && a[4][7]!='_'){return(7);}
if(a[3][4]=='O' && a[3][5]=='O' && a[3][6]=='_' && a[3][7]=='O' && a[4][6]!='_'){return(6);}
if(a[3][4]=='O' && a[3][5]=='_' && a[3][6]=='O' && a[3][7]=='O' && a[4][5]!='_'){return(5);}
if(a[3][4]=='_' && a[3][5]=='O' && a[3][6]=='O' && a[3][7]=='O' && a[4][4]!='_'){return(4);}
if(a[2][1]=='O' && a[2][2]=='O' && a[2][3]=='O' && a[2][4]=='_' && a[3][4]!='_'){return(4);}
if(a[2][1]=='O' && a[2][2]=='O' && a[2][3]=='_' && a[2][4]=='O' && a[3][3]!='_'){return(3);}
if(a[2][1]=='O' && a[2][2]=='_' && a[2][3]=='O' && a[2][4]=='O' && a[3][2]!='_'){return(2);}
if(a[2][1]=='_' && a[2][2]=='O' && a[2][3]=='O' && a[2][4]=='O' && a[3][1]!='_'){return(1);}
if(a[2][2]=='O' && a[2][3]=='O' && a[2][4]=='O' && a[2][5]=='_' && a[3][5]!='_'){return(5);}
if(a[2][2]=='O' && a[2][3]=='O' && a[2][4]=='_' && a[2][5]=='O' && a[3][4]!='_'){return(4);}
if(a[2][2]=='O' && a[2][3]=='_' && a[2][4]=='O' && a[2][5]=='O' && a[3][3]!='_'){return(3);}
if(a[2][2]=='_' && a[2][3]=='O' && a[2][4]=='O' && a[2][5]=='O' && a[3][2]!='_'){return(2);}
if(a[2][3]=='O' && a[2][4]=='O' && a[2][5]=='O' && a[2][6]=='_' && a[3][6]!='_'){return(6);}
if(a[2][3]=='O' && a[2][4]=='O' && a[2][5]=='_' && a[2][6]=='O' && a[3][5]!='_'){return(5);}
if(a[2][3]=='O' && a[2][4]=='_' && a[2][5]=='O' && a[2][6]=='O' && a[3][4]!='_'){return(4);}
if(a[2][3]=='_' && a[2][4]=='O' && a[2][5]=='O' && a[2][6]=='O' && a[3][3]!='_'){return(3);}
if(a[2][4]=='O' && a[2][5]=='O' && a[2][6]=='O' && a[2][7]=='_' && a[3][7]!='_'){return(7);}
if(a[2][4]=='O' && a[2][5]=='O' && a[2][6]=='_' && a[2][7]=='O' && a[3][6]!='_'){return(6);}
if(a[2][4]=='O' && a[2][5]=='_' && a[2][6]=='O' && a[2][7]=='O' && a[3][5]!='_'){return(5);}
if(a[2][4]=='_' && a[2][5]=='O' && a[2][6]=='O' && a[2][7]=='O' && a[3][4]!='_'){return(4);}
if(a[1][1]=='O' && a[1][2]=='O' && a[1][3]=='O' && a[1][4]=='_' && a[2][4]!='_'){return(4);}
if(a[1][1]=='O' && a[1][2]=='O' && a[1][3]=='_' && a[1][4]=='O' && a[2][3]!='_'){return(3);}
if(a[1][1]=='O' && a[1][2]=='_' && a[1][3]=='O' && a[1][4]=='O' && a[2][2]!='_'){return(2);}
if(a[1][1]=='_' && a[1][2]=='O' && a[1][3]=='O' && a[1][4]=='O' && a[2][1]!='_'){return(1);}
if(a[1][2]=='O' && a[1][3]=='O' && a[1][4]=='O' && a[1][5]=='_' && a[2][5]!='_'){return(5);}
if(a[1][2]=='O' && a[1][3]=='O' && a[1][4]=='_' && a[1][5]=='O' && a[2][4]!='_'){return(4);}
if(a[1][2]=='O' && a[1][3]=='_' && a[1][4]=='O' && a[1][5]=='O' && a[2][3]!='_'){return(3);}
if(a[1][2]=='_' && a[1][3]=='O' && a[1][4]=='O' && a[1][5]=='O' && a[2][2]!='_'){return(2);}
if(a[1][3]=='O' && a[1][4]=='O' && a[1][5]=='O' && a[1][6]=='_' && a[2][6]!='_'){return(6);}
if(a[1][3]=='O' && a[1][4]=='O' && a[1][5]=='_' && a[1][6]=='O' && a[2][5]!='_'){return(5);}
if(a[1][3]=='O' && a[1][4]=='_' && a[1][5]=='O' && a[1][6]=='O' && a[2][4]!='_'){return(4);}
if(a[1][3]=='_' && a[1][4]=='O' && a[1][5]=='O' && a[1][6]=='O' && a[2][3]!='_'){return(3);}
if(a[1][4]=='O' && a[1][5]=='O' && a[1][6]=='O' && a[1][7]=='_' && a[2][7]!='_'){return(7);}
if(a[1][4]=='O' && a[1][5]=='O' && a[1][6]=='_' && a[1][7]=='O' && a[2][6]!='_'){return(6);}
if(a[1][4]=='O' && a[1][5]=='_' && a[1][6]=='O' && a[1][7]=='O' && a[2][5]!='_'){return(5);}
if(a[1][4]=='_' && a[1][5]=='O' && a[1][6]=='O' && a[1][7]=='O' && a[2][4]!='_'){return(4);}
}
//VERTICAL
{
if(a[6][1]=='O' && a[5][1]=='O' && a[4][1]=='O' && a[3][1]=='-'){return(1);}
if(a[5][1]=='O' && a[4][1]=='O' && a[3][1]=='O' && a[2][1]=='_'){return(1);}
if(a[4][1]=='O' && a[3][1]=='O' && a[2][1]=='O' && a[1][1]=='_'){return(1);}
if(a[6][2]=='O' && a[5][2]=='O' && a[4][2]=='O' && a[3][2]=='_'){return(2);}
if(a[5][2]=='O' && a[4][2]=='O' && a[3][2]=='O' && a[2][2]=='_'){return(2);}
if(a[4][2]=='O' && a[3][2]=='O' && a[2][2]=='O' && a[1][2]=='_'){return(2);}
if(a[6][3]=='O' && a[5][3]=='O' && a[4][3]=='O' && a[3][3]=='_'){return(3);}
if(a[5][3]=='O' && a[4][3]=='O' && a[3][3]=='O' && a[2][3]=='_'){return(3);}
if(a[4][3]=='O' && a[3][3]=='O' && a[2][3]=='O' && a[1][3]=='_'){return(3);}
if(a[6][4]=='O' && a[5][4]=='O' && a[4][4]=='O' && a[3][4]=='_'){return(4);}
if(a[5][4]=='O' && a[4][4]=='O' && a[3][4]=='O' && a[2][4]=='_'){return(4);}
if(a[4][4]=='O' && a[3][4]=='O' && a[2][4]=='O' && a[1][4]=='_'){return(4);}
if(a[6][5]=='O' && a[5][5]=='O' && a[4][5]=='O' && a[3][5]=='_'){return(5);}
if(a[5][5]=='O' && a[4][5]=='O' && a[3][5]=='O' && a[2][5]=='_'){return(5);}
if(a[4][5]=='O' && a[3][5]=='O' && a[2][5]=='O' && a[1][5]=='_'){return(5);}
if(a[6][6]=='O' && a[5][6]=='O' && a[4][6]=='O' && a[3][6]=='_'){return(6);}
if(a[5][6]=='O' && a[4][6]=='O' && a[3][6]=='O' && a[2][6]=='_'){return(6);}
if(a[4][6]=='O' && a[3][6]=='O' && a[2][6]=='O' && a[1][6]=='_'){return(6);}
if(a[6][7]=='O' && a[5][7]=='O' && a[4][7]=='O' && a[3][7]=='_'){return(7);}
if(a[5][7]=='O' && a[4][7]=='O' && a[3][7]=='O' && a[2][7]=='_'){return(7);}
if(a[4][7]=='O' && a[3][7]=='O' && a[2][7]=='O' && a[1][7]=='_'){return(7);}
}
//DIAGONAL RIGHT
{
if(a[6][1]=='O' && a[5][2]=='O' && a[4][3]=='O' && a[3][4]=='_' && a[4][4]!='_'){return(4);}
if(a[6][1]=='O' && a[5][2]=='O' && a[4][3]=='_' && a[3][4]=='O' && a[5][3]!='_'){return(3);}
if(a[6][1]=='O' && a[5][2]=='_' && a[4][3]=='O' && a[3][4]=='O' && a[6][2]!='_'){return(2);}
if(a[6][1]=='_' && a[5][2]=='O' && a[4][3]=='O' && a[3][4]=='O'){return(1);}
if(a[6][2]=='O' && a[5][3]=='O' && a[4][4]=='O' && a[3][5]=='_' && a[4][5]!='_'){return(5);}
if(a[6][2]=='O' && a[5][3]=='O' && a[4][4]=='_' && a[3][5]=='O' && a[5][4]!='_'){return(4);}
if(a[6][2]=='O' && a[5][3]=='_' && a[4][4]=='O' && a[3][5]=='O' && a[6][3]!='_'){return(3);}
if(a[6][2]=='_' && a[5][3]=='O' && a[4][4]=='O' && a[3][5]=='O'){return(2);}
if(a[6][3]=='O' && a[5][4]=='O' && a[4][5]=='O' && a[3][6]=='_' && a[4][6]!='_'){return(6);}
if(a[6][3]=='O' && a[5][4]=='O' && a[4][5]=='_' && a[3][6]=='O' && a[5][5]!='_'){return(5);}
if(a[6][3]=='O' && a[5][4]=='_' && a[4][5]=='O' && a[3][6]=='O' && a[6][4]!='_'){return(4);}
if(a[6][3]=='_' && a[5][4]=='O' && a[4][5]=='O' && a[3][6]=='O'){return(3);}
if(a[6][4]=='O' && a[5][5]=='O' && a[4][6]=='O' && a[3][7]=='_' && a[4][7]!='_'){return(7);}
if(a[6][4]=='O' && a[5][5]=='O' && a[4][6]=='_' && a[3][7]=='O' && a[5][6]!='_'){return(6);}
if(a[6][4]=='O' && a[5][5]=='_' && a[4][6]=='O' && a[3][7]=='O' && a[6][5]!='_'){return(5);}
if(a[6][4]=='_' && a[5][5]=='O' && a[4][6]=='O' && a[3][7]=='O'){return(4);}
if(a[5][1]=='O' && a[4][2]=='O' && a[3][3]=='O' && a[2][4]=='_' && a[3][4]!='_'){return(4);}
if(a[5][1]=='O' && a[4][2]=='O' && a[3][3]=='_' && a[2][4]=='O' && a[4][3]!='_'){return(3);}
if(a[5][1]=='O' && a[4][2]=='_' && a[3][3]=='O' && a[2][4]=='O' && a[5][2]!='_'){return(2);}
if(a[5][1]=='_' && a[4][2]=='O' && a[3][3]=='O' && a[2][4]=='O' && a[6][1]!='_'){return(1);}
if(a[5][2]=='O' && a[4][3]=='O' && a[3][4]=='O' && a[2][5]=='_' && a[3][5]!='_'){return(5);}
if(a[5][2]=='O' && a[4][3]=='O' && a[3][4]=='_' && a[2][5]=='O' && a[4][4]!='_'){return(4);}
if(a[5][2]=='O' && a[4][3]=='_' && a[3][4]=='O' && a[2][5]=='O' && a[5][3]!='_'){return(3);}
if(a[5][2]=='_' && a[4][3]=='O' && a[3][4]=='O' && a[2][5]=='O' && a[6][2]!='_'){return(2);}
if(a[5][3]=='O' && a[4][4]=='O' && a[3][5]=='O' && a[2][6]=='_' && a[3][6]!='_'){return(6);}
if(a[5][3]=='O' && a[4][4]=='O' && a[3][5]=='_' && a[2][6]=='O' && a[4][5]!='_'){return(5);}
if(a[5][3]=='O' && a[4][4]=='_' && a[3][5]=='O' && a[2][6]=='O' && a[5][4]!='_'){return(4);}
if(a[5][3]=='_' && a[4][4]=='O' && a[3][5]=='O' && a[2][6]=='O' && a[6][3]!='_'){return(3);}
if(a[5][4]=='O' && a[4][5]=='O' && a[3][6]=='O' && a[2][7]=='_' && a[3][7]!='_'){return(7);}
if(a[5][4]=='O' && a[4][5]=='O' && a[3][6]=='_' && a[2][7]=='O' && a[4][6]!='_'){return(6);}
if(a[5][4]=='O' && a[4][5]=='_' && a[3][6]=='O' && a[2][7]=='O' && a[5][5]!='_'){return(5);}
if(a[5][4]=='_' && a[4][5]=='O' && a[3][6]=='O' && a[2][7]=='O' && a[6][4]!='_'){return(4);}
if(a[4][1]=='O' && a[3][2]=='O' && a[2][3]=='O' && a[1][4]=='_' && a[2][4]!='_'){return(4);}
if(a[4][1]=='O' && a[3][2]=='O' && a[2][3]=='_' && a[1][4]=='O' && a[3][3]!='_'){return(3);}
if(a[4][1]=='O' && a[3][2]=='_' && a[2][3]=='O' && a[1][4]=='O' && a[4][2]!='_'){return(2);}
if(a[4][1]=='_' && a[3][2]=='O' && a[2][3]=='O' && a[1][4]=='O' && a[5][1]!='_'){return(1);}
if(a[4][2]=='O' && a[3][3]=='O' && a[2][4]=='O' && a[1][5]=='_' && a[2][5]!='_'){return(5);}
if(a[4][2]=='O' && a[3][3]=='O' && a[2][4]=='_' && a[1][5]=='O' && a[3][4]!='_'){return(4);}
if(a[4][2]=='O' && a[3][3]=='_' && a[2][4]=='O' && a[1][5]=='O' && a[4][3]!='_'){return(3);}
if(a[4][2]=='_' && a[3][3]=='O' && a[2][4]=='O' && a[1][5]=='O' && a[5][2]!='_'){return(2);}
if(a[4][3]=='O' && a[3][4]=='O' && a[2][5]=='O' && a[1][6]=='_' && a[2][6]!='_'){return(6);}
if(a[4][3]=='O' && a[3][4]=='O' && a[2][5]=='_' && a[1][6]=='O' && a[3][5]!='_'){return(5);}
if(a[4][3]=='O' && a[3][4]=='_' && a[2][5]=='O' && a[1][6]=='O' && a[4][4]!='_'){return(4);}
if(a[4][3]=='_' && a[3][4]=='O' && a[2][5]=='O' && a[1][6]=='O' && a[5][3]!='_'){return(3);}
if(a[4][4]=='O' && a[3][5]=='O' && a[2][6]=='O' && a[1][7]=='_' && a[2][7]!='_'){return(7);}
if(a[4][4]=='O' && a[3][5]=='O' && a[2][6]=='_' && a[1][7]=='O' && a[3][6]!='_'){return(6);}
if(a[4][4]=='O' && a[3][5]=='_' && a[2][6]=='O' && a[1][7]=='O' && a[4][5]!='_'){return(5);}
if(a[4][4]=='_' && a[3][5]=='O' && a[2][6]=='O' && a[1][7]=='O' && a[5][4]!='_'){return(4);}
}
//DIAGONAL LEFT
{
if(a[6][4]=='O' && a[5][3]=='O' && a[4][2]=='O' && a[3][1]=='_' && a[4][1]!='_'){return(1);}
if(a[6][4]=='O' && a[5][3]=='O' && a[4][2]=='_' && a[3][1]=='O' && a[5][2]!='_'){return(2);}
if(a[6][4]=='O' && a[5][3]=='_' && a[4][2]=='O' && a[3][1]=='O' && a[6][3]!='_'){return(3);}
if(a[6][4]=='_' && a[5][3]=='O' && a[4][2]=='O' && a[3][1]=='O'){return(4);}
if(a[6][5]=='O' && a[5][4]=='O' && a[4][3]=='O' && a[3][2]=='_' && a[4][2]!='_'){return(2);}
if(a[6][5]=='O' && a[5][4]=='O' && a[4][3]=='_' && a[3][2]=='O' && a[5][3]!='_'){return(3);}
if(a[6][5]=='O' && a[5][4]=='_' && a[4][3]=='O' && a[3][2]=='O' && a[6][4]!='_'){return(4);}
if(a[6][5]=='_' && a[5][4]=='O' && a[4][3]=='O' && a[3][2]=='O'){return(5);}
if(a[6][6]=='O' && a[5][5]=='O' && a[4][4]=='O' && a[3][3]=='_' && a[4][3]!='_'){return(3);}
if(a[6][6]=='O' && a[5][5]=='O' && a[4][4]=='_' && a[3][3]=='O' && a[5][4]!='_'){return(4);}
if(a[6][6]=='O' && a[5][5]=='_' && a[4][4]=='O' && a[3][3]=='O' && a[6][5]!='_'){return(5);}
if(a[6][6]=='_' && a[5][5]=='O' && a[4][4]=='O' && a[3][3]=='O'){return(6);}
if(a[6][7]=='O' && a[5][6]=='O' && a[4][5]=='O' && a[3][4]=='_' && a[4][4]!='_'){return(4);}
if(a[6][7]=='O' && a[5][6]=='O' && a[4][5]=='_' && a[3][4]=='O' && a[5][5]!='_'){return(5);}
if(a[6][7]=='O' && a[5][6]=='_' && a[4][5]=='O' && a[3][4]=='O' && a[6][6]!='_'){return(6);}
if(a[6][7]=='_' && a[5][6]=='O' && a[4][5]=='O' && a[3][4]=='O'){return(7);}
if(a[5][4]=='O' && a[4][3]=='O' && a[3][2]=='O' && a[2][1]=='_' && a[3][1]!='_'){return(1);}
if(a[5][4]=='O' && a[4][3]=='O' && a[3][2]=='_' && a[2][1]=='O' && a[4][2]!='_'){return(2);}
if(a[5][4]=='O' && a[4][3]=='_' && a[3][2]=='O' && a[2][1]=='O' && a[5][3]!='_'){return(3);}
if(a[5][4]=='_' && a[4][3]=='O' && a[3][2]=='O' && a[2][1]=='O' && a[6][4]!='_'){return(4);}
if(a[5][5]=='O' && a[4][4]=='O' && a[3][3]=='O' && a[2][2]=='_' && a[3][2]!='_'){return(2);}
if(a[5][5]=='O' && a[4][4]=='O' && a[3][3]=='_' && a[2][2]=='O' && a[4][3]!='_'){return(3);}
if(a[5][5]=='O' && a[4][4]=='_' && a[3][3]=='O' && a[2][2]=='O' && a[5][4]!='_'){return(4);}
if(a[5][5]=='_' && a[4][4]=='O' && a[3][3]=='O' && a[2][2]=='O' && a[6][5]!='_'){return(5);}
if(a[5][6]=='O' && a[4][5]=='O' && a[3][4]=='O' && a[2][3]=='_' && a[3][3]!='_'){return(3);}
if(a[5][6]=='O' && a[4][5]=='O' && a[3][4]=='_' && a[2][3]=='O' && a[4][4]!='_'){return(4);}
if(a[5][6]=='O' && a[4][5]=='_' && a[3][4]=='O' && a[2][3]=='O' && a[5][5]!='_'){return(5);}
if(a[5][6]=='_' && a[4][5]=='O' && a[3][4]=='O' && a[2][3]=='O' && a[6][6]!='_'){return(6);}
if(a[5][7]=='O' && a[4][6]=='O' && a[3][5]=='O' && a[2][4]=='_' && a[3][4]!='_'){return(4);}
if(a[5][7]=='O' && a[4][6]=='O' && a[3][5]=='_' && a[2][4]=='O' && a[4][5]!='_'){return(5);}
if(a[5][7]=='O' && a[4][6]=='_' && a[3][5]=='O' && a[2][4]=='O' && a[5][6]!='_'){return(6);}
if(a[5][7]=='_' && a[4][6]=='O' && a[3][5]=='O' && a[2][4]=='O' && a[6][7]!='_'){return(7);}
if(a[4][4]=='O' && a[3][3]=='O' && a[2][2]=='O' && a[1][1]=='_' && a[2][1]!='_'){return(1);}
if(a[4][4]=='O' && a[3][3]=='O' && a[2][2]=='_' && a[1][1]=='O' && a[3][2]!='_'){return(2);}
if(a[4][4]=='O' && a[3][3]=='_' && a[2][2]=='O' && a[1][1]=='O' && a[4][3]!='_'){return(3);}
if(a[4][4]=='_' && a[3][3]=='O' && a[2][2]=='O' && a[1][1]=='O' && a[5][4]!='_'){return(4);}
if(a[4][5]=='O' && a[3][4]=='O' && a[2][3]=='O' && a[1][2]=='_' && a[2][2]!='_'){return(2);}
if(a[4][5]=='O' && a[3][4]=='O' && a[2][3]=='_' && a[1][2]=='O' && a[3][3]!='_'){return(3);}
if(a[4][5]=='O' && a[3][4]=='_' && a[2][3]=='O' && a[1][2]=='O' && a[4][4]!='_'){return(4);}
if(a[4][5]=='_' && a[3][4]=='O' && a[2][3]=='O' && a[1][2]=='O' && a[5][5]!='_'){return(5);}
if(a[4][6]=='O' && a[3][5]=='O' && a[2][4]=='O' && a[1][3]=='_' && a[2][3]!='_'){return(3);}
if(a[4][6]=='O' && a[3][5]=='O' && a[2][4]=='_' && a[1][3]=='O' && a[3][4]!='_'){return(4);}
if(a[4][6]=='O' && a[3][5]=='_' && a[2][4]=='O' && a[1][3]=='O' && a[4][5]!='_'){return(5);}
if(a[4][6]=='_' && a[3][5]=='O' && a[2][4]=='O' && a[1][3]=='O' && a[5][6]!='_'){return(6);}
if(a[4][7]=='O' && a[3][6]=='O' && a[2][5]=='O' && a[1][4]=='_' && a[2][4]!='_'){return(4);}
if(a[4][7]=='O' && a[3][6]=='O' && a[2][5]=='_' && a[1][4]=='O' && a[3][5]!='_'){return(5);}
if(a[4][7]=='O' && a[3][6]=='_' && a[2][5]=='O' && a[1][4]=='O' && a[4][6]!='_'){return(6);}
if(a[4][7]=='_' && a[3][6]=='O' && a[2][5]=='O' && a[1][4]=='O' && a[5][7]!='_'){return(7);}
}
//Checks To Block Oponent
//HORIZONTAL
{
if(a[6][1]=='X' && a[6][2]=='X' && a[6][3]=='X' && a[6][4]=='_'){return(4);}
if(a[6][1]=='X' && a[6][2]=='X' && a[6][3]=='_' && a[6][4]=='X'){return(3);}
if(a[6][1]=='X' && a[6][2]=='_' && a[6][3]=='X' && a[6][4]=='X'){return(2);}
if(a[6][1]=='_' && a[6][2]=='X' && a[6][3]=='X' && a[6][4]=='X'){return(1);}
if(a[6][2]=='X' && a[6][3]=='X' && a[6][4]=='X' && a[6][5]=='_'){return(5);}
if(a[6][2]=='X' && a[6][3]=='X' && a[6][4]=='_' && a[6][5]=='X'){return(4);}
if(a[6][2]=='X' && a[6][3]=='_' && a[6][4]=='X' && a[6][5]=='X'){return(3);}
if(a[6][2]=='_' && a[6][3]=='X' && a[6][4]=='X' && a[6][5]=='X'){return(2);}
if(a[6][3]=='X' && a[6][4]=='X' && a[6][5]=='X' && a[6][6]=='_'){return(6);}
if(a[6][3]=='X' && a[6][4]=='X' && a[6][5]=='_' && a[6][6]=='X'){return(5);}
if(a[6][3]=='X' && a[6][4]=='_' && a[6][5]=='X' && a[6][6]=='X'){return(4);}
if(a[6][3]=='_' && a[6][4]=='X' && a[6][5]=='X' && a[6][6]=='X'){return(3);}
if(a[6][4]=='X' && a[6][5]=='X' && a[6][6]=='X' && a[6][7]=='_'){return(7);}
if(a[6][4]=='X' && a[6][5]=='X' && a[6][6]=='_' && a[6][7]=='X'){return(6);}
if(a[6][4]=='X' && a[6][5]=='_' && a[6][6]=='X' && a[6][7]=='X'){return(5);}
if(a[6][4]=='_' && a[6][5]=='X' && a[6][6]=='X' && a[6][7]=='X'){return(4);}
if(a[5][1]=='X' && a[5][2]=='X' && a[5][3]=='X' && a[5][4]=='_' && a[6][4]!='_'){return(4);}
if(a[5][1]=='X' && a[5][2]=='X' && a[5][3]=='_' && a[5][4]=='X' && a[6][3]!='_'){return(3);}
if(a[5][1]=='X' && a[5][2]=='_' && a[5][3]=='X' && a[5][4]=='X' && a[6][2]!='_'){return(2);}
if(a[5][1]=='_' && a[5][2]=='X' && a[5][3]=='X' && a[5][4]=='X' && a[6][1]!='_'){return(1);}
if(a[5][2]=='X' && a[5][3]=='X' && a[5][4]=='X' && a[5][5]=='_' && a[6][5]!='_'){return(5);}
if(a[5][2]=='X' && a[5][3]=='X' && a[5][4]=='_' && a[5][5]=='X' && a[6][4]!='_'){return(4);}
if(a[5][2]=='X' && a[5][3]=='_' && a[5][4]=='X' && a[5][5]=='X' && a[6][3]!='_'){return(3);}
if(a[5][2]=='_' && a[5][3]=='X' && a[5][4]=='X' && a[5][5]=='X' && a[6][2]!='_'){return(2);}
if(a[5][3]=='X' && a[5][4]=='X' && a[5][5]=='X' && a[5][6]=='_' && a[6][6]!='_'){return(6);}
if(a[5][3]=='X' && a[5][4]=='X' && a[5][5]=='_' && a[5][6]=='X' && a[6][5]!='_'){return(5);}
if(a[5][3]=='X' && a[5][4]=='_' && a[5][5]=='X' && a[5][6]=='X' && a[6][4]!='_'){return(4);}
if(a[5][3]=='_' && a[5][4]=='X' && a[5][5]=='X' && a[5][6]=='X' && a[6][3]!='_'){return(3);}
if(a[5][4]=='X' && a[5][5]=='X' && a[5][6]=='X' && a[5][7]=='_' && a[6][7]!='_'){return(7);}
if(a[5][4]=='X' && a[5][5]=='X' && a[5][6]=='_' && a[5][7]=='X' && a[6][6]!='_'){return(6);}
if(a[5][4]=='X' && a[5][5]=='_' && a[5][6]=='X' && a[5][7]=='X' && a[6][5]!='_'){return(5);}
if(a[5][4]=='_' && a[5][5]=='X' && a[5][6]=='X' && a[5][7]=='X' && a[6][4]!='_'){return(4);}
if(a[4][1]=='X' && a[4][2]=='X' && a[4][3]=='X' && a[4][4]=='_' && a[5][4]!='_'){return(4);}
if(a[4][1]=='X' && a[4][2]=='X' && a[4][3]=='_' && a[4][4]=='X' && a[5][3]!='_'){return(3);}
if(a[4][1]=='X' && a[4][2]=='_' && a[4][3]=='X' && a[4][4]=='X' && a[5][2]!='_'){return(2);}
if(a[4][1]=='_' && a[4][2]=='X' && a[4][3]=='X' && a[4][4]=='X' && a[5][1]!='_'){return(1);}
if(a[4][2]=='X' && a[4][3]=='X' && a[4][4]=='X' && a[4][5]=='_' && a[5][5]!='_'){return(5);}
if(a[4][2]=='X' && a[4][3]=='X' && a[4][4]=='_' && a[4][5]=='X' && a[5][4]!='_'){return(4);}
if(a[4][2]=='X' && a[4][3]=='_' && a[4][4]=='X' && a[4][5]=='X' && a[5][3]!='_'){return(3);}
if(a[4][2]=='_' && a[4][3]=='X' && a[4][4]=='X' && a[4][5]=='X' && a[5][2]!='_'){return(2);}
if(a[4][3]=='X' && a[4][4]=='X' && a[4][5]=='X' && a[4][6]=='_' && a[5][6]!='_'){return(6);}
if(a[4][3]=='X' && a[4][4]=='X' && a[4][5]=='_' && a[4][6]=='X' && a[5][5]!='_'){return(5);}
if(a[4][3]=='X' && a[4][4]=='_' && a[4][5]=='X' && a[4][6]=='X' && a[5][4]!='_'){return(4);}
if(a[4][3]=='_' && a[4][4]=='X' && a[4][5]=='X' && a[4][6]=='X' && a[5][3]!='_'){return(3);}
if(a[4][4]=='X' && a[4][5]=='X' && a[4][6]=='X' && a[4][7]=='_' && a[5][7]!='_'){return(7);}
if(a[4][4]=='X' && a[4][5]=='X' && a[4][6]=='_' && a[4][7]=='X' && a[5][6]!='_'){return(6);}
if(a[4][4]=='X' && a[4][5]=='_' && a[4][6]=='X' && a[4][7]=='X' && a[5][5]!='_'){return(5);}
if(a[4][4]=='_' && a[4][5]=='X' && a[4][6]=='X' && a[4][7]=='X' && a[5][4]!='_'){return(4);}
if(a[3][1]=='X' && a[3][2]=='X' && a[3][3]=='X' && a[3][4]=='_' && a[4][4]!='_'){return(4);}
if(a[3][1]=='X' && a[3][2]=='X' && a[3][3]=='_' && a[3][4]=='X' && a[4][3]!='_'){return(3);}
if(a[3][1]=='X' && a[3][2]=='_' && a[3][3]=='X' && a[3][4]=='X' && a[4][2]!='_'){return(2);}
if(a[3][1]=='_' && a[3][2]=='X' && a[3][3]=='X' && a[3][4]=='X' && a[4][1]!='_'){return(1);}
if(a[3][2]=='X' && a[3][3]=='X' && a[3][4]=='X' && a[3][5]=='_' && a[4][5]!='_'){return(5);}
if(a[3][2]=='X' && a[3][3]=='X' && a[3][4]=='_' && a[3][5]=='X' && a[4][4]!='_'){return(4);}
if(a[3][2]=='X' && a[3][3]=='_' && a[3][4]=='X' && a[3][5]=='X' && a[4][3]!='_'){return(3);}
if(a[3][2]=='_' && a[3][3]=='X' && a[3][3]=='X' && a[3][5]=='X' && a[4][2]!='_'){return(2);}
if(a[3][3]=='X' && a[3][3]=='X' && a[3][5]=='X' && a[3][6]=='_' && a[4][6]!='_'){return(6);}
if(a[3][3]=='X' && a[3][3]=='X' && a[3][5]=='_' && a[3][6]=='X' && a[4][5]!='_'){return(5);}
if(a[3][3]=='X' && a[3][3]=='_' && a[3][5]=='X' && a[3][6]=='X' && a[4][4]!='_'){return(4);}
if(a[3][3]=='_' && a[3][3]=='X' && a[3][5]=='X' && a[3][6]=='X' && a[4][3]!='_'){return(3);}
if(a[3][4]=='X' && a[3][5]=='X' && a[3][6]=='X' && a[3][7]=='_' && a[4][7]!='_'){return(7);}
if(a[3][4]=='X' && a[3][5]=='X' && a[3][6]=='_' && a[3][7]=='X' && a[4][6]!='_'){return(6);}
if(a[3][4]=='X' && a[3][5]=='_' && a[3][6]=='X' && a[3][7]=='X' && a[4][5]!='_'){return(5);}
if(a[3][4]=='_' && a[3][5]=='X' && a[3][6]=='X' && a[3][7]=='X' && a[4][4]!='_'){return(4);}
if(a[2][1]=='X' && a[2][2]=='X' && a[2][3]=='X' && a[2][4]=='_' && a[3][4]!='_'){return(4);}
if(a[2][1]=='X' && a[2][2]=='X' && a[2][3]=='_' && a[2][4]=='X' && a[3][3]!='_'){return(3);}
if(a[2][1]=='X' && a[2][2]=='_' && a[2][3]=='X' && a[2][4]=='X' && a[3][2]!='_'){return(2);}
if(a[2][1]=='_' && a[2][2]=='X' && a[2][3]=='X' && a[2][4]=='X' && a[3][1]!='_'){return(1);}
if(a[2][2]=='X' && a[2][3]=='X' && a[2][4]=='X' && a[2][5]=='_' && a[3][5]!='_'){return(5);}
if(a[2][2]=='X' && a[2][3]=='X' && a[2][4]=='_' && a[2][5]=='X' && a[3][4]!='_'){return(4);}
if(a[2][2]=='X' && a[2][3]=='_' && a[2][4]=='X' && a[2][5]=='X' && a[3][3]!='_'){return(3);}
if(a[2][2]=='_' && a[2][3]=='X' && a[2][4]=='X' && a[2][5]=='X' && a[3][2]!='_'){return(2);}
if(a[2][3]=='X' && a[2][4]=='X' && a[2][5]=='X' && a[2][6]=='_' && a[3][6]!='_'){return(6);}
if(a[2][3]=='X' && a[2][4]=='X' && a[2][5]=='_' && a[2][6]=='X' && a[3][5]!='_'){return(5);}
if(a[2][3]=='X' && a[2][4]=='_' && a[2][5]=='X' && a[2][6]=='X' && a[3][4]!='_'){return(4);}
if(a[2][3]=='_' && a[2][4]=='X' && a[2][5]=='X' && a[2][6]=='X' && a[3][3]!='_'){return(3);}
if(a[2][4]=='X' && a[2][5]=='X' && a[2][6]=='X' && a[2][7]=='_' && a[3][7]!='_'){return(7);}
if(a[2][4]=='X' && a[2][5]=='X' && a[2][6]=='_' && a[2][7]=='X' && a[3][6]!='_'){return(6);}
if(a[2][4]=='X' && a[2][5]=='_' && a[2][6]=='X' && a[2][7]=='X' && a[3][5]!='_'){return(5);}
if(a[2][4]=='_' && a[2][5]=='X' && a[2][6]=='X' && a[2][7]=='X' && a[3][4]!='_'){return(4);}
if(a[1][1]=='X' && a[1][2]=='X' && a[1][3]=='X' && a[1][4]=='_' && a[2][4]!='_'){return(4);}
if(a[1][1]=='X' && a[1][2]=='X' && a[1][3]=='_' && a[1][4]=='X' && a[2][3]!='_'){return(3);}
if(a[1][1]=='X' && a[1][2]=='_' && a[1][3]=='X' && a[1][4]=='X' && a[2][2]!='_'){return(2);}
if(a[1][1]=='_' && a[1][2]=='X' && a[1][3]=='X' && a[1][4]=='X' && a[2][1]!='_'){return(1);}
if(a[1][2]=='X' && a[1][3]=='X' && a[1][4]=='X' && a[1][5]=='_' && a[2][5]!='_'){return(5);}
if(a[1][2]=='X' && a[1][3]=='X' && a[1][4]=='_' && a[1][5]=='X' && a[2][4]!='_'){return(4);}
if(a[1][2]=='X' && a[1][3]=='_' && a[1][4]=='X' && a[1][5]=='X' && a[2][3]!='_'){return(3);}
if(a[1][2]=='_' && a[1][3]=='X' && a[1][4]=='X' && a[1][5]=='X' && a[2][2]!='_'){return(2);}
if(a[1][3]=='X' && a[1][4]=='X' && a[1][5]=='X' && a[1][6]=='_' && a[2][6]!='_'){return(6);}
if(a[1][3]=='X' && a[1][4]=='X' && a[1][5]=='_' && a[1][6]=='X' && a[2][5]!='_'){return(5);}
if(a[1][3]=='X' && a[1][4]=='_' && a[1][5]=='X' && a[1][6]=='X' && a[2][4]!='_'){return(4);}
if(a[1][3]=='_' && a[1][4]=='X' && a[1][5]=='X' && a[1][6]=='X' && a[2][3]!='_'){return(3);}
if(a[1][4]=='X' && a[1][5]=='X' && a[1][6]=='X' && a[1][7]=='_' && a[2][7]!='_'){return(7);}
if(a[1][4]=='X' && a[1][5]=='X' && a[1][6]=='_' && a[1][7]=='X' && a[2][6]!='_'){return(6);}
if(a[1][4]=='X' && a[1][5]=='_' && a[1][6]=='X' && a[1][7]=='X' && a[2][5]!='_'){return(5);}
if(a[1][4]=='_' && a[1][5]=='X' && a[1][6]=='X' && a[1][7]=='X' && a[2][4]!='_'){return(4);}
}
//VERTICAL
{
if(a[6][1]=='X' && a[5][1]=='X' && a[4][1]=='X' && a[3][1]=='_'){return(1);}
if(a[5][1]=='X' && a[4][1]=='X' && a[3][1]=='X' && a[2][1]=='_'){return(1);}
if(a[4][1]=='X' && a[3][1]=='X' && a[2][1]=='X' && a[1][1]=='_'){return(1);}
if(a[6][2]=='X' && a[5][2]=='X' && a[4][2]=='X' && a[3][2]=='_'){return(2);}
if(a[5][2]=='X' && a[4][2]=='X' && a[3][2]=='X' && a[2][2]=='_'){return(2);}
if(a[4][2]=='X' && a[3][2]=='X' && a[2][2]=='X' && a[1][2]=='_'){return(2);}
if(a[6][3]=='X' && a[5][3]=='X' && a[4][3]=='X' && a[3][3]=='_'){return(3);}
if(a[5][3]=='X' && a[4][3]=='X' && a[3][3]=='X' && a[2][3]=='_'){return(3);}
if(a[4][3]=='X' && a[3][3]=='X' && a[2][3]=='X' && a[1][3]=='_'){return(3);}
if(a[6][4]=='X' && a[5][4]=='X' && a[4][4]=='X' && a[3][4]=='_'){return(4);}
if(a[5][4]=='X' && a[4][4]=='X' && a[3][4]=='X' && a[2][4]=='_'){return(4);}
if(a[4][4]=='X' && a[3][4]=='X' && a[2][4]=='X' && a[1][4]=='_'){return(4);}
if(a[6][5]=='X' && a[5][5]=='X' && a[4][5]=='X' && a[3][5]=='_'){return(5);}
if(a[5][5]=='X' && a[4][5]=='X' && a[3][5]=='X' && a[2][5]=='_'){return(5);}
if(a[4][5]=='X' && a[3][5]=='X' && a[2][5]=='X' && a[1][5]=='_'){return(5);}
if(a[6][6]=='X' && a[5][6]=='X' && a[4][6]=='X' && a[3][6]=='_'){return(6);}
if(a[5][6]=='X' && a[4][6]=='X' && a[3][6]=='X' && a[2][6]=='_'){return(6);}
if(a[4][6]=='X' && a[3][6]=='X' && a[2][6]=='X' && a[1][6]=='_'){return(6);}
if(a[6][7]=='X' && a[5][7]=='X' && a[4][7]=='X' && a[3][7]=='_'){return(7);}
if(a[5][7]=='X' && a[4][7]=='X' && a[3][7]=='X' && a[2][7]=='_'){return(7);}
if(a[4][7]=='X' && a[3][7]=='X' && a[2][7]=='X' && a[1][7]=='_'){return(7);}
}
//DIAGONAL RIGHT
{
if(a[6][1]=='X' && a[5][2]=='X' && a[4][3]=='X' && a[3][4]=='_' && a[4][4]!='_'){return(4);}
if(a[6][1]=='X' && a[5][2]=='X' && a[4][3]=='_' && a[3][4]=='X' && a[5][3]!='_'){return(3);}
if(a[6][1]=='X' && a[5][2]=='_' && a[4][3]=='X' && a[3][4]=='X' && a[6][2]!='_'){return(2);}
if(a[6][1]=='_' && a[5][2]=='X' && a[4][3]=='X' && a[3][4]=='X'){return(1);}
if(a[6][2]=='X' && a[5][3]=='X' && a[4][4]=='X' && a[3][5]=='_' && a[4][5]!='_'){return(5);}
if(a[6][2]=='X' && a[5][3]=='X' && a[4][4]=='_' && a[3][5]=='X' && a[5][4]!='_'){return(4);}
if(a[6][2]=='X' && a[5][3]=='_' && a[4][4]=='X' && a[3][5]=='X' && a[6][3]!='_'){return(3);}
if(a[6][2]=='_' && a[5][3]=='X' && a[4][4]=='X' && a[3][5]=='X'){return(2);}
if(a[6][3]=='X' && a[5][4]=='X' && a[4][5]=='X' && a[3][6]=='_' && a[4][6]!='_'){return(6);}
if(a[6][3]=='X' && a[5][4]=='X' && a[4][5]=='_' && a[3][6]=='X' && a[5][5]!='_'){return(5);}
if(a[6][3]=='X' && a[5][4]=='_' && a[4][5]=='X' && a[3][6]=='X' && a[6][4]!='_'){return(4);}
if(a[6][3]=='_' && a[5][4]=='X' && a[4][5]=='X' && a[3][6]=='X'){return(3);}
if(a[6][4]=='X' && a[5][5]=='X' && a[4][6]=='X' && a[3][7]=='_' && a[4][7]!='_'){return(7);}
if(a[6][4]=='X' && a[5][5]=='X' && a[4][6]=='_' && a[3][7]=='X' && a[5][6]!='_'){return(6);}
if(a[6][4]=='X' && a[5][5]=='_' && a[4][6]=='X' && a[3][7]=='X' && a[6][5]!='_'){return(5);}
if(a[6][4]=='_' && a[5][5]=='X' && a[4][6]=='X' && a[3][7]=='X'){return(4);}
if(a[5][1]=='X' && a[4][2]=='X' && a[3][3]=='X' && a[2][4]=='_' && a[3][4]!='_'){return(4);}
if(a[5][1]=='X' && a[4][2]=='X' && a[3][3]=='_' && a[2][4]=='X' && a[4][3]!='_'){return(3);}
if(a[5][1]=='X' && a[4][2]=='_' && a[3][3]=='X' && a[2][4]=='X' && a[5][2]!='_'){return(2);}
if(a[5][1]=='_' && a[4][2]=='X' && a[3][3]=='X' && a[2][4]=='X' && a[6][1]!='_'){return(1);}
if(a[5][2]=='X' && a[4][3]=='X' && a[3][4]=='X' && a[2][5]=='_' && a[3][5]!='_'){return(5);}
if(a[5][2]=='X' && a[4][3]=='X' && a[3][4]=='_' && a[2][5]=='X' && a[4][4]!='_'){return(4);}
if(a[5][2]=='X' && a[4][3]=='_' && a[3][4]=='X' && a[2][5]=='X' && a[5][3]!='_'){return(3);}
if(a[5][2]=='_' && a[4][3]=='X' && a[3][4]=='X' && a[2][5]=='X' && a[6][2]!='_'){return(2);}
if(a[5][3]=='X' && a[4][4]=='X' && a[3][5]=='X' && a[2][6]=='_' && a[3][6]!='_'){return(6);}
if(a[5][3]=='X' && a[4][4]=='X' && a[3][5]=='_' && a[2][6]=='X' && a[4][5]!='_'){return(5);}
if(a[5][3]=='X' && a[4][4]=='_' && a[3][5]=='X' && a[2][6]=='X' && a[5][4]!='_'){return(4);}
if(a[5][3]=='_' && a[4][4]=='X' && a[3][5]=='X' && a[2][6]=='X' && a[6][3]!='_'){return(3);}
if(a[5][4]=='X' && a[4][5]=='X' && a[3][6]=='X' && a[2][7]=='_' && a[3][7]!='_'){return(7);}
if(a[5][4]=='X' && a[4][5]=='X' && a[3][6]=='_' && a[2][7]=='X' && a[4][6]!='_'){return(6);}
if(a[5][4]=='X' && a[4][5]=='_' && a[3][6]=='X' && a[2][7]=='X' && a[5][5]!='_'){return(5);}
if(a[5][4]=='_' && a[4][5]=='X' && a[3][6]=='X' && a[2][7]=='X' && a[6][4]!='_'){return(4);}
if(a[4][1]=='X' && a[3][2]=='X' && a[2][3]=='X' && a[1][4]=='_' && a[2][4]!='_'){return(4);}
if(a[4][1]=='X' && a[3][2]=='X' && a[2][3]=='_' && a[1][4]=='X' && a[3][3]!='_'){return(3);}
if(a[4][1]=='X' && a[3][2]=='_' && a[2][3]=='X' && a[1][4]=='X' && a[4][2]!='_'){return(2);}
if(a[4][1]=='_' && a[3][2]=='X' && a[2][3]=='X' && a[1][4]=='X' && a[5][1]!='_'){return(1);}
if(a[4][2]=='X' && a[3][3]=='X' && a[2][4]=='X' && a[1][5]=='_' && a[2][5]!='_'){return(5);}
if(a[4][2]=='X' && a[3][3]=='X' && a[2][4]=='_' && a[1][5]=='X' && a[3][4]!='_'){return(4);}
if(a[4][2]=='X' && a[3][3]=='_' && a[2][4]=='X' && a[1][5]=='X' && a[4][3]!='_'){return(3);}
if(a[4][2]=='_' && a[3][3]=='X' && a[2][4]=='X' && a[1][5]=='X' && a[5][2]!='_'){return(2);}
if(a[4][3]=='X' && a[3][4]=='X' && a[2][5]=='X' && a[1][6]=='_' && a[2][6]!='_'){return(6);}
if(a[4][3]=='X' && a[3][4]=='X' && a[2][5]=='_' && a[1][6]=='X' && a[3][5]!='_'){return(5);}
if(a[4][3]=='X' && a[3][4]=='_' && a[2][5]=='X' && a[1][6]=='X' && a[4][4]!='_'){return(4);}
if(a[4][3]=='_' && a[3][4]=='X' && a[2][5]=='X' && a[1][6]=='X' && a[5][3]!='_'){return(3);}
if(a[4][4]=='X' && a[3][5]=='X' && a[2][6]=='X' && a[1][7]=='_' && a[2][7]!='_'){return(7);}
if(a[4][4]=='X' && a[3][5]=='X' && a[2][6]=='_' && a[1][7]=='X' && a[3][6]!='_'){return(6);}
if(a[4][4]=='X' && a[3][5]=='_' && a[2][6]=='X' && a[1][7]=='X' && a[4][5]!='_'){return(5);}
if(a[4][4]=='_' && a[3][5]=='X' && a[2][6]=='X' && a[1][7]=='X' && a[5][4]!='_'){return(4);}
}
//DIAGONAL LEFT
{
if(a[6][4]=='X' && a[5][3]=='X' && a[4][2]=='X' && a[3][1]=='_' && a[4][1]!='_'){return(1);}
if(a[6][4]=='X' && a[5][3]=='X' && a[4][2]=='_' && a[3][1]=='X' && a[5][2]!='_'){return(2);}
if(a[6][4]=='X' && a[5][3]=='_' && a[4][2]=='X' && a[3][1]=='X' && a[6][3]!='_'){return(3);}
if(a[6][4]=='_' && a[5][3]=='X' && a[4][2]=='X' && a[3][1]=='X'){return(4);}
if(a[6][5]=='X' && a[5][4]=='X' && a[4][3]=='X' && a[3][2]=='_' && a[4][2]!='_'){return(2);}
if(a[6][5]=='X' && a[5][4]=='X' && a[4][3]=='_' && a[3][2]=='X' && a[5][3]!='_'){return(3);}
if(a[6][5]=='X' && a[5][4]=='_' && a[4][3]=='X' && a[3][2]=='X' && a[6][4]!='_'){return(4);}
if(a[6][5]=='_' && a[5][4]=='X' && a[4][3]=='X' && a[3][2]=='X'){return(5);}
if(a[6][6]=='X' && a[5][5]=='X' && a[4][4]=='X' && a[3][3]=='_' && a[4][3]!='_'){return(3);}
if(a[6][6]=='X' && a[5][5]=='X' && a[4][4]=='_' && a[3][3]=='X' && a[5][4]!='_'){return(4);}
if(a[6][6]=='X' && a[5][5]=='_' && a[4][4]=='X' && a[3][3]=='X' && a[6][5]!='_'){return(5);}
if(a[6][6]=='_' && a[5][5]=='X' && a[4][4]=='X' && a[3][3]=='X'){return(6);}
if(a[6][7]=='X' && a[5][6]=='X' && a[4][5]=='X' && a[3][4]=='_' && a[4][4]!='_'){return(4);}
if(a[6][7]=='X' && a[5][6]=='X' && a[4][5]=='_' && a[3][4]=='X' && a[5][5]!='_'){return(5);}
if(a[6][7]=='X' && a[5][6]=='_' && a[4][5]=='X' && a[3][4]=='X' && a[6][6]!='_'){return(6);}
if(a[6][7]=='_' && a[5][6]=='X' && a[4][5]=='X' && a[3][4]=='X'){return(7);}
if(a[5][4]=='X' && a[4][3]=='X' && a[3][2]=='X' && a[2][1]=='_' && a[3][1]!='_'){return(1);}
if(a[5][4]=='X' && a[4][3]=='X' && a[3][2]=='_' && a[2][1]=='X' && a[4][2]!='_'){return(2);}
if(a[5][4]=='X' && a[4][3]=='_' && a[3][2]=='X' && a[2][1]=='X' && a[5][3]!='_'){return(3);}
if(a[5][4]=='_' && a[4][3]=='X' && a[3][2]=='X' && a[2][1]=='X' && a[6][4]!='_'){return(4);}
if(a[5][5]=='X' && a[4][4]=='X' && a[3][3]=='X' && a[2][2]=='_' && a[3][2]!='_'){return(2);}
if(a[5][5]=='X' && a[4][4]=='X' && a[3][3]=='_' && a[2][2]=='X' && a[4][3]!='_'){return(3);}
if(a[5][5]=='X' && a[4][4]=='_' && a[3][3]=='X' && a[2][2]=='X' && a[5][4]!='_'){return(4);}
if(a[5][5]=='_' && a[4][4]=='X' && a[3][3]=='X' && a[2][2]=='X' && a[6][5]!='_'){return(5);}
if(a[5][6]=='X' && a[4][5]=='X' && a[3][4]=='X' && a[2][3]=='_' && a[3][3]!='_'){return(3);}
if(a[5][6]=='X' && a[4][5]=='X' && a[3][4]=='_' && a[2][3]=='X' && a[4][4]!='_'){return(4);}
if(a[5][6]=='X' && a[4][5]=='_' && a[3][4]=='X' && a[2][3]=='X' && a[5][5]!='_'){return(5);}
if(a[5][6]=='_' && a[4][5]=='X' && a[3][4]=='X' && a[2][3]=='X' && a[6][6]!='_'){return(6);}
if(a[5][7]=='X' && a[4][6]=='X' && a[3][5]=='X' && a[2][4]=='_' && a[3][4]!='_'){return(4);}
if(a[5][7]=='X' && a[4][6]=='X' && a[3][5]=='_' && a[2][4]=='X' && a[4][5]!='_'){return(5);}
if(a[5][7]=='X' && a[4][6]=='_' && a[3][5]=='X' && a[2][4]=='X' && a[5][6]!='_'){return(6);}
if(a[5][7]=='_' && a[4][6]=='X' && a[3][5]=='X' && a[2][4]=='X' && a[6][7]!='_'){return(7);}
if(a[4][4]=='X' && a[3][3]=='X' && a[2][2]=='X' && a[1][1]=='_' && a[2][1]!='_'){return(1);}
if(a[4][4]=='X' && a[3][3]=='X' && a[2][2]=='_' && a[1][1]=='X' && a[3][2]!='_'){return(2);}
if(a[4][4]=='X' && a[3][3]=='_' && a[2][2]=='X' && a[1][1]=='X' && a[4][3]!='_'){return(3);}
if(a[4][4]=='_' && a[3][3]=='X' && a[2][2]=='X' && a[1][1]=='X' && a[5][4]!='_'){return(4);}
if(a[4][5]=='X' && a[3][4]=='X' && a[2][3]=='X' && a[1][2]=='_' && a[2][2]!='_'){return(2);}
if(a[4][5]=='X' && a[3][4]=='X' && a[2][3]=='_' && a[1][2]=='X' && a[3][3]!='_'){return(3);}
if(a[4][5]=='X' && a[3][4]=='_' && a[2][3]=='X' && a[1][2]=='X' && a[4][4]!='_'){return(4);}
if(a[4][5]=='_' && a[3][4]=='X' && a[2][3]=='X' && a[1][2]=='X' && a[5][5]!='_'){return(5);}
if(a[4][6]=='X' && a[3][5]=='X' && a[2][4]=='X' && a[1][3]=='_' && a[2][3]!='_'){return(3);}
if(a[4][6]=='X' && a[3][5]=='X' && a[2][4]=='_' && a[1][3]=='X' && a[3][4]!='_'){return(4);}
if(a[4][6]=='X' && a[3][5]=='_' && a[2][4]=='X' && a[1][3]=='X' && a[4][5]!='_'){return(5);}
if(a[4][6]=='_' && a[3][5]=='X' && a[2][4]=='X' && a[1][3]=='X' && a[5][6]!='_'){return(6);}
if(a[4][7]=='X' && a[3][6]=='X' && a[2][5]=='X' && a[1][4]=='_' && a[2][4]!='_'){return(4);}
if(a[4][7]=='X' && a[3][6]=='X' && a[2][5]=='_' && a[1][4]=='X' && a[3][5]!='_'){return(5);}
if(a[4][7]=='X' && a[3][6]=='_' && a[2][5]=='X' && a[1][4]=='X' && a[4][6]!='_'){return(6);}
if(a[4][7]=='_' && a[3][6]=='X' && a[2][5]=='X' && a[1][4]=='X' && a[5][7]!='_'){return(7);}
}
//Plays One of 3, 4 or 5.
{
int c=0;
int b=0;
int i;
for(i=6;i>=1;i--)
{
c=0;
b=0;
for(int j=3;j<=5;j++)
{
if(i==6) {if(a[i][j]=='_')c++;}
else {if(a[i][j]=='_' && a[i][j-1]!='_')b++;}
}
if(c>=2)break;
if(b==3)break;
}
if(b==3) return(4);
if(c>=2) {if(a[i][4]=='_')return (4);
else if(a[i][3]=='_')return (3);
else return(5);
}
}
for(int i=6;i>=1;i--)
{
for(int j=2;j<=5;j++)
{
if(i==6) {if( a[i][j-1]=='_' && a[i][j]=='X' && a[i][j+1]=='X' && a[i][j+2]=='_')return (j-1);}
else if(a[i-1][j-1]!='_' && a[i][j-1]=='_' && a[i][j]=='X' && a[i][j+1]=='X' && a[i][j+2]=='_' && a[i-1][j+2]!='_')return (j-1);
}
}
for(int i=6;i>=1;i--)
{
for(int j=2;j<=5;j++)
{
if(i==6) {if( a[i][j-1]=='_' && a[i][j]=='O' && a[i][j+1]=='O' && a[i][j+2]=='_')return (j-1);}
else if(a[i-1][j-1]!='_' && a[i][j-1]=='_' && a[i][j]=='O' && a[i][j+1]=='O' && a[i][j+2]=='_' && a[i-1][j+2]!='_')return (j-1);
}
}
for(int i=6;i>=1;i--)
{
for(int j=1;j<=7;j++)
{
if( a[i][j]=='O' && a[i][j+1]=='O' && a[i][j+2]=='_' && a[i-1][j+2]!='_')return (j+2);
else if(a[i][j-1]=='_'&& a[i-1][j-1]!='_')return(j-1);
if( a[i][j]=='O' && a[i-1][j-1]=='O' && a[i-2][j-2]=='_' && a[i-1][j-2]!='_')return (j-2);
else if(a[i+1][j+1]=='_'&& a[i+2][j+1]!='_')return(j+1);
}
}
return((((rand()%7)+13)*((rand()%7)+7))%7+1);
}
void connect4::menu()
{
int x;
do
{
system("CLS");
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl;
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl<<endl<<endl;
cout<<"\t"<<" "<<(char)219<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<endl;
cout<<"\t"<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<endl;
cout<<"\t"<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<endl;
cout<<"\t"<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<(char)219<<(char)219<<endl;
cout<<"\t"<<" "<<(char)219<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<(char)219<<(char)219<<(char)219<<" "<<(char)219<<" "<<(char)219<<" ver. 3.0"<<endl<<endl<<endl;
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl;
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl<<endl<<endl;
int g=1;
char a[6][7];
for(int i=1;i<=6;i++)
for(int j=1;j<=7;j++)
{
if(g==8){a[i][j]='4';g++;}
if(g==7){a[i][j]='T';g++;}
if(g==6){a[i][j]='C';g++;}
if(g==5){a[i][j]='E';g++;}
if(g==4){a[i][j]='N';g++;}
if(g==3){a[i][j]='N';g++;}
if(g==2){a[i][j]='O';g++;}
if(g==1){a[i][j]='C';g++;}
if(g>8)g=1;
}
cout<<" "<<(char)201;
for(int o=0;o<=38;o++)cout<<(char)205;
cout<<(char)187<<endl<<" "<<(char)186<<" "<<(char)186<<" \n"<<" "<<(char)186<<" "<<(char)186<<" \n";
for(int i=1;i<=6;i++)
{
for(int j=1;j<=7;j++)
{
if(j==1)cout<<" "<<(char)186<<" ";
cout<<a[i][j];
if(j<=6)cout<<" ";
if(j==7)cout<<" "<<(char)186<<" ";
}
if(i<=5)cout<<endl<<" "<<(char)186<<" "<<(char)186<<" \n "<<(char)186<<" "<<(char)186<<" \n "<<(char)186<<" "<<(char)186<<"\t\t";
if(i==1)cout<<"1:Start Game\n";
if(i==2)cout<<"2:Help\n";
if(i==3)cout<<"3:Options\n";
if(i==4)cout<<"4:Credits\n";
if(i==5)cout<<"5:Exit\n";
if(i==6) {
cout<<endl<<" "<<(char)186<<" "<<(char)186<<" \n "<<(char)186<<" "<<(char)186<<" \n "<<(char)200;
for(int o=0;o<=38;o++)cout<<(char)205;
cout<<(char)188<<endl;
}
}
cout<<endl<<endl;
for(int y=1;y<=16;y++)
cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl;
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl<<endl<<endl;
cout<<endl<<"USER INPUT: ";
char df='0';
cin>>df;
while(df<49 || df>53)
{
menu();
}
x=(int)df-48;
switch(x)
{
case 1:
{
system("CLS");
start();
break;
}
case 2:
{
system("CLS");
cout<<"\n\n\t\t\t\tHow To Play Connect 4\n\nNumber of players: 2\n\nObjective: To align four of your symbols horizontally,vertically or diagonally.\n\nPlayer 1: 'X'\tPlayer 2: 'O'.\n\nPlayer 1 plays first & from then on alternately both players take turns.\n\nThe gameboard is a 6x7 grid.\n\nPlayers enter the column number where they would like to place their symbol.\n\nThe symbol will take the place of the lowermost unoccupied space in the entered column number.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPress any key to continue..."<<endl<<endl;
getch();
break;
}
case 3:
{
int y;
fstream f;
system("CLS");
cout<<"\n\t\t\t\t\t1:Toggle Falling Animation: ";
if(toggle==1)cout<<"ON";
else cout<<"OFF";
cout<<"\n\n\t\t\t\t\t2:Change Difficulty\n\n\t\t\t\t\t3:View Saved File\n\n\t\t\t\t\t4:Delete Contents Of Saved File\n\n\t\t\t\t\t5:Main Menu\n\nUSER INPUT: ";
char lf='0';
cin>>lf;
while(lf>53 || lf<49)
{
cout<<"\nUSER INPUT: ";
cin>>lf;
}
y=(int)lf-48;
switch(y)
{
case 1:
{
system("CLS");
cout<<"\n\n\n\n\t\t\t\t\tANIMATION\n\n\t\t\t\t\t1:ON\t2:OFF\n\n\t\t\t\t\tUSER INPUT: ";
char lk='0';
cin>>lf;
while(lf>50 || lf<49)
{
cout<<"\nUSER INPUT: ";
cin>>lf;
}
toggle=(int)lf-48;
break;
}
case 2:
{
system("CLS");
cout<<"\n\n\n\n\t\t\t\t\tDIFIICULTY MODE\n\n\t\t\t\t\t1:Easy\t2:Normal\n\n\t\t\t\t\tUSER INPUT: ";
char lk='0';
cin>>lf;
while(lf>50 || lf<49)
{
cout<<"\nUSER INPUT: ";
cin>>lf;
}
difficulty=(int)lf-48;
cout<<"\n\n\n\n\nPress any key to continue...";
getch();
break;
}
case 3:
{
system("CLS");
char s[250];
f.open("connect4.txt",ios::in);
while(f.getline(s,250))
cout<<s<<endl;
cout<<endl<<endl;
f.close();
cout<<"\n\n\n\n\nPress any key to continue...";
getch();
break;
}
case 4:
{
int l;
cout<<"\n\n\n\n\n\t\t\t\t\tAre you sure you want to delete the saved file???\n\n\t\t\t\t\t1:Yes\t2:No\n\n\t\t\t\t\tUSER INPUT: ";
char lk='0';
cin>>lf;
while(lf>50 || lf<49)
{
cout<<"\nUSER INPUT: ";
cin>>lf;
}
l=(int)lf-48;
if(l==1)
{
f.open("connect4.txt",ios::out|ios::trunc);
f.close();
system("CLS");
cout<<"\n\t\t\t\tFILE CONTENTS DELETED\n\n\n";
cout<<"\n\n\n\n\nPress any key to continue...";
getch();
}
if(l==2)break;
}
default: break;
}
break;
}
case 4:
{
system("CLS");
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl;
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl<<endl;
cout<<endl<<"\n\n\t\t\t\tTHANK YOU FOR PLAYING Connect 4.\n\t\t\t\t\tGOD BLESS.\n\n\n\n\n\n\t\t\tCoded & Created By Vishal Snedan Robertson\n\n\t\t\t\tAnimations By Alan Pereira\n\n\t\t\t\t\tPeAcE OuT\n\n\n";
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl;
for(int y=1;y<=16;y++) cout<<(char)176<<(char)177<<(char)178<<(char)219<<(char)178<<(char)177;
cout<<endl<<endl;
cout<<"\n\n\n\n\nPress any key to continue...";
getch();
break;
}
}
}
while(x!=5);
}
void connect4::start()
{
system("CLS");
for(int i=1;i<=6;i++)
for(int j=1;j<=7;j++)
a[i][j]='_';
char l='0';
while(l<49 || l>51 )
{
cout<<"\n\n\n\n\n\n\n\n\t\t\t\t\t\nEnter Option"<<"\n\n\t\t\t\t\t1:PLAYER v/s COMPUTER\n\n\t\t\t\t\t2:PLAYER v/s PLAYER\n\n\t\t\t\t\t3:Main Menu\n\n\t\t\t\t\tUSER INPUT: ";
cin>>l;
}
players=(int)l-48;
if(players==3) menu();
if(players==1)strcpy(p2,"COMPUTER");
system("CLS");
cout<<"\n\n\n\n\n\n\n\t\t\t\t\tEnter Player Name(s)";
cout<<"\n\n\n\t\t\t\t\tPlayer 1: ";
cin>>p1;
int count =0;
while(p1[count]!='\0')
{
if(isalpha(p1[count])) if(islower(p1[count])) p1[count]=toupper(p1[count]);
count++;
}
if(players==2)
{
cout<<"\n\n\t\t\t\t\tPlayer 2: ";
cin>>p2;
count =0;
while(p2[count]!='\0')
{
if(isalpha(p2[count]))if(islower(p2[count])) p2[count]=toupper(p2[count]);
count++;
}
}
system("CLS");
game();
}
void connect4::display()
{
system("CLS");
cout<<"\n\n\t "<<(char)178<<(char)178<<(char)178<<(char)178<<"\t "<<(char)178<<(char)178<<(char)178<<" \t"<<(char)178<<" "<<(char)178<<"\t"<<(char)178<<" "<<(char)178<<"\t"<<(char)178<<(char)178<<(char)178<<(char)178<<(char)178<<"\t "<<(char)178<<(char)178<<(char)178<<(char)178<<"\t"<<(char)178<<(char)178<<(char)178<<(char)178<<(char)178<<"\t "<<(char)178;
cout<<"\n\t"<<(char)178<<" \t"<<(char)178<<" "<<(char)178<<" \t"<<(char)178<<(char)178<<" "<<(char)178<<"\t"<<(char)178<<(char)178<<" "<<(char)178<<"\t"<<(char)178<<"\t"<<(char)178<<" \t "<<(char)178<<"\t "<<(char)178<<(char)178;
cout<<"\n\t"<<(char)178<<" \t"<<(char)178<<" "<<(char)178<<" \t"<<(char)178<<" "<<(char)178<<" "<<(char)178<<"\t"<<(char)178<<" "<<(char)178<<" "<<(char)178<<"\t"<<(char)178<<(char)178<<(char)178<<" \t"<<(char)178<<" \t "<<(char)178<<"\t "<<(char)178<<" "<<(char)178;
cout<<"\n\t"<<(char)178<<" \t"<<(char)178<<" "<<(char)178<<" \t"<<(char)178<<" "<<(char)178<<(char)178<<"\t"<<(char)178<<" "<<(char)178<<(char)178<<"\t"<<(char)178<<" \t"<<(char)178<<" \t "<<(char)178<<"\t"<<(char)178<<(char)178<<(char)178<<(char)178<<(char)178;
cout<<"\n\t "<<(char)178<<(char)178<<(char)178<<(char)178<<"\t "<<(char)178<<(char)178<<(char)178<<" \t"<<(char)178<<" "<<(char)178<<"\t"<<(char)178<<" "<<(char)178<<"\t"<<(char)178<<(char)178<<(char)178<<(char)178<<(char)178<<"\t "<<(char)178<<(char)178<<(char)178<<(char)178<<"\t "<<(char)178<<"\t "<<(char)178<<endl<<endl<<endl;
cout<<endl<<endl<<"\t\t\t"<<p1<<": X\t\t"<<p2<<": O"<<endl<<endl;
cout<<endl<<" 1 2 3 4 5 6 7"<<endl<<endl;
cout<<" "<<(char)201;
for(int o=0;o<=38;o++)
cout<<(char)205;
cout<<(char)187<<endl<<" "<<(char)186<<" "<<(char)186<<" \n"<<" "<<(char)186<<" "<<(char)186<<" \n";
for(int i=1;i<=6;i++)
{
for(int j=1;j<=7;j++)
{
if(j==1)cout<<" "<<(char)186<<" ";
cout<<a[i][j];
if(j<=6)cout<<" ";
if(j==7)cout<<" "<<(char)186<<" ";
}
if(i<=5)cout<<endl<<" "<<(char)186<<" "<<(char)186<<" \n "<<(char)186<<" "<<(char)186<<" \n "<<(char)186<<" "<<(char)186<<" "<<endl;
if(i==6)
{
cout<<endl<<" "<<(char)186<<" "<<(char)186<<" \n "<<(char)186<<" "<<(char)186<<" \n "<<(char)200;
for(int o=0;o<=38;o++)
cout<<(char)205;
cout<<(char)188<<endl;
}
}
int total=0;
for(int i=1;i<=6;i++)
for(int j=1;j<=7;j++)
if(a[i][j]=='_')total++;
if(total!=42)cout<<"\n\nPrevious move: "<<column<<endl;
}
void connect4::move(int x,int y,char c)
{
int k=0,t,d=1;
while(d)
{
if(c=='X')
{
if(x==6){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='X';display();}
if(t%2!=0 && k==1){k++;a[2][y]='X';a[1][y]='_';display();}
if(t%2==0 && k==2){k++;a[3][y]='X';a[2][y]='_';display();}
if(t%2!=0 && k==3){k++;a[4][y]='X';a[3][y]='_';display();}
if(t%2==0 && k==4){k++;a[5][y]='X';a[4][y]='_';display();}
if(t%2!=0 && k==5){k++;a[6][y]='X';a[5][y]='_';display();}
if(k==6)d=0;
}
if(x==5){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='X';display();}
if(t%2!=0 && k==1){k++;a[2][y]='X';a[1][y]='_';display();}
if(t%2==0 && k==2){k++;a[3][y]='X';a[2][y]='_';display();}
if(t%2!=0 && k==3){k++;a[4][y]='X';a[3][y]='_';display();}
if(t%2==0 && k==4){k++;a[5][y]='X';a[4][y]='_';display();}
if(k==5)d=0;
}
if(x==4){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='X';display();}
if(t%2!=0 && k==1){k++;a[2][y]='X';a[1][y]='_';display();}
if(t%2==0 && k==2){k++;a[3][y]='X';a[2][y]='_';display();}
if(t%2!=0 && k==3){k++;a[4][y]='X';a[3][y]='_';display();}
if(k==4)d=0;
}
if(x==3){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='X';display();}
if(t%2!=0 && k==1){k++;a[2][y]='X';a[1][y]='_';display();}
if(t%2==0 && k==2){k++;a[3][y]='X';a[2][y]='_';display();}
if(k==3)d=0;
}
if(x==2){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='X';display();}
if(t%2!=0 && k==1){k++;a[2][y]='X';a[1][y]='_';display();}
if(k==2)d=0;
}
if(x==1) {
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='X';display();}
if(k==1)d=0;
}
}
if(c=='O')
{
if(x==6){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='O';display();}
if(t%2!=0 && k==1){k++;a[2][y]='O';a[1][y]='_';display();}
if(t%2==0 && k==2){k++;a[3][y]='O';a[2][y]='_';display();}
if(t%2!=0 && k==3){k++;a[4][y]='O';a[3][y]='_';display();}
if(t%2==0 && k==4){k++;a[5][y]='O';a[4][y]='_';display();}
if(t%2!=0 && k==5){k++;a[6][y]='O';a[5][y]='_';display();}
if(k==6)d=0;
}
if(x==5){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='O';display();}
if(t%2!=0 && k==1){k++;a[2][y]='O';a[1][y]='_';display();}
if(t%2==0 && k==2){k++;a[3][y]='O';a[2][y]='_';display();}
if(t%2!=0 && k==3){k++;a[4][y]='O';a[3][y]='_';display();}
if(t%2==0 && k==4){k++;a[5][y]='O';a[4][y]='_';display();}
if(k==5)d=0;
}
if(x==4){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='O';display();}
if(t%2!=0 && k==1){k++;a[2][y]='O';a[1][y]='_';display();}
if(t%2==0 && k==2){k++;a[3][y]='O';a[2][y]='_';display();}
if(t%2!=0 && k==3){k++;a[4][y]='O';a[3][y]='_';display();}
if(k==4)d=0;
}
if(x==3){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='O';display();}
if(t%2!=0 && k==1){k++;a[2][y]='O';a[1][y]='_';display();}
if(t%2==0 && k==2){k++;a[3][y]='O';a[2][y]='_';display();}
if(k==3)d=0;
}
if(x==2){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='O';display();}
if(t%2!=0 && k==1){k++;a[2][y]='O';a[1][y]='_';display();}
if(k==2)d=0;
}
if(x==1){
t=time(0);
if(t%2==0 && k==0){k++;a[1][y]='O';display();}
if(k==1)d=0;
}
}
}
if(c=='X') {
for(int p=1;p<x;p++)a[p][y]='_';
a[x][y]='X';
}
else {
for(int p=1;p<x;p++)a[p][y]='_';
a[x][y]='O';
}
}
void connect4::game()
{
int c,d;
display();
do
{
c=0;
for(int i=1;i<=6;i++)
for(int j=1;j<=7;j++)
if(a[i][j]=='X'||a[i][j]=='O')c++;
d=c%2;
cout<<"\nEnter the Column number ( 1 - 7 )";
if(d==0)
{
char l;
row=6;
do
{
cout<<endl<<p1<<" : ";
cin>>l;
}
while(l<49 || l>55);
column=(int)l-48;
Beep(1000,500);
while(a[row][column]=='X'||a[row][column]=='O')row--;
if(column==1||column==2||column==3||column==4||column==5||column==6||column==7)row=6;
while(a[row][column]=='X'||a[row][column]=='O')row--;
if(toggle==1)move(row,column,'X');
else a[row][column]='X';
c++;
}
else
{
row=6;
if((players==1)&&(difficulty==1))
{
cout<<endl<<p2<<" : ";
column=((rand()%7)+1);
Beep(750,500);
}
else if((players==1)&&(difficulty==2))
{
cout<<endl<<p2<<" : ";
column=computer();
Beep(750,500);
}
else if(players==2)
{
char l;
do
{
cout<<endl<<p2<<" : ";
cin>>l;
}
while(l<49 || l>55);
column=(int)l-48;
Beep(750,500);
}
while(a[row][column]=='X'||a[row][column]=='O')row--;
if(column==1||column==2||column==3||column==4||column==5||column==6||column==7)row=6;while(a[row][column]=='X'||a[row][column]=='O')row--;
if(toggle==1)move(row,column,'O');
else a[row][column]='O';
c++;