Skip to content

Commit adcbd83

Browse files
committed
fjernet mye død kode og refaktorerte navn på filene
1 parent 651d663 commit adcbd83

16 files changed

+376
-968
lines changed

MergeSort/MergeSort.html

Lines changed: 57 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,73 @@
11
<!DOCTYPE html>
22
<html>
3-
<head>
4-
<title>MergeSort</title>
5-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6-
<!-- Bootstrap -->
7-
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
8-
<link href="css/style.css" rel="stylesheet">
3+
<head>
4+
<title>MergeSort</title>
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<!-- Bootstrap -->
7+
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
8+
<link href="css/style.css" rel="stylesheet">
99

10-
<!-- Insert this line above script imports -->
11-
<script>if (typeof module === 'object') {
12-
window.module = module; module = undefined;
13-
}</script>
10+
<!-- Insert this line above script imports -->
11+
<script>if (typeof module === 'object') {
12+
window.module = module;
13+
module = undefined;
14+
}</script>
1415

15-
<script src="js/jquery.min.js"></script>
16-
<script src="js/jquery-ui-1.12.0/jquery-ui.min.js"></script>
17-
<script src="js/bootstrap.min.js"></script>
16+
<script src="js/jquery.min.js"></script>
17+
<script src="js/jquery-ui-1.12.0/jquery-ui.min.js"></script>
18+
<script src="js/bootstrap.min.js"></script>
1819

19-
<script src="js/methods.js"></script>
20-
<script src="js/arrowMethods.js"></script>
21-
<script src="js/view.js"></script>
22-
<script src="js/MergeSortAlgorithm.js"></script>
23-
<script src="js/eventManager.js"></script>
24-
<script src="js/initArray.js"></script>
20+
<script src="js/Methods.js"></script>
21+
<script src="js/View.js"></script>
22+
<script src="js/MergeSortAlgorithm.js"></script>
23+
<script src="js/EventManager.js"></script>
24+
<script src="js/InitArray.js"></script>
2525

26-
<!-- For debugging -->
27-
<!-- <script type='text/js' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script> -->
26+
<!-- For debugging -->
27+
<!-- <script type='text/js' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script> -->
2828

29-
<!-- Insert this line after script imports -->
30-
<script>if (window.module) module = window.module;</script>;
31-
</head>
29+
<!-- Insert this line after script imports -->
30+
<script>if (window.module) module = window.module;</script>
31+
;
32+
</head>
3233

3334

34-
<body>
35-
<div class="container text-center">
36-
<img id="paused" class="pauseIcon" src="assets/pause.png"/>
37-
<h1 id="header">MergeSort</h1>
38-
<div id="array" class="row insertionSort">
39-
<div id="indices"></div>
40-
<ul id='arrayUl' class='insElements'>
41-
<img id="leftBracket" class="bracket" src="assets/square_left.png"/>
42-
<img id="rightBracket" class="bracket" src="assets/square_right.png"/>
43-
<div id="leftArrow" class="arrow hidden"><img src="assets/up_arrow.png"/><div class="arrowText"></div></div>
44-
</ul>
35+
<body>
36+
<div class="container text-center">
37+
<img id="paused" class="pauseIcon" src="assets/pause.png"/>
38+
<h1 id="header">MergeSort</h1>
39+
<div id="array" class="row insertionSort">
40+
<div id="indices"></div>
41+
<ul id='arrayUl' class='insElements'>
42+
<img id="leftBracket" class="bracket" src="assets/square_left.png"/>
43+
<img id="rightBracket" class="bracket" src="assets/square_right.png"/>
44+
<div id="leftArrow" class="arrow hidden"><img src="assets/up_arrow.png"/>
45+
<div class="arrowText"></div>
4546
</div>
47+
</ul>
48+
</div>
4649

