Skip to content

Commit 498aa6d

Browse files
committed
la til controller.ts
1 parent b4d0c5f commit 498aa6d

File tree

7 files changed

+111
-47
lines changed

7 files changed

+111
-47
lines changed

MergeSort/MergeSort.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<script src="js/jquery.min.js"></script>
1111
<script src="js/jquery-ui-1.12.0/jquery-ui.min.js"></script>
1212
<script src="js/bootstrap.min.js"></script>
13-
13+
<script src="js/Controller.js"></script>
1414
<script src="js/Methods.js"></script>
1515
<script src="js/View.js"></script>
1616
<script src="js/MergeSortAlgorithm.js"></script>

MergeSort/js/Controller.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* File created by Kenneth Apeland 04.04.18.
3+
*/
4+
///<reference path="View.ts"/>
5+
var controller = /** @class */ (function () {
6+
function controller() {
7+
}
8+
controller.prototype.lowerElements = function (elems) {
9+
viewer.lowerElements(elems);
10+
};
11+
controller.prototype.setPivotElement = function (index) {
12+
viewer.setPivotElement(index);
13+
};
14+
controller.prototype.deselectPivotElement = function (index) {
15+
viewer.deselectPivotElement(index);
16+
};
17+
controller.prototype.moveElementToPlace = function (element, px, back) {
18+
viewer.moveElementToPlace(element, px, back);
19+
};
20+
controller.prototype.setColorInArrayElement = function (index, color, colorOn) {
21+
viewer.setColorInArrayElement(index, color, colorOn);
22+
};
23+
controller.prototype.setColorInArrayElements = function (index, color, colorOn) {
24+
viewer.setColorInArrayElements(index, color, colorOn);
25+
};
26+
controller.prototype.setPause = function () {
27+
viewer.setPause();
28+
};
29+
return controller;
30+
}());
31+
var control = new controller();

MergeSort/js/Controller.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* File created by Kenneth Apeland 04.04.18.
3+
*/
4+
///<reference path="View.ts"/>
5+
6+
class controller {
7+
8+
lowerElements(elems: number[]) {
9+
viewer.lowerElements(elems);
10+
}
11+
12+
setPivotElement(index: number) {
13+
viewer.setPivotElement(index);
14+
}
15+
16+
deselectPivotElement(index: number) {
17+
viewer.deselectPivotElement(index);
18+
}
19+
20+
moveElementToPlace(element: number, px: number, back: number) {
21+
viewer.moveElementToPlace(element, px, back);
22+
}
23+
24+
setColorInArrayElement(index: number, color: number, colorOn: boolean) {
25+
viewer.setColorInArrayElement(index, color, colorOn);
26+
}
27+
28+
setColorInArrayElements(index: number[], color: number, colorOn: boolean) {
29+
viewer.setColorInArrayElements(index, color, colorOn);
30+
}
31+
32+
setPause() {
33+
viewer.setPause();
34+
}
35+
}
36+
37+
var control: controller = new controller();

