From 12f885b28b9740349dcee6a7c57d7b774017fd05 Mon Sep 17 00:00:00 2001
From: daniel-Jones <daniel@danieljon.es>
Date: Sun, 2 Sep 2018 11:47:15 +0930
Subject: initial cell flag system setup

---
 cell.cpp          | 23 +++++++++++++++++++++++
 cell.h            | 11 +++++++++++
 qtminesweeper.cpp |  3 ++-
 selector.h        |  1 -
 square.cpp        |  8 ++++++++
 square.h          |  7 ++++---
 6 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/cell.cpp b/cell.cpp
index d99789b..e4035ba 100644
--- a/cell.cpp
+++ b/cell.cpp
@@ -15,4 +15,27 @@
  */
 
 #include "cell.h"
+#include <stdio.h>
 
+cell::cell(int flag)
+{
+	setflags(flag);
+}
+
+void cell::setflags(int flag)
+{
+	flags = (enum flagtype)flag;
+}
+
+void cell::flagcheck()
+{
+	puts("cell flags:");
+	if (flags & MINE)
+		puts("mine");
+	if (flags & REVEALED)
+		puts("revealed");
+	if (flags & FLAG)
+		puts("flag");
+	if (flags & NUMBER)
+		puts("number");
+}
diff --git a/cell.h b/cell.h
index a53ee8b..f3d4d75 100644
--- a/cell.h
+++ b/cell.h
@@ -23,10 +23,21 @@ class cell : public square
 {
 
 	public:
+		explicit cell(int flag);
+		enum flagtype
+		{
+			REVEALED = 1 << 0,	/* square is revealed */
+			FLAG = 1 << 1,		/* square is a selected flag */
+			MINE = 1 << 2,		/* square is a mine */
+			NUMBER = 1 << 3		/* square is a number */
+		};
+		void flagcheck();
 
 	private:
+		void setflags(int flag);
 
 	protected:
+		enum flagtype flags;
 };
 
 #endif
diff --git a/qtminesweeper.cpp b/qtminesweeper.cpp
index 6fd583a..6fc5f2e 100644
--- a/qtminesweeper.cpp
+++ b/qtminesweeper.cpp
@@ -20,7 +20,8 @@
 
 qtminesweeper::qtminesweeper()
 {
-
+	cell cell1(cell::MINE | cell::REVEALED);
+	cell1.flagcheck();
 }
 
 void qtminesweeper::paintEvent(QPaintEvent *event)
diff --git a/selector.h b/selector.h
index c86b651..78f75c0 100644
--- a/selector.h
+++ b/selector.h
@@ -23,7 +23,6 @@ class cur : public square
 {
 
 	public:
-		int test = 1;
 
 	private:
 
diff --git a/square.cpp b/square.cpp
index 23e2e86..be0b32c 100644
--- a/square.cpp
+++ b/square.cpp
@@ -60,7 +60,15 @@ int square::getgridy()
 	return gridy;
 }
 
+void square::movetorealpos(int x, int y)
+{
+	setrealx(x);
+	setrealy(y);
+}
+
 void square::movetogridpos(int x, int y)
 {
+	setgridx(x);
+	setgridy(y);
 
 }
diff --git a/square.h b/square.h
index 14377c1..fd37b58 100644
--- a/square.h
+++ b/square.h
@@ -24,8 +24,6 @@ class square
 		explicit square(); /* init function */
 
 	private:
-
-	protected:
 		/*
 		 * real* indicates the pixel position
 		 * grid* indicates grid position
@@ -42,13 +40,16 @@ class square
 		void setgridx(int x);
 		void setgridy(int y);
 
+		void movetorealpos(int x, int y);
+
 		int getrealx();
 		int getrealy();
 
+	protected:
 		int getgridx();
 		int getgridy();
 
-		void movetogridpos(int x, int y)
+		void movetogridpos(int x, int y);
 };
 
 #endif
-- 
cgit v1.2.3