47-
<br>
48-
<div class="row underArray">
49-
<button id="togglePause" class="btn btn-primary" onclick="viewer.pause()">Play/Pause</button>
50-
<button id="backward" class="btn btn-primary" onclick="viewer.backward()">Backward</button>
51-
<button id="forward" class="btn btn-primary" onclick="viewer.forward()">Forward</button>
52-
<!-- TODO: speed buttons -->
53-
</div>
54-
<br>
50+
<br>
51+
<div class="row underArray">
52+
<button id="togglePause" class="btn btn-primary" onclick="viewer.pause()">Play/Pause</button>
53+
<button id="backward" class="btn btn-primary" onclick="viewer.backward()">Backward</button>
54+
<button id="forward" class="btn btn-primary" onclick="viewer.forward()">Forward</button>
55+
<!-- TODO: speed buttons -->
56+
</div>
57+
<br>
5558

56-
<div class="row">
57-
<!-- TODO: Play if paused -->
58-
<button id="random" class="btn btn-primary" onclick="getArray('random')">Random</button>
59-
<button id="almost" class="btn btn-primary" onclick="getArray('almostSorted')">Almost Sorted</button>
60-
<button id="sorted" class="btn btn-primary" onclick="getArray('sorted')">Sorted</button>
61-
<button id="invertedSorted" class="btn btn-primary" onclick="getArray('inverted')">Inverted Sorted</button>
62-
</div>
59+
<div class="row">
60+
<!-- TODO: Play if paused -->
61+
<button id="random" class="btn btn-primary" onclick="getArray('random')">Random</button>
62+
<button id="almost" class="btn btn-primary" onclick="getArray('almostSorted')">Almost Sorted</button>
63+
<button id="sorted" class="btn btn-primary" onclick="getArray('sorted')">Sorted</button>
64+
<button id="invertedSorted" class="btn btn-primary" onclick="getArray('inverted')">Inverted Sorted</button>
65+
</div>
6366

64-
</div>
67+
</div>
6568

66-
<script>getArray("random")</script>
67-
<script>startMergeSort()</script>
69+
<script>getArray("random")</script>
70+
<script>startMergeSort()</script>
6871

69-
</body>
72+
</body>
7073
</html>
File renamed without changes.
File renamed without changes.

