import Ġorg . j om l . Vector 3 f Ċ import Ġkotlin . math . abs Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln ( bres en ham 3 DW alk ( ĊĠĠĠĠĠĠĠ ĠVector 3 f ( 0 f , Ġ 0 f , Ġ 0 f ), ĊĠĠĠĠĠĠĠ ĠVector 3 f ( 0 f , Ġ 0 f , Ġ 0 f ) ĊĠĠĠ Ġ)) Ċ } Ċ Ċ fun Ġb res en ham 3 DW alk ( origin : ĠVector 3 f , Ġdestination : ĠVector 3 f ): ĠMutable List < List < Long >> Ġ{ ĊĠĠĠ Ġval Ġpoints Ġ= Ġmutable ListOf < List < Long >>() ĊĠĠĠ Ġvar Ġx 1 Ġ= Ġorigin . x . to Long () ĊĠĠĠ Ġvar Ġy 1 Ġ= Ġorigin . y . to Long () ĊĠĠĠ Ġvar Ġz 1 Ġ= Ġorigin . z . to Long () ĊĊĠĠĠ Ġvar Ġx 2 Ġ= Ġdestination . x . to Long () ĊĠĠĠ Ġvar Ġy 2 Ġ= Ġdestination . y . to Long () ĊĠĠĠ Ġvar Ġz 2 Ġ= Ġdestination . z . to Long () ĊĠĠĠ Ġpoints . add ( listOf ( x 1 , Ġy 1 , Ġz 1 )) ĊĊĠĠĠ Ġval Ġdx Ġ= Ġabs ( destination . x Ġ- Ġorigin . x ) ĊĠĠĠ Ġval Ġdy Ġ= Ġabs ( destination . y Ġ- Ġorigin . y ) ĊĠĠĠ Ġval Ġdz Ġ= Ġabs ( destination . z Ġ- Ġorigin . z ) ĊĊĠĠĠ Ġvar Ġxs Ġ= Ġif Ġ( destination . x Ġ> Ġorigin . x ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠ Ġvar Ġys Ġ= Ġif Ġ( destination . y Ġ> Ġorigin . y ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠ Ġvar Ġz s Ġ= Ġif Ġ( destination . z Ġ> Ġorigin . z ) Ġ 1 Ġelse Ġ- 1 ĊĊĠĠĠ Ġif Ġ( dx Ġ>= Ġdy Ġ&& Ġdx Ġ>= Ġdz ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġp 1 Ġ= Ġ 2 Ġ* Ġdy Ġ- Ġdx ĊĠĠĠĠĠĠĠ Ġvar Ġp 2 Ġ= Ġ 2 Ġ* Ġdz Ġ- Ġdx ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( x 1 Ġ!= Ġx 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx 1 Ġ+= Ġxs ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 1 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy 1 Ġ+= Ġys ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp 1 Ġ-= Ġ 2 Ġ* Ġdx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 2 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġz 1 Ġ+= Ġz s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp 2 Ġ-= Ġ 2 Ġ* Ġdx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp 1 Ġ+= Ġ 2 Ġ* Ġdy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp 2 Ġ+= Ġ 2 Ġ* Ġdz ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoints . add ( listOf ( x 1 , Ġy 1 , Ġz 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġif Ġ( dy Ġ>= Ġdx Ġ&& Ġdy Ġ>= Ġdz ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġp 1 Ġ= Ġ 2 Ġ* Ġdx Ġ- Ġdy ĊĠĠĠĠĠĠĠ Ġvar Ġp 2 Ġ= Ġ 2 Ġ* Ġdz Ġ- Ġdy ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( y 1 Ġ!= Ġy 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy 1 Ġ+= Ġys ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 1 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx 1 Ġ+= Ġxs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp 1 Ġ-= Ġ 2 Ġ* Ġdy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 2 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġz 1 Ġ+= Ġz s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp 2 Ġ-= Ġ 2 Ġ* Ġdy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp 1 Ġ+= Ġ 2 Ġ* Ġdx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp 2 Ġ+= Ġ 2 Ġ* Ġdz ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoints . add ( listOf ( x 1 , Ġy 1 , Ġz 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġp 1 Ġ= Ġ 2 Ġ* Ġdy Ġ- Ġdz ĊĠĠĠĠĠĠĠ Ġvar Ġp 2 Ġ= Ġ 2 Ġ* Ġdx Ġ- Ġdz ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( z 1 Ġ!= Ġz 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġz 1 Ġ+= Ġz s ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 1 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy 1 Ġ+= Ġys ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp 1 Ġ-= Ġ 2 Ġ* Ġdz ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 2 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx 1 Ġ+= Ġxs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp 2 Ġ-= Ġ 2 Ġ* Ġdz ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp 1 Ġ+= Ġ 2 Ġ* Ġdy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp 2 Ġ+= Ġ 2 Ġ* Ġdx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoints . add ( listOf ( x 1 , Ġy 1 , Ġz 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġpoints Ċ } Ċ