View unanswered posts | View active topics It is currently Mon Apr 20, 2026 2:39 am



Reply to topic  [ 14 posts ] 
 Parsing Dead Ends to a file 
Author Message
1st Sergeant
User avatar

Joined: Fri Sep 13, 2002 2:00 am
Posts: 38
Location: New Zealand
Unread post Parsing Dead Ends to a file
Anyone know where I can get a twx script to parse dead ends (and unexplored dead ends) to a file?
I have "oz-unex-dend-parser" but I cannot find where it is supposed to get the info from.
TWX "$db" Gives me a list of dends. Maybe the question is how can I parse the "deepest" to a file from there?

_________________
"Let slip the carrion dogs of war"


Thu May 20, 2010 7:50 pm
Profile ICQ YIM WWW
Commander
User avatar

Joined: Fri Jun 09, 2006 2:00 am
Posts: 1401
Location: Canada
Unread post Re: Parsing Dead Ends to a file
Code:
setvar $File       "C:\DES.txt"
setvar $DEEPNESS   15
delete $File
setvar $idx       1
while ($idx <= sectors)
  if (sector.warpcount[$idx] = 1) and (sector.warpincount[$idx] = 1)
     if (Sector.explored[$idx] = "NO") OR (Sector.Explored[$idx] = "CALC")
         getsectorparameter $IDX "FIGSEC" $FIG
         if ($FIG = "0")
          getDistance $DIST 1 $IDX
            if ($DIST = "-1")
               send "^1*" & $IDX & "**Q"
               waiton ": ENDINTERROG"
               getDistance $DIST 1 $IDX
               if ($DIST = "-1")
                  goto :_NEXT_
               end
            end
            if ($DIST >= $DEEPNESS)
               write $File $IDX
            end
        end
    end
  end
  :_NEXT_
  add $idx 1
end

_________________
----------------------------
-= QUANTUM Computing 101: 15 = 3 x 5 ... 48% of the time.


Thu May 20, 2010 7:56 pm
Profile ICQ YIM
Commander
User avatar

Joined: Tue Oct 07, 2003 2:00 am
Posts: 1134
Location: Augusta, GA
Unread post Re: Parsing Dead Ends to a file
You don't need a script, you just need a few lines of code. In the routine below, I'm defining a deadend as a sector with only 1 warp in. If you want to define it differently, or add other criteria, then alter the IF statement.

getNearestWarps $warps STARDOCK
setVar $i $warps
while ($i > 1)
setVar $focus $warps[$i]
if (SECTOR.WARPINCOUNT[$focus] = 1)
write "DeadEnds.txt" $warps[$i]
end
subtract $i 1
end

The only lines that might need explanation are the first 2. The command getNearestWarps creates an array (named $warps[] in this case) sorted by distance (from STARDOCK in this case), from nearest to farthest. Additionally, getNearestWarps creates a variable ($warps in this case) set to the number of elements in that sorted array. So line 2 and the WHILE loop steps us through the $warps[] array from the farthest sector ($warps[$warps]) to the closest ($warps[2], because $warps[1] is the beginning sector, STARDOCK in this case).

Questions?

+EP+

_________________
Claim to Fame: only guy to ever crack the TW haggle algorithm, and fig/shield/hold price formula, twice.


Fri May 21, 2010 6:37 am
Profile WWW
Commander
User avatar

Joined: Fri Jun 09, 2006 2:00 am
Posts: 1401
Location: Canada
Unread post Re: Parsing Dead Ends to a file
I have a question.. why don't you process the First element in the Array?

I've more questions, but I would be splitting hairs.

_________________
----------------------------
-= QUANTUM Computing 101: 15 = 3 x 5 ... 48% of the time.


Fri May 21, 2010 9:16 am
Profile ICQ YIM
Commander
User avatar

Joined: Tue Oct 07, 2003 2:00 am
Posts: 1134
Location: Augusta, GA
Unread post Re: Parsing Dead Ends to a file
Because $warps[1] would be STARDOCK in that example.

