From 37c22e7545655a6b8169279a085d15a38cfa05f9 Mon Sep 17 00:00:00 2001 From: r4tss <68610647+r4tss@users.noreply.github.com> Date: Thu, 22 Apr 2021 08:57:10 +0200 Subject: did stuff --- distances | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ ndoom.sh | 118 ++++++++++++++++++++++---------------------------------------- render.sh | 43 +++++++++++++++++++++++ 3 files changed, 176 insertions(+), 76 deletions(-) create mode 100644 distances create mode 100755 render.sh diff --git a/distances b/distances new file mode 100644 index 0000000..e88a144 --- /dev/null +++ b/distances @@ -0,0 +1,91 @@ +4.91746288276197613692 +4.86070647846171132861 +4.80597666477292522132 +4.75322577317980001295 +4.70241057849283816236 +4.65349208373923790685 +4.60643532510449528362 +4.56120919512121916374 +4.51778628248388026448 +4.47614272703082907556 +4.43625808858026777906 +4.39811522843747079080 +4.36170020250866084700 +4.32700216506457075205 +4.29401328229566494578 +4.26272865489290218471 +4.23314624897429006826 +4.20526683475968970673 +4.17909393247564214362 +4.15463376504957786303 +4.13189521722971827218 +4.00033312997138600204 +4.00241180833953426227 +4.00639694265200266674 +4.01229256940290965319 +4.02010468261656397857 +4.02984126597056894302 +4.04151233553111786431 +4.05512999329150279570 +4.07070849175881134182 +4.08826430989254757354 +4.10781624076349382234 +4.12938549137258679988 +4.15299579514902988789 +4.17867353773549700466 +4.20644789676739496542 +4.23635099646415898762 +4.26841807797503474727 +4.30268768656151821623 +4.33920187685558590845 +4.37800643760934487599 +4.41915113755040243673 +4.46268999418115576598 +4.50868156761288627512 +4.55718928181116540769 +4.60828177595250223005 +4.66203328895910474283 +4.71852408069581730600 +4.77784089378868020928 +4.84007746056753006902 +4.90533506025675753739 +4.97372313225198910332 +5.04535995214180931312 +5.12037337808147922421 +5.19890167622241583049 +5.28109443517393970139 +5.36711358095490870903 +5.45713450562146505175 +5.55134732478058707908 +5.64995828157495526230 +5.75319131752286501612 +5.86128983390319916021 +5.97451867129492405382 +6.09316633954269753569 +6.21754753598516637167 +6.34800599644937824715 +3.57161069252959064625 +3.51608852596009908236 +3.46276614252827744904 +3.41150617449867058766 +2.10413606953403533497 +2.07808340368291366530 +2.05286138919961155545 +2.02842006751707954041 +2.00471319970610649479 +1.98169792362910897112 +1.95933444825340321146 +1.93758578052670992705 +1.91641748085756976936 +7.59930495338969927077 +7.51283988299293113437 +7.42979438030052824861 +5.09981089470626895275 +5.04483922570274142907 +2.82360588060097635914 +2.79331713427272527228 +2.76385975150604993199 +2.73519850714179878463 +2.70730053958322037706 +2.68013519486343531074 +3.67127679848351789611 diff --git a/ndoom.sh b/ndoom.sh index 25beb32..e00a6f2 100755 --- a/ndoom.sh +++ b/ndoom.sh @@ -1,30 +1,22 @@ -#!/bin/ksh93 +#!/bin/zsh readonly PI=3.1415926535897932384626 sw=10 sh=5 w=0 h=0 -x=3 -y=3 +x=4 +y=4 dx=0 dy=0 -a=9 +a=2 quit=0 stepX=0 stepY=0 -sa=$(echo "($PI / 6) * -1" | bc -l) -ba=$(echo "$PI / 6" | bc -l) +sa=$(echo "($PI / 4) * -1" | bc -l) +ba=$(echo "$PI / 4" | bc -l) mapSize=8 -map=( 1 1 1 1 1 1 1 1 \ - 1 0 0 0 0 0 0 1 \ - 1 0 0 0 0 0 0 1 \ - 1 0 0 0 0 0 0 1 \ - 1 0 0 0 0 0 0 1 \ - 1 0 0 0 0 0 0 1 \ - 1 0 0 0 0 0 0 1 \ - 1 0 0 0 0 0 0 1 \ - 1 1 1 1 1 1 1 1 ) +map=(1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1) function rr { if [ $1 -eq 0 ] @@ -43,91 +35,65 @@ function rr { } function dir { - if [ $(echo "$a < 0" | bc) -eq 1 ] - then - ab=$(echo "$a - ($PI * 2)" | bc) - else - ab=$a - fi - ax=$a - ay=$(echo "($PI * 0.5) - $a" | bc) + ab=$1 if [ $(echo "$1 > 0" | bc) -eq 1 ] && [ $(echo "$1 < ($PI * 0.5)" | bc) -eq 1 ] then stepX=1 - stepY=1 + stepY=-1 ax=$ab - ay=$(echo "(PI * 0.5) - ab" | bc) + ay=$(echo "($PI * 0.5) - $ab" | bc) elif [ $(echo "$1 > ($PI * 0.5)" | bc -l) -eq 1 ] && [ $(echo "$1 < $PI" | bc -l) -eq 1 ] then stepX=-1 - stepY=1 + stepY=-1 ax=$(echo "$PI - $ab" | bc) - oy=$(echo "$ab - ($PI * 0.5)" | bc) + ay=$(echo "$ab - ($PI * 0.5)" | bc) elif [ $(echo "$1 > $PI" | bc -l) -eq 1 ] && [ $(echo "$1 < ($PI * 1.5)" | bc -l) -eq 1 ] then stepX=-1 - stepY=-1 + stepY=1 ax=$(echo "$ab - $PI" | bc) ay=$(echo "($PI * 1.5) - $ab" | bc) else stepX=1 - stepY=-1 + stepY=1 ax=$(echo "($PI * 2) - $ab" | bc) ay=$(echo "$ab - ($PI * 1.5)" | bc) fi } -function check_arr { - -} - -#while [ $h -lt $sh ] +#while [ !$quit ] #do -# while [ $w -lt $sw ] -# do -# echo -n '#' -# ((w++)) -# done -# echo -ne '\n' -# ((h++)) -# w=0 -#done - -while [ !$quit ] +echo -n > distances +rc=0 +while [ $rc -lt 91 ] do - rc=0 rx=$(rr 0 $x) ry=$(rr 1 $y) - sideX=$(echo "$x - $rx" | bc) - sideY=$(echo "$y - $ry" | bc) - while [ $rc -lt 61 ] + hit=0 + ra=$(echo "a=($a + $sa); if (a<0) a + ($PI * 2) else a" | bc) + dir $ra + dx=$(echo "a=(1 / (s($ax) / c($ax))); if (a>1) $stepX else a" | bc -l) + dy=$(echo "a=(1 / (s($ay) / c($ay))); if (a>1) $stepY else a" | bc -l) + rlc=0 + rx=$(echo "if ($stepX==1) ($x / 1) + 1 else $x / 1" | bc) + ry=$(echo "if ($stepY==-1) ($y / 1) + 1 else $y / 1" | bc) + while [ $hit -eq 0 ] do - hit=0 - rlc=0 - ra=$(echo "$a + $sa" | bc) - dir $ra - dx=$(echo "1 / (s($ax) / c($ax))" | bc -l) - dy=$(echo "1 / (s($ay) / c($ay))" | bc -l) - #echo $stepX $stepY - while [ $rlc -lt 2 ] - do - a=$(echo "$rx + ($mapSize * $ry)" | bc) - echo $a $rx $ry - if [ $rc -eq 0 ] - then - rx=$(echo "if ($stepX==1) ($x / 1) + 1 else $x / 1" | bc) - ry=$(echo "if ($stepY==1) ($y / 1) + 1 else $y / 1" | bc) - ((rlc++)) - elif [ ${map[@]} -eq 1 ] - then - hit=1 - ((rlc++)) - else - rx=$(echo "") - fi - done - sa=$(echo "$sa + ($PI / 180)" | bc -l) - (( rc++ )) + if [ ${map[$(echo "$rx + ($mapSize * $ry)" | bc)]} -eq 1 ] + then + hit=1 + else + rx=$(echo "$rx + $dx" | bc) + ry=$(echo "$ry + $dy" | bc) + fi done - break + sideX=$(echo "if($rx>$x) $rx - $x else $x - $rx" | bc) + sideY=$(echo "if($ry>$y) $ry - $y else $y - $ry" | bc) + echo "$(echo "sqrt(($sideX * $sideX) + ($sideY * $sideY))" | bc) " >> distances + sa=$(echo "$sa + ($PI / 180)" | bc -l) + (( rc++ )) done +#./draw.sh +# break +#done diff --git a/render.sh b/render.sh new file mode 100755 index 0000000..d686f40 --- /dev/null +++ b/render.sh @@ -0,0 +1,43 @@ +#!/bin/zsh +W=0 +H=0 +height=0 + +echo ${distance[1]} + +function a { #input format: distance, height, invert + if [ $(echo "$(sed -n $(echo $((W + 1))p) distances) < ($height * 0.75)" | bc) -eq 1 ] + then + b="#" + elif [ $H -gt 20 ] + then + b="-" + else + b=" " + fi +} + +while [ $H -lt 41 ] +do + echo + while [ $W -lt 91 ] + do + a + if [ $W -eq 90 ] + then + echo $b + else + echo -n $b + fi + echo -n " " + ((W++)) + done + ((H++)) + if [ $H -lt 21 ] + then + ((height++)) + else + ((height--)) + fi + W=0 +done -- cgit v1.2.3