MergeSort/js/initArray.js renamed to MergeSort/js/InitArray.js

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
///<reference path="arrowMethods.ts"/>
21
///<reference path="MergeSortAlgorithm.ts"/>
32
var array;
43
if (typeof javaBinder != "undefined") {
@@ -14,34 +13,9 @@ var ArrayElement = /** @class */ (function () {
1413
this.left = left;
1514
$("#" + arrayId + this.id).animate({ left: left }, animTime);
1615
};
17-
ArrayElement.prototype.changeId = function (newId, arrayId) {
18-
$("#" + arrayId + this.id).stop();
19-
$("#" + arrayId + this.id).attr("id", arrayId + newId);
20-
this.id = newId;
21-
};
22-
ArrayElement.prototype.swap = function (otherElement, arrayId, animTime) {
23-
console.log("Swap: " + this.id + " med " + otherElement.id);
24-
// Swap Id
25-
var thisId = this.id;
26-
var otherId = otherElement.id;
27-
this.changeId(100, arrayId); // So it doesnt get selected when selecting the other element
28-
otherElement.changeId(thisId, arrayId);
29-
this.changeId(otherId, arrayId);
30-
// Swap position
31-
var thisLeft = this.left;
32-
this.animateLeft(otherElement.left, animTime, arrayId);
33-
otherElement.animateLeft(thisLeft, animTime, arrayId);
34-
};
3516
return ArrayElement;
3617
}());
3718
var arrayElements = new Array;
38-
function getArrayElement(id) {
39-
if (id < 0 || id >= arrayElements.length) {
40-
console.log("Illegal argument for getArrayElement: " + id);
41-
return;
42-
}
43-
return arrayElements.filter(function (elem) { return elem.id == id; })[0];
44-
}
4519
function setMyArray(jsonArray) {
4620
array = JSON.parse(jsonArray);
4721
arrayElements = [];
@@ -66,7 +40,6 @@ function setMyArray(jsonArray) {
6640
// Center elements
6741
centerElements();
6842
$(window).resize(centerElements());
69-
setupArrows();
7043
}
7144
function centerElements() {
7245
var arrayWidth = ((array.length - 1) * 85) + 50;
@@ -76,17 +49,6 @@ function centerElements() {
7649
$("svg#k-svg").animate({ left: (left - 7) + "px" }, 500);
7750
$("#rightBracket").animate({ left: (arrayWidth + 15) + "px" }, 600);
7851
}
79-
/**
80-
* This bricks the visualisation of the right array because it makes a new one.
81-
if (typeof javaBinder !== 'undefined') {
82-
javaBinder.setRandomArray();
83-
} else {
84-
$(document).ready(function() {
85-
//getArray("random");
86-
87-
});
88-
}
89-
*/
9052
function returnArray() {
9153
return array;
9254
}
File renamed without changes.

MergeSort/js/InitArray.ts

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
///<reference path="MergeSortAlgorithm.ts"/>
2+
declare var $;
3+
declare var javaBinder;
4+
5+
let array: number[];
6+
7+
if (typeof javaBinder != "undefined") {
8+
console.log = function (msg) {
9+
javaBinder.print(msg);
10+
}
11+
}
12+
13+
class ArrayElement {
14+
left: number;
15+
id: number;
16+
17+
constructor(id: number) {
18+
this.id = id;
19+
}
20+
21+
animateLeft(left: number, animTime: number, arrayId: string) {
22+
this.left = left;
23+
$("#" + arrayId + this.id).animate({left: left}, animTime);
24+
}
25+
}
26+
27+
var arrayElements = new Array;
28+
29+
function setMyArray(jsonArray: string) {
30+
array = JSON.parse(jsonArray);
31+
arrayElements = [];
32+
33+
// Remove elements
34+
$("#arrayUl li, #indices p").each(function () {
35+
$(this).remove();
36+
});
37+
38+
for (var i = 0; i < array.length; i++) {
39+
$("#indices").append("<p id='ind" + i + "' >" + i + "</p>");
40+
$("#arrayUl").append("<li id='insElemNr" + array[i] + "'><div>" + array[i] + "</div></li>");
41+
arrayElements.push(new ArrayElement(array[i]));
42+
}
43+
44+
// Spreading elements horizontally
45+
$(document).ready(function () {
46+
for (var i = 0; i < array.length; i++) {
47+
var left = (i * 85);
48+
var indLeft = (left + 7) - (i > 9 ? 7 : 0);
49+
$("#ind" + i).animate({left: indLeft + "px"}, 1000)
50+
arrayElements[i].animateLeft(left, 1000, "insElemNr");
51+
}
52+
});
53+
54+
// Center elements
55+
centerElements();
56+
$(window).resize(centerElements());
57+
}
58+
59+
function centerElements() {
60+
var arrayWidth = ((array.length - 1) * 85) + 50;
61+
var left = -arrayWidth / 2 + 20;
62+
$("#indices").animate({left: (left) + "px"}, 500);
63+
$("#arrayUl").animate({left: left + "px"}, 500); // +20? Ul is default 40px -> 40/2 = 20. Don't touch.
64+
$("svg#k-svg").animate({left: (left - 7) + "px"}, 500);
65+
$("#rightBracket").animate({left: (arrayWidth + 15) + "px"}, 600);
66+
}
67+
68+
function returnArray() {
69+
return array;
70+
}
71+
72+
function getArray(ran:string) {
73+
// Setting Random array
74+
if (ran === "random") {
75+
//array = setRandomMyArray();
76+
array = [4, 1, 10, 7, 3, 5, 20, 15, 2, 21];
77+
}
78+
else if (ran === "sorted") {
79+
array = setSortedArray();
80+
}
81+
else if (ran === "inverted") {
82+
array = setInvSortedArray();
83+
}
84+
else if (ran === "almostSorted") {
85+
array = setAlmostSortedArray();
86+
}
87+
else { // If page is tested in another browser
88+
array = [14, 11, 19, 18, 7, 17, 15, 5];
89+
}
90+
91+
if (checkDupli(array)) {
92+
return getArray(ran);
93+
} else {
94+
viewer.serializeArray(array);
95+
setMyArray(JSON.stringify(array));
96+
}
97+
}
98+
99+
function checkDupli(arr: number[]) {
100+
for (let i = 0; i <= arr.length; i++) {
101+
for (let j = i; j <= arr.length; j++) {
102+
if (i != j && arr[i] == arr[j]) {
103+
return true;
104+
}
105+
}
106+
}
107+
return false;
108+
}

0 commit comments

Comments
 (0)