Please, ask away. Splitting hairs if fine with me, so long as motrax doesn't mind if his thread digresses. For any questions that can be answered so that it benefits other visitors, I'm willing to take the time to answer in detail if I can.

_________________
Claim to Fame: only guy to ever crack the TW haggle algorithm, and fig/shield/hold price formula, twice.


Fri May 21, 2010 10:41 am
Profile WWW
1st Sergeant
User avatar

Joined: Fri Sep 13, 2002 2:00 am
Posts: 38
Location: New Zealand
Unread post Re: Parsing Dead Ends to a file
Fire away with split hairs or whatever. I am always interested

_________________
"Let slip the carrion dogs of war"


Fri May 21, 2010 5:25 pm
Profile ICQ YIM WWW
1st Sergeant
User avatar

Joined: Fri Sep 13, 2002 2:00 am
Posts: 38
Location: New Zealand
Unread post Re: Parsing Dead Ends to a file
Is it possible to sort the data from "$db" and parse to a file?. I would like to end up with a single column file with the deepest sector of dends 2 or more deep. Or am I asking the mpossible. Btw thanks for the input

_________________
"Let slip the carrion dogs of war"


Fri May 21, 2010 5:31 pm
Profile ICQ YIM WWW
Gameop
User avatar

Joined: Tue Nov 19, 2002 3:00 am
Posts: 1050
Location: USA
Unread post Re: Parsing Dead Ends to a file
motrax wrote:
Is it possible to sort the data from "$db" and parse to a file?. I would like to end up with a single column file with the deepest sector of dends 2 or more deep. Or am I asking the mpossible. Btw thanks for the input


ElderProphet wrote:
getNearestWarps $warps STARDOCK
setVar $i $warps
while ($i > 1)
setVar $focus $warps[$i]
if (SECTOR.WARPINCOUNT[$focus] = 1)
write "DeadEnds.txt" $warps[$i]
end
subtract $i 1
end



Both EP's and Lonestars process to a file using the Write command. Looking specifically for 2deep deadends or larger would require somemore lines to Ep's code.

getNearestWarps $warps STARDOCK
setVar $i $warps
while ($i > 1)
setVar $focus $warps[$i]
if (SECTOR.WARPINCOUNT[$focus] = 2)
SetVar $Index 1
While ($Index < Sector.Warpcount[$focus])
Setvar $TestSector Sector.Warps[$focus][$Index]
If (Sector.Warpcount[$TestSector] = 1)
Echo ANSI_12 "*2 Deep Deadend at " & $TestSector
write "DeadEnds.txt" $TestSector
end
add $Index 1
end
end
subtract $i 1
end


One more which starts at 1 and goes to Sectors instead of farthest to closest as you requested. I'm posting it because awhile back I wrote this for a corpie and commented in my logic to help make it easier to read. May give you a better idea of what Lone and EP are doing in the above code. Figured since you asked for a 2 deep Deadend searcher it might be relevant. The script looks for unfigged deadends 2 deep.

#Setvar a variable named $file with the GAMENAME and "targettedde.txt" 
setVar $file GAMENAME & "_TargettedDe.txt"

#delete any previous written .txt documents
delete $file

#----Main Code 2 Deep Searcher
#Set a index variable to 1
Setvar $idx 1
#While 1 is less than total sectors
While ($idx <= Sectors)

#if the warpcount, (number of warps is 2)
If (SECTOR.WARPCOUNT[$idx] = 2)

#set a new variable to 1
Setvar $idxc 1

#while the new variable is less than the total warps out which we set to 2 above
While ($idxc <= SECTOR.WARPCOUNT[$idx])

#set a variable named $test that holds the adjacent warp to the current sector
Setvar $test SECTOR.WARPS[$idx][$idxc]

#get the sectors FIGSEC parameter and assign it to $figged variable
GetSectorParameter $test "FIGSEC" $Figged

#If the warp adjacent to our $test variable only has 1 warp out and is not $figged
If ((SECTOR.WARPCOUNT[$test] = 1) AND ($Figged = FALSE))

#write to our $file variable which also writes it out as a .txt
Write $file $test