MergeSort/js/MergeSortAlgorithm.js

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@
33
* File designed and written by Kenneth Apeland
44
*/
55
///<reference path="EventManager.ts"/>
6-
///<reference path="View.ts"/>
6+
// /<reference path="View.ts"/>
77
///<reference path="InitArray.ts"/>
88
var n = 10;
99
var sortArray = [];
1010
var copyArray = [];
1111
var running = true;
1212
function checkIfAlreadyRunning() {
1313
manager.clear();
14-
viewer.setPause();
14+
control.setPause();
1515
}
1616
function startMergeSort() {
1717
checkIfAlreadyRunning();
1818
copyArray = returnArray();
1919
mergesort(copyArray);
20-
viewer.setColorInArrayElements(copyArray, 3, true);
20+
control.setColorInArrayElements(copyArray, 3, true);
2121
}
2222
function mergesort(array) {
2323
if (array.length < 2) {
2424
//denne er ekkel
25-
viewer.deselectPivotElement(array[0]);
25+
control.deselectPivotElement(array[0]);
2626
return array;
2727
}
2828
else {
@@ -33,12 +33,12 @@ function mergesort(array) {
3333
left = array.slice(0, mid);
3434
right = array.slice(mid);
3535
//denne og er ekkel
36-
viewer.setPivotElement(right[0]);
37-
viewer.setColorInArrayElements(left, 1, true);
38-
viewer.setColorInArrayElements(right, 2, true);
39-
viewer.lowerElements(left);
40-
viewer.lowerElements(right);
41-
viewer.setColorInArrayElements(array, 1, false);
36+
control.setPivotElement(right[0]);
37+
control.setColorInArrayElements(left, 1, true);
38+
control.setColorInArrayElements(right, 2, true);
39+
control.lowerElements(left);
40+
control.lowerElements(right);
41+
control.setColorInArrayElements(array, 1, false);
4242
//Split until there is only 1 element left
4343
return merge(mergesort(left), mergesort(right));
4444
}
@@ -51,19 +51,19 @@ function merge(left, right) {
5151
var counter = copyArray.indexOf(left[0]);
5252
while (tempLeftIndex < left.length && tempRightIndex < right.length) {
5353
//Compare the elements from each array
54-
viewer.setColorInArrayElement(left[tempLeftIndex], 0, true);
55-
viewer.setColorInArrayElement(right[tempRightIndex], 0, true);
54+
control.setColorInArrayElement(left[tempLeftIndex], 0, true);
55+
control.setColorInArrayElement(right[tempRightIndex], 0, true);
5656
if (left[tempLeftIndex] < right[tempRightIndex]) {
57-
viewer.setColorInArrayElement(left[tempLeftIndex], 3, true);
58-
viewer.moveElementToPlace(left[tempLeftIndex], counter, copyArray.indexOf(left[tempLeftIndex]));
57+
control.setColorInArrayElement(left[tempLeftIndex], 3, true);
58+
control.moveElementToPlace(left[tempLeftIndex], counter, copyArray.indexOf(left[tempLeftIndex]));
5959
result.push(left[tempLeftIndex]);
6060
testing[counter] = left[tempLeftIndex];
6161
counter++;
6262
tempLeftIndex++;
6363
}
6464
else {
65-
viewer.setColorInArrayElement(right[tempRightIndex], 3, true);
66-
viewer.moveElementToPlace(right[tempRightIndex], counter, copyArray.indexOf(right[tempRightIndex]));
65+
control.setColorInArrayElement(right[tempRightIndex], 3, true);
66+
control.moveElementToPlace(right[tempRightIndex], counter, copyArray.indexOf(right[tempRightIndex]));
6767
result.push(right[tempRightIndex]);
6868
testing[counter] = right[tempRightIndex];
6969
counter++;
@@ -72,25 +72,24 @@ function merge(left, right) {
7272
}
7373
if (right.slice(tempRightIndex).length > 0) {
7474
var moreRight = right.slice(tempRightIndex);
75-
viewer.setColorInArrayElements(moreRight, 3, true);
75+
control.setColorInArrayElements(moreRight, 3, true);
7676
for (var i = 0; i < moreRight.length; i++) {
77-
viewer.moveElementToPlace(moreRight[i], counter, copyArray.indexOf(moreRight[i]));
77+
control.moveElementToPlace(moreRight[i], counter, copyArray.indexOf(moreRight[i]));
7878
testing[counter] = moreRight[i];
7979
counter++;
8080
}
8181
}
8282
if (left.slice(tempLeftIndex).length > 0) {
8383
var moreLeft = left.slice(tempLeftIndex);
84-
viewer.setColorInArrayElements(moreLeft, 3, true);
84+
control.setColorInArrayElements(moreLeft, 3, true);
8585
for (var i = 0; i < moreLeft.length; i++) {
86-
viewer.moveElementToPlace(moreLeft[i], counter, copyArray.indexOf(moreLeft[i]));
86+
control.moveElementToPlace(moreLeft[i], counter, copyArray.indexOf(moreLeft[i]));
8787
testing[counter] = moreLeft[i];
8888
counter++;
8989
}
9090
}
91-
if (!isSorted(testing))
92-
viewer.setColorInArrayElements(testing, 3, false);
9391
copyArray = testing.slice(0);
92+
control.setColorInArrayElements(testing, 3, false);
9493
return result.concat(left.slice(tempLeftIndex)).concat(right.slice(tempRightIndex));
9594
}
9695
function setRandomMyArray() {

MergeSort/js/MergeSortAlgorithm.ts

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55

66
///<reference path="EventManager.ts"/>
7-
///<reference path="View.ts"/>
7+
// /<reference path="View.ts"/>
88
///<reference path="InitArray.ts"/>
99
let n: number = 10;
1010

@@ -14,20 +14,21 @@ let running = true;
1414

1515
function checkIfAlreadyRunning() {
1616
manager.clear();
17-
viewer.setPause();
17+
control.setPause();
1818
}
1919

2020
function startMergeSort() {
2121
checkIfAlreadyRunning();
2222

2323
copyArray = returnArray();
2424
mergesort(copyArray);
25+
control.setColorInArrayElements(copyArray, 3, true);
2526
}
2627

2728
function mergesort(array: number[]):any {
2829
if (array.length < 2) {
2930
//denne er ekkel
30-
viewer.deselectPivotElement(array[0]);
31+
control.deselectPivotElement(array[0]);
3132
return array;
3233

3334
} else {
@@ -41,15 +42,15 @@ function mergesort(array: number[]):any {
4142
right = array.slice(mid);
4243

4344
//denne og er ekkel
44-
viewer.setPivotElement(right[0]);
45+
control.setPivotElement(right[0]);
4546

46-
viewer.setColorInArrayElements(left, 1, true);
47-
viewer.setColorInArrayElements(right, 2, true);
47+
control.setColorInArrayElements(left, 1, true);
48+
control.setColorInArrayElements(right, 2, true);
4849

49-
viewer.lowerElements(left);
50-
viewer.lowerElements(right);
50+
control.lowerElements(left);
51+
control.lowerElements(right);
5152

52-
viewer.setColorInArrayElements(array, 1, false);
53+
control.setColorInArrayElements(array, 1, false);
5354

5455
//Split until there is only 1 element left
5556
return merge(mergesort(left), mergesort(right));
@@ -66,12 +67,12 @@ function merge(left: number[], right: number[]) {
6667

6768
while (tempLeftIndex < left.length && tempRightIndex < right.length) {
6869
//Compare the elements from each array
69-
viewer.setColorInArrayElement(left[tempLeftIndex], 0, true);
70-
viewer.setColorInArrayElement(right[tempRightIndex], 0, true);
70+
control.setColorInArrayElement(left[tempLeftIndex], 0, true);
71+
control.setColorInArrayElement(right[tempRightIndex], 0, true);
7172

7273
if (left[tempLeftIndex] < right[tempRightIndex]) {
73-
viewer.setColorInArrayElement(left[tempLeftIndex], 3, true);
74-
viewer.moveElementToPlace(left[tempLeftIndex], counter, copyArray.indexOf(left[tempLeftIndex]));
74+
control.setColorInArrayElement(left[tempLeftIndex], 3, true);
75+
control.moveElementToPlace(left[tempLeftIndex], counter, copyArray.indexOf(left[tempLeftIndex]));
7576

7677
result.push(left[tempLeftIndex]);
7778
testing[counter] = left[tempLeftIndex];
@@ -80,8 +81,8 @@ function merge(left: number[], right: number[]) {
8081
tempLeftIndex++;
8182

8283
} else {
83-
viewer.setColorInArrayElement(right[tempRightIndex], 3, true);
84-
viewer.moveElementToPlace(right[tempRightIndex], counter, copyArray.indexOf(right[tempRightIndex]));
84+
control.setColorInArrayElement(right[tempRightIndex], 3, true);
85+
control.moveElementToPlace(right[tempRightIndex], counter, copyArray.indexOf(right[tempRightIndex]));
8586

8687
result.push(right[tempRightIndex]);
8788
testing[counter] = right[tempRightIndex];
@@ -93,28 +94,26 @@ function merge(left: number[], right: number[]) {
9394

9495
if (right.slice(tempRightIndex).length > 0) {
9596
let moreRight = right.slice(tempRightIndex);
96-
viewer.setColorInArrayElements(moreRight, 3, true);
97+
control.setColorInArrayElements(moreRight, 3, true);
9798
for (let i = 0; i < moreRight.length; i++) {
98-
viewer.moveElementToPlace(moreRight[i], counter, copyArray.indexOf(moreRight[i]));
99+
control.moveElementToPlace(moreRight[i], counter, copyArray.indexOf(moreRight[i]));
99100

100101
testing[counter] = moreRight[i];
101102
counter++;
102103
}
103104
}
104105
if (left.slice(tempLeftIndex).length > 0) {
105106
let moreLeft = left.slice(tempLeftIndex);
106-
viewer.setColorInArrayElements(moreLeft, 3, true);
107+
control.setColorInArrayElements(moreLeft, 3, true);
107108
for (let i = 0; i < moreLeft.length; i++) {
108-
viewer.moveElementToPlace(moreLeft[i], counter, copyArray.indexOf(moreLeft[i]));
109+
control.moveElementToPlace(moreLeft[i], counter, copyArray.indexOf(moreLeft[i]));
109110

110111
testing[counter] = moreLeft[i];
111112
counter++;
112113
}
113114
}
114-
if (!isSorted(testing))
115-
viewer.setColorInArrayElements(testing, 3, false);
116-
117115
copyArray = testing.slice(0);
116+
control.setColorInArrayElements(testing, 3, false);
118117
return result.concat(left.slice(tempLeftIndex)).concat(right.slice(tempRightIndex));
119118
}
120119

MergeSort/js/Methods.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ function liftElements(elements) {
2121
}
2222
}
2323
function selectPivotElement(index) {
24-
console.log(index);
2524
$("#insElemNr" + index).addClass("middle");
2625
}
2726
function setColor(index, color, colorOn) {

MergeSort/js/Methods.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ function liftElements(elements: number[]) {
2626
}
2727

2828
function selectPivotElement(index: number) {
29-
console.log(index);
3029
$("#insElemNr" + index).addClass("middle");
3130
}
3231

0 commit comments

Comments
 (0)