Swift電卓
今日はすることがなかったので、swiftを使って電卓みたいなものを作りました(´・ω・`)
// // main.swift // calc // // Created by RockBooker on 6/3/16. // Copyright © 2016 RockBooker. All rights reserved. // import Foundation enum Result { case Success(Int) case Error(String) } let operators: Dictionary<String, (Int, Int) -> Int> = [ // 添字の指定に応じて、関数を設定する "+": {n, m -> Int in n + m}, "-": {n, m -> Int in n - m}, "*": {n, m -> Int in n * m}, "/": {n, m -> Int in n / m}, ] let usage = "USAGE: calc {num} {+|-|*|/} {num}" func calc(op1: Int?, _ op2: Int?, with oprand: String) -> Result { if op1 != nil && op2 != nil { let n1 = op1! let n2 = op2! let calcFunction = operators[oprand]! let ans = calcFunction(n1, n2) return Result.Success(ans) } else { return Result.Error("Error!!") } } if Process.arguments.count != 4 { // 引数の数には自身を含めることに注意する print(usage) exit(0) } let op1 = Int(Process.arguments[1]) // 左辺の数 let op2 = Int(Process.arguments[3]) // 右辺の数 let oprand = Process.arguments[2] // 計算式 let result = calc(op1, op2, with: oprand) switch result { case let .Success(ans): print("ANSWER: ", ans) case let .Error(msg): print("ERROR: ", msg) }
swiftは見通し良く書けるので気に入っています。
iPhone6+, 6, 5のゲーム素材を作成する
最近iPhoneのゲームを作りたいと思って色々しているところです。
プログラミング自体はC言語から始め、Python, Ruby, C++, Scheme, java, Swiftと色々やってきてまぁ特に足りないところはないかなというところまできました。
今はイラストですね。やはり何かをデザインできなければプログラミング自体ではなにもできない。
ワコム ペンタブレット Intuos Comic S ペン&タッチ マンガ・イラスト制作用モデル ブラック CTH-490/K1
- 出版社/メーカー: ワコム
- 発売日: 2015/09/11
- メディア: Personal Computers
- この商品を含むブログを見る
できないくせに見栄でMサイズを買ったのですが、僕のパソコンmacbook airなので完全に選択ミスをしました。
マッピング(ペンタブレットの実際に使える範囲を決定)も小さくしてますし。
まぁそんなこんなでゲーム素材を作る環境が整ったのですが、さてサイズはどうすればいいのだろうかと。
調べてみると、機種ごとに異なるらしい。
iPhone 5 640×1136
iPhone 6 750×1334
iPhone 6 Plus 1242×2208
こんな感じ。
まぁiPhone4を対応させる余力はないなと思ったので5以降を対象としても三つそれぞれ必要とのこと。
そんで調べても他の人がどうやっているのかがいまいちわからない。
最初はClip studio paint開いてiPhone6 Plus用の素材を作ってからpngに保存して、
サイズをiPhone6用にしてpngにして保存してiPhone5にしてpng...てな具合でやればいいかなと思っていました。
面倒臭い‥‥
バカみたいなんで何かいい方法ないのかなーと思って調べてみると、ImageMagickという画像編集コマンドラインツールを発見。
brew install ImageMagick
としてインストールするとconvertコマンドが使えるようになる。
このコマンドのオプションで、-geometryというものがありこれで各機種のサイズを指定してやれば一発というわけである。
とまぁこんな具合で作ったスクリプトがこれ。
# Usage: [ command "picture of @3" ]
target="/Users/rockbooker/Desktop/スケッチ/"$1".png"
file1="/Users/rockbooker/Desktop/スケッチ/"$1"@1.png"
file2="/Users/rockbooker/Desktop/スケッチ/"$1"@2x.png"
file3="/Users/rockbooker/Desktop/スケッチ/"$1"@3x.png"
convert -geometry 640x1136 $target $file1
convert -geometry 750x1334 $target $file2
tmp=$target
mv $target $file3
mv $file1 $tmp
シェルスクリプトはあんまり得意じゃないのでこんなのです笑
これで楽にはなったかな。
もっと楽ちんな方法知っている方はぜひ教えてくださいm(_ _)m
以上です!!
メタプログラミングRuby
メタプログラミングとはなんなのか?
それについて知る最も分かりやすい本だと思われる。
さすがオライリー書籍あってウィットやユウモアな表現は値段に見合う満足感を与えてくれる。
この本は、プログラミング言語を多少は知っている必要はあるがrubyについての知識は必要ない。
主人公と職場の先輩のボブとのプログラミングリレーである。
Rubyにおける
クラスとは何か?
モジュールとは何か?
インスタンスとは?
クラスメソッドとインスタンスメソッドとは?
動的とはなんなのか、について余すことなく説明しており、他言語でも応用がきくかと。
僕はいまSwiftに夢中だけど、クロージャの組み立て方でRubyの事をいつも思い出している。
とてもいい本です。