This commit is contained in:
Florian Bouillon 2018-02-02 00:31:06 +01:00
parent 1d878ca09a
commit 79f580ba9d
2 changed files with 47 additions and 27 deletions

View File

@ -6,21 +6,35 @@
table, th, td { table, th, td {
border: 1px solid black; border: 1px solid black;
padding: 15px; padding: 15px;
} }
.ant { .ant {
background: red; background: red !important;
}
.black {
background: black;
} }
</style> </style>
<script type="text/javascript" src="prgm.js"></script>
</head> </head>
<body> <body>
<div class="prgm"> <div class="prgm">
</div> </div>
<button onclick="moving()" style="position: fixed;top: 0;">Move</button>
<input style="position: fixed;bottom: 0;" class="moves"/>
</body> </body>
<script type="text/javascript" src="prgm.js"></script>
<script> <script>
prgm = Prgm; function moving() {
AntElement = "test"; for (var i = document.getElementsByClassName("moves")[0].value - 1; i >= 0; i--) {
prgm.init(document.getElementsByClassName("prgm")[0], 10); Prgm.Ant.move();
prgm.Ant.setAt(1,2); }
}
window.onload = function() {
stop = false;
Prgm.setElement("test");
Prgm.init(document.getElementsByClassName("prgm")[0], 250);
Prgm.Ant.setAt(50, 200);
};
</script> </script>
</html> </html>

48
prgm.js
View File

@ -5,55 +5,61 @@ var Prgm = {
this.Ant.element= elementName; this.Ant.element= elementName;
}, },
init: function(element, width) { init: function(element, width) {
width++;
table = "<table id="+this.element+">"; table = "<table id="+this.element+">";
for (t = 0; t < width; t++) { for (t = 0; t < width; t++) {
table += "<tr>"; table += '<tr line="'+t+'">';
for (i = 0; i < width; i++) { for (i = 0; i < width; i++) {
table += '<td col="'+t+'" line="'+i+'"></td>'; table += '<td col="'+i+'"></td>';
} }
table += "</tr>"; table += "</tr>";
} }
element.innerHTML += table; element.innerHTML += table;
}, },
Ant: { Ant: {
element: "table", element: "table",
prepos: [0,0], prepos: [0,0],
pos: [0,0], pos: [0,0],
setAt: function(line, col) { setAt: function(line, col) {
//console.log("Entering : Ant.setAt");
col--; col--;
line--; line--;
//window.alert(col + ", " + line + ", " + AntElement); document.getElementById(this.element).childNodes[0].childNodes[line].childNodes[col].classList.add("ant");
document.getElementById(this.element).childNodes[0].childNodes[col].childNodes[line].classList.add("ant"); this.pos = [line, col];
pos = document.getElementsByClassName("ant")[0]; this.prepos = [line+1, col];
this.pos = [pos.getAttribute("line"), pos.getAttribute("col")];
this.prepos = this.pos;
this.prepos[0] = this.pos[0] - 1;
}, },
move: function() { move: function() {
window.alert(parseInt(this.prepos[0])+parseInt(this.pos[0])+", "+(parseInt(this.prepos[1])+parseInt(this.pos[1]))); //console.log("Entering : Ant.move");
//console.log("prepos : " + this.prepos + "\npos : " + this.pos);
//console.log("Diff : "+(parseInt(this.prepos[0])-parseInt(this.pos[0]))+", "+(parseInt(this.prepos[1])-parseInt(this.pos[1])));
if(document.getElementsByClassName("ant")[0].classList.contains("black")) {
document.getElementsByClassName("ant")[0].classList.remove("black");
//console.log("Black tile !\nSending : " + (parseInt(this.prepos[1])-parseInt(this.pos[1]))+", "+ (-(parseInt(this.prepos[0])-parseInt(this.pos[0]))));
this.a(parseInt(this.prepos[1])-parseInt(this.pos[1]), -(parseInt(this.prepos[0])-parseInt(this.pos[0])));
if(pos.classList.contains("black")) {
//window.alert(this.prepos[0]+this.pos[0]+", "+this.prepos[1]+this.pos[1]);
//window.alert(this.prepos);
this.a();
} else { } else {
//window.alert(parseInt(this.prepos[0])+parseInt(this.pos[0])+", "+(parseInt(this.prepos[1])+parseInt(this.pos[1]))); document.getElementsByClassName("ant")[0].classList.add("black");
//window.alert(this.prepos); //console.log("White tile !\nSending : " + (-(parseInt(this.prepos[1])-parseInt(this.pos[1])))+", "+ (parseInt(this.prepos[0])-parseInt(this.pos[0])));
this.a(-(parseInt(this.prepos[1])-parseInt(this.pos[1])), parseInt(this.prepos[0])-parseInt(this.pos[0]));
} }
//window.alert(this.pos);
}, },
a: function(line, col) { a: function(line, col) {
//window.alert(line+", "+col); //console.log("Entering : Ant.a");
//window.alert((line+parseInt(this.pos[0]))+", "+(col+parseInt(this.pos[1]))); document.getElementsByClassName("ant")[0].classList.remove("ant");
pos = document.getElementsByClassName("ant")[0].classList.remove("ant"); //console.log("Setting Ant Position to :\nLine : " + (line+parseInt(this.pos[0])) + "\nColumn : " + (col+parseInt(this.pos[1])) );
document document
.getElementById(this.element) .getElementById(this.element)
.childNodes[0] .childNodes[0]
.childNodes[line-1+parseInt(this.prepos[0])] .childNodes[line+parseInt(this.pos[0])]
.childNodes[col-1+parseInt(this.prepos[1])] .childNodes[col+parseInt(this.pos[1])]
.classList .classList
.add("ant"); .add("ant");
this.prepos = this.pos; this.prepos = this.pos;
this.pos = [line+parseInt(this.prepos[0]), col+parseInt(this.prepos[1])];
}, },
} }
} }