#end our if arguement
end

#add +1 to the $idxc variable we set to incriment the while loop and allow it to exit normally
add $idxc 1

#end our second while loop
end

#end out first if statement
end

#increment our first while loop that cycles through sectors
add $idx 1

#end our first while loop
end


And you go from there with other if statements to test how back you want to go in the Deadend. Of course I am prolly missing something in my logic above, so I'll defer any mistakes to my newness :-)

_________________
Dark Dominion TWGS
Telnet://twgs.darkworlds.org:23
ICQ#31380757, -=English 101 pwns me=-
"This one claims to have been playing since 1993 and didn't know upgrading a port would raise his alignment."


Fri May 21, 2010 10:45 pm
Profile ICQ
Commander
User avatar

Joined: Tue Oct 07, 2003 2:00 am
Posts: 1134
Location: Augusta, GA
Unread post Re: Parsing Dead Ends to a file
Motrax, what do you mean by "deepest" and "2 or more deep"? To me, the deepest are the ones farthest from Stardock, and that is how the output from my code sorts them, from farthest to nearest. "2 or more deep" sounds like you mean a tunnel or bubble, which is more complex. To do that, you'd first do a bubble search, then look for deadends within the list of bubble sectors. I could post code for that, but first you should completely understand the 9-line routine I posted earlier. All of you guys can own 9 lines of code. Ask questions if you don't, and read script.html in your TWX folder.

"$db" is not part of TWX, that is something specific to Oz's script.

Kaus, your code snippets will find a 2-deep deadend (or 1-deep, depending on how you count it), or a deadend at the end of a tunnel, but not necessarily deadends within a bubble. Also, I think you are doing it the hard way, by looking for a sector with 2 waps and iterating through it's adjacents to check for a deadend. It would be more simple (and with one less iterator) to check for deadends, and see if the adjacent sector has 2 warps.
if (SECTOR.WARPINCOUNT[$focus] = 1)
setVar $adjacent SECTOR.WARPSIN[$focus][1]
if (SECTOR.WARPCOUNT[$adjacent] = 2)

+EP+

_________________
Claim to Fame: only guy to ever crack the TW haggle algorithm, and fig/shield/hold price formula, twice.


Sat May 22, 2010 10:11 am
Profile WWW
Gameop
User avatar

Joined: Tue Nov 19, 2002 3:00 am
Posts: 1050
Location: USA
Unread post Re: Parsing Dead Ends to a file
ElderProphet wrote:
Motrax, what do you mean by "deepest" and "2 or more deep"? To me, the deepest are the ones farthest from Stardock, and that is how the output from my code sorts them, from farthest to nearest. "2 or more deep" sounds like you mean a tunnel or bubble, which is more complex. To do that, you'd first do a bubble search, then look for deadends within the list of bubble sectors. I could post code for that, but first you should completely understand the 9-line routine I posted earlier. All of you guys can own 9 lines of code. Ask questions if you don't, and read script.html in your TWX folder.

"$db" is not part of TWX, that is something specific to Oz's script.

Kaus, your code snippets will find a 2-deep deadend (or 1-deep, depending on how you count it), or a deadend at the end of a tunnel, but not necessarily deadends within a bubble. Also, I think you are doing it the hard way, by looking for a sector with 2 waps and iterating through it's adjacents to check for a deadend. It would be more simple (and with one less iterator) to check for deadends, and see if the adjacent sector has 2 warps.
if (SECTOR.WARPINCOUNT[$focus] = 1)
setVar $adjacent SECTOR.WARPSIN[$focus][1]
if (SECTOR.WARPCOUNT[$adjacent] = 2)

+EP+


Good point, thank you. Heh when I was writing the addition to your farthest routine I realized for the first time I could skip a step I used to do whereas I used to define my SECTOR.WARPCOUNT before the If Statement. The warpcount approach is certainly less complex and more to the point. I appreciate it :-)

_________________
Dark Dominion TWGS
Telnet://twgs.darkworlds.org:23
ICQ#31380757, -=English 101 pwns me=-
"This one claims to have been playing since 1993 and didn't know upgrading a port would raise his alignment."


