Skip to content

Commit 99f8af5

Browse files
committed
Bubble sort
1 parent 1f48a1b commit 99f8af5

5 files changed

Lines changed: 70 additions & 69 deletions

File tree

app/src/main/java/com/apochromat/codeblockmobile/ProjectActivity.kt

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class ProjectActivity : AppCompatActivity() {
2929
private val updateProgramRunning = object : Runnable {
3030
override fun run() {
3131
kicker()
32-
mainHandler.postDelayed(this, 11)
32+
mainHandler.postDelayed(this, 1)
3333
}
3434
}
3535

@@ -240,68 +240,68 @@ class ProjectActivity : AppCompatActivity() {
240240
viewHolder: RecyclerView.ViewHolder,
241241
target: RecyclerView.ViewHolder
242242
): Boolean {
243-
if (viewHolder.adapterPosition == 0 ||
244-
target.adapterPosition == 0 ||
245-
listBlocks[target.adapterPosition].getBlockType() == "Begin" ||
246-
listBlocks[viewHolder.adapterPosition].getBlockType() == "Begin"){
247-
return true
248-
}
249-
else if (
250-
listBlocks[viewHolder.adapterPosition].getBlockType() == "ConditionIf" ||
251-
listBlocks[viewHolder.adapterPosition].getBlockType() == "ConditionIfElse" ||
252-
listBlocks[viewHolder.adapterPosition].getBlockType() == "Else" ||
253-
listBlocks[viewHolder.adapterPosition].getBlockType() == "CycleWhile"){
254-
val fromPosition = viewHolder.adapterPosition
255-
val toPosition = target.adapterPosition
256-
if (fromPosition > toPosition){
257-
val fromPosition2 = fromPosition + 1
258-
val toPosition2 = toPosition + 1
259-
Collections.swap(listBlocks, fromPosition, toPosition)
260-
Collections.swap(listBlocks, fromPosition2, toPosition2)
261-
blocksAdapter.notifyItemMoved(fromPosition, toPosition)
262-
blocksAdapter.notifyItemMoved(fromPosition2, toPosition2)
263-
}
264-
else if(fromPosition < toPosition &&
265-
(listBlocks[target.adapterPosition].getBlockType() == "ConditionIf" ||
266-
listBlocks[target.adapterPosition].getBlockType() == "ConditionIfElse" ||
267-
listBlocks[target.adapterPosition].getBlockType() == "Else" ||
268-
listBlocks[target.adapterPosition].getBlockType() == "CycleWhile")
269-
){
270-
Collections.swap(listBlocks, fromPosition, toPosition)
271-
blocksAdapter.notifyItemMoved(fromPosition, toPosition)
272-
}
273-
else {
274-
val fromPosition2 = fromPosition + 1
275-
Collections.swap(listBlocks, fromPosition, fromPosition2)
276-
Collections.swap(listBlocks, fromPosition, toPosition)
277-
blocksAdapter.notifyItemMoved(fromPosition, fromPosition2)
278-
blocksAdapter.notifyItemMoved(fromPosition, toPosition)
279-
}
280-
return false
281-
}
282-
else if(
283-
listBlocks[target.adapterPosition].getBlockType() == "ConditionIf" ||
284-
listBlocks[target.adapterPosition].getBlockType() == "ConditionIfElse" ||
285-
listBlocks[target.adapterPosition].getBlockType() == "Else" ||
286-
listBlocks[target.adapterPosition].getBlockType() == "CycleWhile"){
287-
val fromPosition = viewHolder.adapterPosition
288-
val toPosition = target.adapterPosition
289-
if (fromPosition < toPosition){
290-
val toPosition2 = toPosition + 1
291-
Collections.swap(listBlocks, fromPosition, toPosition2)
292-
Collections.swap(listBlocks, fromPosition, toPosition)
293-
blocksAdapter.notifyItemMoved(fromPosition, toPosition2)
294-
blocksAdapter.notifyItemMoved(fromPosition, toPosition)
295-
}
296-
else {
297-
val toPosition2 = toPosition + 1
298-
Collections.swap(listBlocks, fromPosition, toPosition)
299-
Collections.swap(listBlocks, toPosition2, fromPosition)
300-
blocksAdapter.notifyItemMoved(fromPosition, toPosition)
301-
blocksAdapter.notifyItemMoved(toPosition2, fromPosition)
302-
}
303-
return false
304-
}
243+
// if (viewHolder.adapterPosition == 0 ||
244+
// target.adapterPosition == 0 ||
245+
// listBlocks[target.adapterPosition].getBlockType() == "Begin" ||
246+
// listBlocks[viewHolder.adapterPosition].getBlockType() == "Begin"){
247+
// return true
248+
// }
249+
// else if (
250+
// listBlocks[viewHolder.adapterPosition].getBlockType() == "ConditionIf" ||
251+
// listBlocks[viewHolder.adapterPosition].getBlockType() == "ConditionIfElse" ||
252+
// listBlocks[viewHolder.adapterPosition].getBlockType() == "Else" ||
253+
// listBlocks[viewHolder.adapterPosition].getBlockType() == "CycleWhile"){
254+
// val fromPosition = viewHolder.adapterPosition
255+
// val toPosition = target.adapterPosition
256+
// if (fromPosition > toPosition){
257+
// val fromPosition2 = fromPosition + 1
258+
// val toPosition2 = toPosition + 1
259+
// Collections.swap(listBlocks, fromPosition, toPosition)
260+
// Collections.swap(listBlocks, fromPosition2, toPosition2)
261+
// blocksAdapter.notifyItemMoved(fromPosition, toPosition)
262+
// blocksAdapter.notifyItemMoved(fromPosition2, toPosition2)
263+
// }
264+
// else if(fromPosition < toPosition &&
265+
// (listBlocks[target.adapterPosition].getBlockType() == "ConditionIf" ||
266+
// listBlocks[target.adapterPosition].getBlockType() == "ConditionIfElse" ||
267+
// listBlocks[target.adapterPosition].getBlockType() == "Else" ||
268+
// listBlocks[target.adapterPosition].getBlockType() == "CycleWhile")
269+
// ){
270+
// Collections.swap(listBlocks, fromPosition, toPosition)
271+
// blocksAdapter.notifyItemMoved(fromPosition, toPosition)
272+
// }
273+
// else {
274+
// val fromPosition2 = fromPosition + 1
275+
// Collections.swap(listBlocks, fromPosition, fromPosition2)
276+
// Collections.swap(listBlocks, fromPosition, toPosition)
277+
// blocksAdapter.notifyItemMoved(fromPosition, fromPosition2)
278+
// blocksAdapter.notifyItemMoved(fromPosition, toPosition)
279+
// }
280+
// return false
281+
// }
282+
// else if(
283+
// listBlocks[target.adapterPosition].getBlockType() == "ConditionIf" ||
284+
// listBlocks[target.adapterPosition].getBlockType() == "ConditionIfElse" ||
285+
// listBlocks[target.adapterPosition].getBlockType() == "Else" ||
286+
// listBlocks[target.adapterPosition].getBlockType() == "CycleWhile"){
287+
// val fromPosition = viewHolder.adapterPosition
288+
// val toPosition = target.adapterPosition
289+
// if (fromPosition < toPosition){
290+
// val toPosition2 = toPosition + 1
291+
// Collections.swap(listBlocks, fromPosition, toPosition2)
292+
// Collections.swap(listBlocks, fromPosition, toPosition)
293+
// blocksAdapter.notifyItemMoved(fromPosition, toPosition2)
294+
// blocksAdapter.notifyItemMoved(fromPosition, toPosition)
295+
// }
296+
// else {
297+
// val toPosition2 = toPosition + 1
298+
// Collections.swap(listBlocks, fromPosition, toPosition)
299+
// Collections.swap(listBlocks, toPosition2, fromPosition)
300+
// blocksAdapter.notifyItemMoved(fromPosition, toPosition)
301+
// blocksAdapter.notifyItemMoved(toPosition2, fromPosition)
302+
// }
303+
// return false
304+
// }
305305
val fromPosition = viewHolder.adapterPosition
306306
val toPosition = target.adapterPosition
307307
Collections.swap(listBlocks, fromPosition, toPosition)

app/src/main/java/com/apochromat/codeblockmobile/logic/Block.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ open class Block {
134134
}
135135

136136
open fun run() {
137+
// adapterConsole.addMessage( getPrevBlock()?.indexListBlocks.toString() + " " + type + " " + getNextBlock()?.indexListBlocks.toString())
137138
if (getBlockType() == "ConsoleInput"){
138139
executeBlock()
139140
}

app/src/main/java/com/apochromat/codeblockmobile/logic/ConditionIf.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class ConditionIf : Block() {
4242
if (crutch) initVar()
4343
connectBlocks(end, exit, strong = true, clear = false)
4444
getNextBlock()?.let {
45-
if (getNextBlock() != begin && getNextBlock() != null)
45+
if (getNextBlock() != begin && getNextBlock() != exit && getNextBlock() != end && getNextBlock() != null)
4646
connectBlocks(exit, it, strong = true, clear = false)
4747
}
4848

@@ -60,9 +60,9 @@ class ConditionIf : Block() {
6060
expressionComparator
6161
)
6262
) {
63-
connectBlocks(this, begin, false)
63+
connectBlocks(this, begin, false, false)
6464
} else {
65-
connectBlocks(this, end, false)
65+
connectBlocks(this, end, false, false)
6666
}
6767
return
6868
}

app/src/main/java/com/apochromat/codeblockmobile/logic/ConditionIfElse.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ class ConditionIfElse : Block() {
6565
expressionComparator
6666
)
6767
) {
68-
connectBlocks(this, begin, false)
68+
connectBlocks(this, begin, false, false)
6969
} else {
70-
connectBlocks(this, beginElse, false)
70+
connectBlocks(this, beginElse, false, false)
7171
}
7272
return
7373
}

app/src/main/java/com/apochromat/codeblockmobile/logic/CycleWhile.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class CycleWhile : Block() {
4343

4444
connectBlocks(end, this, strong = false, clear = false)
4545
getNextBlock()?.let {
46-
if (getNextBlock() != begin)
46+
if (getNextBlock() != begin && getNextBlock() != exit && getNextBlock() != end && getNextBlock() != null)
4747
connectBlocks(exit, it, strong = true, clear = false)
4848
}
4949

0 commit comments

Comments
 (0)