パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Elixir探検記2 再帰でオセロ盤みたいなものを表示

2022-04-30 | コンピュータ

関数をまとめるdefmoduleの名前は先頭大文字でないとエラーになりました。

再帰で終了させるのに空の別関数を作成しています。

8行目[n|tl]は受け取った配列の先頭をn、それ以外をtlという配列に分ける技のようです。

12行目のboard_write(s,[])とすると画面↓上のwarningが発生。使っていない変数は

_にしたところ解決。

 

 

テキスト

defmodule Ot do
 def leng(x1,y1,x2,y2) do
  :math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
 end
 def put(s,p,c) do
  (String.slice s,0,p) <> c <> (String.slice s,p+1,(String.length(s)))
 end
 def board_write(s,[n|tl]) do
  IO.puts String.slice s,n*10+11,8
  board_write(s,tl)
   end
 def board_write(_,[]) do
  # noop
 end
end
s="###########abcdefgh##........##........##........##........##........##........##12345678###########"
Ot.board_write(s,[0,1,2,3,4,5,6,7])


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。