-
Notifications
You must be signed in to change notification settings - Fork 0
/
cella.cpp
63 lines (54 loc) · 1.1 KB
/
cella.cpp
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
#include "cella.h"
#include "candidati.h"
Cella::Cella()
:Candidati(), m_value(0), m_settato(false) {}
Cella::Cella(int valore)
:Candidati(valore), m_value(valore), m_settato(true)
{
possibile_n(valore);
}
Cella::Cella(const Cella &old)
:Candidati(old), m_value(old.m_value), m_settato(old.m_settato)
{}
void Cella::value(int valore)
{
m_value = valore;
m_settato = true;
possibile_n(valore);
}
bool Cella::controlla()
{
if (!m_settato)
{
int n;
if (determinato(n))
{
value(n);
m_settato = true;
return true;
}
}
return false;
}
void Cella::azzera()
{
m_value = 0;
m_settato = 0;
tutti_possibili();
}
bool Cella::operator==(const Cella& altro) const
{
return (m_settato == altro.m_settato and m_value == altro.m_value and Candidati::operator==(altro));
}
bool Cella::operator!=(const Cella& altro) const
{
return !(*this == altro);
}
Cella& Cella::operator=(const Cella& altro)
{
if (this==&altro) return *this;
Candidati::operator=(altro);
m_settato = altro.m_settato;
m_value = altro.m_value;
return *this;
}