VSCodeのターミナル画面を
クリアするショートカットは
Ctrl + L
Rubyでゲームを作成できるgem DXRuby
受講生の方からインストールしても
ウィンドウが表示されない
irbでrequire 'dxruby' としてもtrueが返ってこず
エラーが表示されるとのご質問を頂いた
https://qiita.com/noanoa07/items/7df5886c619781d8d2ee
こちらのURLを参考にさせて頂いて
>DXRuby 1.4.7からは、64bit版Ruby("x64"
と書いてある版)に対応しま
>した。Devkit(MSYS2)付きでなくても、DXRubyはかまいません。
とかかれていたので インストールを試みるも
Ruby3.0.2 64bitではうまくいかなかった
そこで
私の操作1
Ruby3.0.2 64bitでうまくいかなかったので32bit版で再挑戦
Ruby+devkit2.6.9-1(x86)をダウンロード
https://rubyinstaller.org/downloads/
Ruby+Devkit 2.6.9-1 (x86)
DLしてダブルクリック→I accept the Licence →C:¥Ruby26→次へと進む
本体のインストールが終わるとMSYS2のインストール画面が自動で立ち上がる
私は1,2,3と入力してエンターキーを押した(2はアップデートなので1,3でもよかったと思う)
インストールが結構時間がかかった(ウィルスバスターが3つのファイルをブロックしたが許可をして進んだ)
スタートメニューからRuby2.6.9がインストールされたのを確認
私の操作2 Microsoftのサイトから
DirectX End-User Runtimes(June 2010)をダウンロードする。
https://www.microsoft.com/en-us/download/details.aspx?id=8109
https://qiita.com/noanoa07/items/7df5886c619781d8d2ee
↑のURLを参考にさせて頂いて順に進み
(解凍は新しいフォルダを作成してその中にきちんと解凍した方が良い、デスクトップなどは×)
32bit版Ruby(x86、i386);Nov2008_d3dx9_40_x86.cabを
をダブルクリックする。
中の d3dx9_40.dllをダブルクリックして、新しいフォルダを作成してその中に解凍する。
解凍先のフォルダに d3dx9_40.dllができる。
できた d3dx9_40.dllをコピーして
インストールしているRubyのフォルダの中の、binフォルダつまり
C:\Ruby26\binの中で貼り付け
貼り付けただけではだめだったので、DXSETUP.exeをダブルクリックしてインストール
ウィザードが起動するので次へ次へと進み、インストールを完了させる
(Ruby2.6.9のインストール前に3.0で挑戦時にC:\System32にd3dx9_40.dllは貼り付け済み)
私の操作3
スタートメニューからRuby2.6.9を開き、一覧から
Start Command Prompt With Rubyをクリック
>gem install dxrubyでジェムをインストール
>gem listと打って一覧にdxrubyがあることを確認
私の操作4
Irbで>require ‘dxruby’と打って
=>true が返ってくるのを確認できました
追記:DXRubyの一部のファイルをウィルスバスターがブロックしたので、許可をする。又
C\Ruby26のフォルダをウィルスバスターの例外フォルダとして登録した。
これをしないと実際にプログラムを実行した時にブロックされた。
まとめ:
Rubyは32bit版が良い気がする
DirectXはd3dx9_40.dllファイルをC:¥Ruby26のbinフォルダにコピーしたものを貼り付けするだけでなく
DXSETUP.exeをダブルクリックしてインストールした
ウィルスバスターが一部のファイルをブロックしたので許可
ウィするバスターの例外フォルダにC:\Ruby26を追加
これでDXRubyを使えるようになった
Ruby の繰り返し処理には
色々な方法がある
for
while
times
loop
each
upto
downto
これらの繰り返し処理の中で
ifで条件判断を行い
繰り返しから脱出するためには
break
を使う
loop do #無限ループ
n = rand(100) #0~99までの整数をランダムに一つ取り出してnに代入
puts n #nを出力
if n % 10 == 0 #もしnを10で割った余りが0と等しければ
break #ループを脱出する
end
end
実行結果は0~99までの整数が
10で割った余りが0になるまで
出力されつづけ
10で割った余りが0になったら
そこでループを脱出して
終了
Rubyでプログラムを途中で終了させたい時
exit と記述すると
それ以降のプログラムを実行せずに
プログラムを終了させることができる
irbもexitで終了することができる
注意:exit以降に例外処理がある場合
rescue節でこのエラーをキャッチされると
exit実行後の例外処理は実行される
そして、exitによるプログラム終了処理が中断され
その後のプログラムが実行されることがある
RubyのArrayクラスでは
破壊的メソッドが出てくる
例えばuniqは元の配列から重複なしの
新しい配列を返すが
uniq!は重複をなくして元の配列を上書きしてしまう
一般的に破壊的メソッドには「!」がついている事が多いが
「!」がついていない破壊的メソッドもある
Arrayクラスの「!」がつかない破壊的メソッド
pop
shift
unshift
push
<<
concat
insert
replace
delete
delete_at
clear
参考にさせて頂いたサイト↓