もう一つのブログ

あるSEのつぶやき

Windows でとても簡単な vimscript を作成してみる

はじめに

  • 環境:Windows10(kaoriyaさんvimです)

最近、自宅PCをWindowsメインに変えたので(元々Ubuntu)、Windowsマシンに vim を導入してみました。

vimscript

vimscript を作った事がなかったのでやってみました。

こんな感じのとても簡単なコード

vimscript1
vimscript1

実行結果

vimscript2
vimscript2

【Ruby】ゲーム作り2カーソル移動+罠設置

ソースコード

カーソル移動は出来ていたので特に難しくはない。
この後は、敵、敵の移動、敵との当たり判定などだろうか。

この罠、設置数に制限を設けたり、ギルで購入できるようにするとゲームっぽくなりそうだ。

require 'io/console'

# --------------------------------------------------------------------------------
# xy
class Xy
  attr_accessor :x
  attr_accessor :y
  def initialize()
    @x = 0
    @y = 0
  end
end

# 表示
def disp(arr, k)
  s = ""
  for row in 0..23
    for col in 0..79
      #  print arr[row][col]
      s += arr[row][col]
    end
    puts s
    s = ""
    # print "\n"
  end
  puts k
end

# クリア
def clrdisp(arr)
  for row in 0..23
    for col in 0..79
      if arr[row][col] != " " and arr[row][col] != "-"
        arr[row][col] = " "
      end
    end
  end
end

# 入力
def inkey
  # k = gets.chomp
  k = STDIN.getch
end

# セット
def setdisp(xy, arr, k)
  case k
  when "j"
    xy.y += 1
  when "k"
    xy.y -= 1
  when "h"
    xy.x -= 1
  when "l"
    xy.x += 1
  end
  clrdisp(arr)
  arr[xy.y][xy.x] = "*"
  arr[xy.y][xy.x] = "-" if k == "i"
end

# --------------------------------------------------------------------------------
# x:80 * y:24
arr = Array.new(24){Array.new(80," ")}
xy = Xy.new
arr[xy.y][xy.x] = "*"
k = nil

while k != "\C-c"
  system('cls')
  disp(arr, k)
  k = inkey()
  setdisp(xy, arr, k)
end