pushing work done till now
Dev Ghai

Dev Ghai commited on 2013-09-23 08:22:07
Showing 8 changed files, with 227 additions and 0 deletions.

... ...
@@ -0,0 +1,6 @@
1
+[Dolphin]
2
+Timestamp=2013,4,15,0,59,48
3
+Version=3
4
+
5
+[Settings]
6
+HiddenFilesShown=true
... ...
@@ -0,0 +1,6 @@
1
+git-daemon-export-ok
2
+*.swp
3
+*.user*
4
+*Release*
5
+*Debug*
6
+.o
0 7
\ No newline at end of file
... ...
@@ -0,0 +1,28 @@
1
+#-------------------------------------------------
2
+#
3
+# Project created by QtCreator 2013-04-14T23:25:39
4
+#
5
+#-------------------------------------------------
6
+
7
+QT       += core
8
+
9
+QT       -= gui
10
+
11
+TARGET = Boggle
12
+CONFIG   += console
13
+CONFIG   -= app_bundle
14
+
15
+TEMPLATE = app
16
+
17
+
18
+SOURCES += main.cpp \
19
+    logic/impl/Board.cpp
20
+
21
+HEADERS += \
22
+    logic/headers/Tile.h \
23
+    logic/headers/Board.h
24
+
25
+FORMS +=
26
+
27
+OTHER_FILES += \
28
+    ui/forms/Boggle.qml
... ...
@@ -0,0 +1,47 @@
1
+//Comments on readability, niceness of the solution, efficiency if possible.
2
+#ifndef BOARD_H
3
+#define BOARD_H
4
+
5
+#include <QObject>
6
+#include <QList>
7
+#include "Tile.h"
8
+
9
+class Board : public QObject
10
+{
11
+    //QVector http://qt-project.org/doc/qt-4.8/qvector.html
12
+    //QList http://qt-project.org/doc/qt-4.8/qlist.html
13
+    Q_OBJECT
14
+private:
15
+    QList<Tile> _tiles;
16
+
17
+    int _sideLength;
18
+
19
+
20
+
21
+public:
22
+    QList<Tile> getTiles()
23
+    {
24
+        return _tiles;
25
+    }
26
+
27
+    int getSideLength()
28
+    {
29
+        return _sideLength;
30
+    }
31
+
32
+    explicit Board(QObject *parent = 0);
33
+    explicit Board(int sideLength, QString letters);
34
+
35
+    //Copy constructor. Might not need a copy constructor as we may not be going multithreaded to preserve operating memory.
36
+    Board(const Board& originalBoard);
37
+
38
+    /**
39
+     * TODO: Convert to properties
40
+     */
41
+
42
+    Tile* getTileAt(int x, int y);
43
+
44
+    void Print();
45
+};
46
+
47
+#endif // BOARD_H
... ...
@@ -0,0 +1,74 @@
1
+#ifndef TILE_H
2
+#define TILE_H
3
+
4
+#include <QString>
5
+
6
+class Tile
7
+{
8
+
9
+    private:
10
+        /// <summary>
11
+        /// X co-ordinate of the tile in the board array.
12
+        /// This is a read only property.
13
+        /// </summary>
14
+        int _x;
15
+
16
+        /// <summary>
17
+        /// Y co-ordinate of the tile in the board array.
18
+        /// This is a read only property.
19
+        /// </summary>
20
+        int _y;
21
+
22
+        /// <summary>
23
+        /// The alphabet contained in the tile. It can be any valid letter or 'QU'.
24
+        /// This is a read only property.
25
+        /// </summary>
26
+        QString _alphabet;
27
+
28
+        bool _hasBeenVisited;
29
+
30
+    public:
31
+        int getX()
32
+        {
33
+            return _x;
34
+        }
35
+
36
+
37
+        int getY()
38
+        {
39
+            return _y;
40
+        }
41
+
42
+
43
+        QString getAlphabet()
44
+        {
45
+            return _alphabet;
46
+        }
47
+
48
+        void setVisited(bool hasBeenVisited)
49
+        {
50
+            this->_hasBeenVisited = hasBeenVisited;
51
+        }
52
+
53
+        bool isVisited()
54
+        {
55
+            return this->_hasBeenVisited;
56
+        }
57
+
58
+        Tile(int x, int y, QString alphabet)
59
+        {
60
+            this->_x = x;
61
+            this->_y = y;
62
+            this->_alphabet = alphabet;
63
+            this->_hasBeenVisited = false;
64
+        }
65
+
66
+        Tile(const Tile& tileToBeCopied)
67
+        {
68
+            this->_x = tileToBeCopied._x;
69
+            this->_y = tileToBeCopied._y;
70
+            this->_alphabet = tileToBeCopied._alphabet;
71
+            this->_hasBeenVisited = tileToBeCopied._hasBeenVisited;
72
+        }
73
+};
74
+#endif // TILE_H
... ...
@@ -0,0 +1,37 @@
1
+#include "logic/headers/Board.h"
2
+#include <QStringBuilder>
3
+#include <iostream>
4
+
5
+//Constructor
6
+Board::Board(int sideLength, QString letters)
7
+{
8
+    this->_sideLength = sideLength;
9
+
10
+}
11
+
12
+Tile* Board::getTileAt(int x, int y)
13
+{
14
+    return new Tile(0,0, "a");
15
+}
16
+
17
+void Board::Print()
18
+{
19
+    int horizontalLength = this->_sideLength * 4 + 1;
20
+    QString lineToPrint(horizontalLength);
21
+    QString horizontalSeparator(horizontalLength);
22
+
23
+    horizontalSeparator.fill('=', horizontalLength);
24
+
25
+    for (int i= 0; i < this->_sideLength; i++)
26
+    {
27
+        std::cout<<horizontalSeparator.toStdString()<<std::endl;
28
+        lineToPrint.clear();
29
+        lineToPrint.append("\u2551");
30
+        for(int j = 0; j < this->_sideLength; j++)
31
+        {
32
+            lineToPrint.append(this->getTileAt(j,i)->getAlphabet() % "\u2551");
33
+        }
34
+        std::cout<<lineToPrint.toStdString()<<std::endl;
35
+    }
36
+    std::cout<<horizontalSeparator.toStdString();
37
+}
... ...
@@ -0,0 +1,19 @@
1
+//Coding style guide: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
2
+
3
+#include <QCoreApplication>
4
+#include <iostream>
5
+
6
+#include "logic/headers/Board.h"
7
+
8
+int main(int argc, char *argv[])
9
+{
10
+//    QCoreApplication a(argc, argv);
11
+    char* keypress = new char[10];
12
+    std::cout<<"\u2250";
13
+    std::cin>>keypress;
14
+
15
+    Board* b = new Board(4, "abcdef");
16
+    b->Print();
17
+//    return a.exec();
18
+}
19
+
... ...
@@ -0,0 +1,10 @@
1
+import QtQuick 2.0
2
+
3
+Rectangle {
4
+    id: mainContainer
5
+    TextInput {
6
+        id: txtBoardString
7
+        height: 80
8
+        width: 200
9
+    }
10
+}
0 11