User blog:DWither/Doubt about busy beaver

The busy beaver function is uncomputable because it's impossible to make a program that will evaluate BB(n) in a finite time, right? And this is because the computer will never know if it's going 1to halt until it halts. Well, I'm pretty sure that someone has to have asked this before, but why can't you just check for loops in the behavior of the turing machine to know if it's going to keep going forever?

I thought of a step by step method to calculate BB(n) that definitely seems computable to me. I don't know enough about any programming language to directly show code though, so sorry about that. Tell me what I'm missing in all of this that makes my step by step method useless.

Step 1:

Take all the possible combinations of states you can have with n states

Create an array a

Set a variable c to 1

Step 2:

Set a variable s to 0

Set a boolean variable b to False

Evaluate the cth combination (Step 2.1)

Step 2.1:

Do 1 step (reading, overwriting and moving all together).

Add 1 to the variable s

If it halts in this step: count all the ones from the cell 0 (where we start) to the cell number s in both sides, add 1 to c, save it in the array a and go back to step 2.

If it doesn't halt in this step and b=False: compare the sequences of steps (including the states, the input taken in each step and the output) from s-n to s and from s-(2n+1) to s-(n+1) for all n up to s/2.

If some of the paired sequences are equal in every sense: set b to True, save current value of s as currs and save the number n that generated the pair of longest sequences that are equal as diff.

If the sequences aren't equal: go back to the beggining of step 2.1

If b=True: keep doing more steps until s = 10^currs (this should be enough to break the pattern if it eventually breaks, either because it stays in place as in not moving away to cells that it hasn't been in while in that pattern, needing less than s*2 steps to prove that the pattern keeps going or is broken, or because the pattern moves towards one side, in which case there might be a few 1s set by the turing machine some steps before, but then it looks to me like it needs exponential growth to make sure that the pattern has time to get to those 1s and break the pattern if there actually are 1s there).

If the sequences from currs-n to currs, currs+1 to currs+n+1 etc until we reach s are all equal: add 1 to c and go back to step 2.

Else: set b to False and go back to step 2.1

Step 3:

Print the largest integer of the array a.