Sat May 22, 2010 10:38 pm
Profile ICQ
Commander
User avatar

Joined: Fri Jun 09, 2006 2:00 am
Posts: 1401
Location: Canada
Unread post Re: Parsing Dead Ends to a file
ElderProphet wrote:
Because $warps[1] would be STARDOCK in that example.

Splitting hair: if not processing STARDOCK, then similarly, why not exclude sectors adjacent Dock? :) further, why not assume that each adjacent to dock has a probable adjcent-count of 2 or more..

I might be a tad persnickety; but I wouldn't consider a sector with only 1-warpin (possibly many warps out), a True DeadEnd.

Final chop with the Finetooth-Axe. I think that Motraxs query pertained to finding 'UnExplored DeadEnd Sectors', likely Unfig'd. I believe filtering down a postentially Huge list of more than 3800 results, ameding the IF to: if (SECTOR.WARPINCOUNT[$warps[$warps]] = 1) AND (SECTOR.WARPCOUNT[$warps[$warps]] = 1) reduced the results to less than 3700, also adding if (SECTOR.EXPLORED[$warps[$warps]] <> "YES") brought the results down to just over 2k; filtering out Unfig'd Sectors brought thousands of results down to only 27. Adding conditional-tests or 'filters' is far more efficient. The real objective here is, I think, to come up with results that are pertinent and meaningful.

Code:
#  Something for Motrax to chew on :)
getNearestWarps $warps STARDOCK
delete "C:\DeadEnds.txt"
:_WHILE_LOOP_1
if (SECTOR.WARPINCOUNT[$warps[$warps]] = 1) AND (SECTOR.WARPCOUNT[$warps[$warps]] = 1) AND (SECTOR.EXPLORED[$warps[$warps] <> "YES")
    getDistance $DIST STARDOCK $warps[$warps]
    write "C:\DeadEnds.txt" $warps[$warps]
    Echo ANSI_15 & "*" & $warps[$warps] & ",   " & $DIST
end
subtract $warps 1
Branch ($warps <= 7) :_WHILE_LOOP_1

_________________
----------------------------
-= QUANTUM Computing 101: 15 = 3 x 5 ... 48% of the time.


Mon May 24, 2010 6:42 am
Profile ICQ YIM
Commander
User avatar

Joined: Tue Oct 07, 2003 2:00 am
Posts: 1134
Location: Augusta, GA
Unread post Re: Parsing Dead Ends to a file
LoneStar wrote:
The real objective here is, I think, to come up with results that are pertinent and meaningful.

motrax's objective is exactly that. My objective is to help people learn to script. So the code snippets I post are usually over-simplified, but do 90% of what they've asked. There is merit in having them think through the other 10%. I don't say this to alter what and how you post, but so you understand where I'm coming from.

_________________
Claim to Fame: only guy to ever crack the TW haggle algorithm, and fig/shield/hold price formula, twice.


Mon May 24, 2010 9:40 am
Profile WWW
Lieutenant Commander
User avatar

Joined: Sat Feb 27, 2010 7:59 pm
Posts: 782
Unread post Re: Parsing Dead Ends to a file
and i for one have to say thanks to you guys for trying to teach us!

_________________
I was immortal, for a little while...
http://www.youtube.com/watch?v=5ZY2mRG5mzg


Mon May 24, 2010 10:15 am
Profile
1st Sergeant
User avatar

Joined: Fri Sep 13, 2002 2:00 am
Posts: 38
Location: New Zealand
Unread post Re: Parsing Dead Ends to a file
Thanks for all the ideas.
If I send $db in TWX it gives all the deadends 2 or more deep.
It gives the entrance and the deepest sectors. That is the "deepest " that I was refering to.
I have plent of code to play with now

_________________
"Let slip the carrion dogs of war"


Mon May 24, 2010 10:51 pm
Profile ICQ YIM WWW
Display posts from previous:  Sort by  
Reply to topic   [ 14 posts ] 

Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by wSTSoftware.