/
TTT_Interface.cs
107 lines (92 loc) · 2.75 KB
/
TTT_Interface.cs
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
using System;
namespace BoardGame
{
class Players
{
private int numPlayers;
public int player = 0;
public Players(int num) { numPlayers = num; }
public void TogglePlayer()
{
player = (player == (numPlayers - 1)) ? 0 : player + 1;
}
public void TogglePlayer(int temp) { player = temp; }
}
class TicTacToe : Board
{
Players p = new Players(2);
private int total = 0;
public int BoardSize() { return size; }
public bool InsertPlayer()
{
char c = '\0';
switch (p.player)
{
case 0: c = 'X'; break;
case 1: c = 'O'; break;
}
if (Insert(c, ValX(), ValY()) == true)
{
p.TogglePlayer();
return true;
}
else return false;
}
public char CurrentPlayer()
{
if (p.player == 0) return 'X';
else return 'O';
}
public void IncCounter() { total++; }
public bool IsFull(TicTacToe t)
{
return (total >= t.BoardSize() * t.BoardSize()) ? true : false;
}
public void Reset()
{
total = 0;
ResetBoard();
}
private char HoriWin(TicTacToe t)
{
for (int v = 0; v < t.BoardSize(); v++)
{
if (t.ValInBoard(v, 0) == t.ValInBoard(v, 1) && t.ValInBoard(v, 1) == t.ValInBoard(v, 2))
{
return t.ValInBoard(v, 0);
}
}
return '\0';
}
private char VertWin(TicTacToe t)
{
for (int h = 0; h < t.BoardSize(); h++)
{
if (t.ValInBoard(0, h) == t.ValInBoard(1, h) && t.ValInBoard(1, h) == t.ValInBoard(2, h))
{
return t.ValInBoard(0, h);
}
}
return '\0';
}
private char DiagWin(TicTacToe t)
{
char c = t.ValInBoard(0, 0);
if (c == t.ValInBoard(1, 1) && c == t.ValInBoard(2, 2)) return c;
else
{
c = t.ValInBoard(0, 2);
if (c == t.ValInBoard(1, 1) && c == t.ValInBoard(2, 0)) return c;
}
return '\0';
}
public char IsWinner(TicTacToe t)
{
char c = HoriWin(t);
if (c != '\0') return c;
else if ((c = VertWin(t)) != '\0') return c;
else if ((c = DiagWin(t)) != '\0') return c;
else return '\0';
}
}
}