-
Notifications
You must be signed in to change notification settings - Fork 1
/
Base_v5
105 lines (93 loc) · 2.59 KB
/
Base_v5
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
% Connect 4 Project Notre Dame Spring 2019
% Brian Donahoe, North Masciopinto, Fred Fisher, Kelso Lumantas, Jason Bourne
% EG 10112 Final Project
% Prof. McWilliams
% Updated: 4/10/2019
clc
clear
% Sets both players to wins of 0
p1WinCount = 0;
p2WinCount = 0;
for(i=1:7)
aggregateMoves(1:21,i)=i;
end
ifWon=0;
numSims=1000;
for(iSims=1:numSims)
while ~ifWon
[gameMoves, ifWon]=connect4F(aggregateMoves, iSims);
end
aggregateMoves=[aggregateMoves gameMoves];
end
% Sets up introduction to game in command window
disp(' ')
disp('Great! Here we go!!')
disp('At any time press CTRL and C to end game.')
disp(' ')
disp('LET THE GAME BEGIN!')
disp(' ')
% Displays array as the game board
field = zeros(6,7);
disp(field)
player = 1;
for i = 1:42
% 'i' goes to 42 because that is the max number of plays to fill the board
pick = 0;
while true
if(player==1)
pause(.25);
pick = input('Player ONE: Pick a column number (1-7): ');
% Asks first player to give a column they want to play into
else
pause(.25);
pick = input('Player TWO: Pick a column number (1-7): ');
% Asks second player to give a column they want to play into
end
% check if valid input
while pick > 7 || pick < 1
% Displays statement if input column is not on gameboard
disp(' ')
disp('Input must be 1, 2, 3, 4, 5, 6 or 7.')
if(player==1)
pick = input('Player ONE: Pick a column number (1-7): ');
else
pick = input('Player TWO: Pick a column number (1-7): ');
% Asks for input again if column not within gameboard
end
end
% check if player can actually play here
row=canPlayHere(pick, field);
if(row==-1)
disp('Cannot play here, choose a different column.');
else
field(row, pick)=player;
break;
end
end
% display board
clc
disp(' ')
disp(' ')
disp(field)
% check if game is over
if(gameWon(field, player))
disp(['Player ' num2str(player) ' wins!']);
% Adds 1 to a players win count if they win
if player == 1
p1WinCount = p1WinCount + 1;
elseif player == 2
p2WinCount = p2WinCount + 1;
end
break;
end
% switch players
if(player==1)
player=2;
else
player=1;
end
end
% check if draw
if(~gameWon(field, player))
disp('The game has ended as a draw!');
end