Ruby 初心者スレッド Part 58 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2016/03/23(水) 21:16:44.36ID:6HedlyzC質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 57
http://peace.2ch.net/test/read.cgi/tech/1426165733/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0652デフォルトの名無しさん
2016/08/06(土) 04:20:54.79ID:w5zQ+Fii0653デフォルトの名無しさん
2016/08/06(土) 05:53:35.02ID:2mFu6MHmhttps://support.office.com/ja-jp/article/Excel-の仕様と制限-ca36e2dc-1f09-4620-b726-67c00b05040f
0654デフォルトの名無しさん
2016/08/06(土) 07:35:29.07ID:aQkr0mnlチュートリアルには、文字の描画、キーの判定は書いてありますが
全てのキー入力の監視はどうやってやるのかなと.....
0655uy ◆e6.oHu1j.o
2016/08/06(土) 07:40:48.99ID:TO2ybUlLDXRubyにそういうのをやってくれる関数はないよ
ていうか名前をアルファベットに限定するなら、そこまで長いコードにならないから
ユーザー入力部分を自分で書いてみれば良い
DXRubyは綺麗に小さくまとまっている良いライブラリではあるものの
このくらいはさっと書けないと、機能は結構少ないライブラリだから今後も苦労する事になるでしょう
0656uy ◆e6.oHu1j.o
2016/08/06(土) 07:45:28.31ID:TO2ybUlLこんな感じで取得できる
Window.loop do
x = Input.keys
next if x.empty?
p x
end
0657uy ◆e6.oHu1j.o
2016/08/06(土) 07:51:12.27ID:TO2ybUlLいや、DXRuby扱うのにそういう知識は全然いらない
そもそもゲームのライブラリってのは
DirectXやOpenGLの勉強をすっ飛ばして使えるようにライブラリ作者が上手くまとめてくれているもの
0658デフォルトの名無しさん
2016/08/06(土) 08:14:46.43ID:aQkr0mnlありがとうございます!
keysで取得できるんですね!
ありがとうございます!
0659デフォルトの名無しさん
2016/08/06(土) 08:28:12.52ID:aQkr0mnlアルファベット限定でいいのでRPGの名前入力をしたいんですが
ユーザーが文字入力したのをnameという変数に記録し
それを画面に表示っていうのはできますでしょうか?
何度も質問本当にすみません
0660デフォルトの名無しさん
2016/08/06(土) 09:21:45.32ID:xpLjq4a+大抵C++のソース眺めるはめになるんだけどね
0661uy ◆e6.oHu1j.o
2016/08/06(土) 10:26:06.77ID:TO2ybUlLちょっと半端な出来だけど暇だったから書いた
https://ideone.com/r48pB5
文字を打ってエンター押したら
case , when の1のほういくから、そこで文字が青色になるサンプルコード
あと使ってるdxrubyのAPIのInput.set_repeatはこれね
http://mirichi.github.io/dxruby-doc/api/Input_23set_repeat.html
0662uy ◆e6.oHu1j.o
2016/08/06(土) 10:55:37.26ID:TO2ybUlLその辺りのコードは、ゲームでいうと「シーン管理」という
簡単な方法としては
phaseって変数に値を入れて
https://ideone.com/jJPN3k
こんな風に書くのが初歩的なやり方かな
工夫していくと、この辺も奥が深いロジックになるから、
自分なりにクラス化(シーン管理クラス)とか考えてみると良い
ついでに俺に遜った敬語いらんから
2chで身を低くしても得るもの無いぞ
0663デフォルトの名無しさん
2016/08/06(土) 14:50:23.69ID:aQkr0mnlありがとうございます!
whenが9なのはなにか意味があるんでしょうか?
0664uy ◆e6.oHu1j.o
2016/08/06(土) 18:32:46.50ID:TO2ybUlLたいして意味はない
0665デフォルトの名無しさん
2016/08/06(土) 19:22:34.03ID:P6FYCdC3最大値っぽい値にしてる ってとこだろう
0666uy ◆e6.oHu1j.o
2016/08/06(土) 20:43:13.60ID:TO2ybUlLそんなところ
だけど、別にそこまで真似る必要ないからね
自分のコードの癖に突っ込むという、鋭い突っ込み
0667デフォルトの名無しさん
2016/08/06(土) 23:11:34.04ID:aQkr0mnl例えば
test1.rbとtest2.rbいう2つのプログラムファイルがあるとして
test1.rbにはtest2.rbの内容をを実行させるというのはどうやってやるのでしょうか?
自分で、クラスを定義するのでしょうか?
test2.rbの内容はWindow.draw_fontを使いたいです
0668デフォルトの名無しさん
2016/08/06(土) 23:38:13.30ID:FykwWLuaKernel#system
0669uy ◆e6.oHu1j.o
2016/08/07(日) 02:19:16.41ID:ARnnbWqntest2.rbにクラス定義して
test1.rbで
require"./test2.rb"
やれば良いんじゃね
>>668
test1.rb側でウィンドウ生成してるって前提あるだろうからそれ無理
0670デフォルトの名無しさん
2016/08/07(日) 07:23:31.37ID:bL6v3Ot9test2.rbの一行目にClass test2
と、書いて
test1.rbにrequireで読み込みます
そこから例えばAキーが押されたらtest2.rbを実行って
どうやるんでしょうか....
0671uy ◆e6.oHu1j.o
2016/08/07(日) 08:44:57.55ID:PWyfS198その辺がまだわかんない段階なら無理にファイルわけしなくていいと思うぞ
rubyで普通にコード書けば小さめのゲームなんて1ファイルで書ききれるから
test1.rb
https://ideone.com/XyyEb2
test2.rb
https://ideone.com/cAxzVK
一応サンプルとしてはこうなるけど、
0672デフォルトの名無しさん
2016/08/07(日) 08:49:56.24ID:bL6v3Ot9本当に有難うございます
自分でも、もう少しリファレンスとか見てみます!
0673uy ◆e6.oHu1j.o
2016/08/07(日) 08:58:26.20ID:PWyfS198暇なだけだからいいよ
ついでにいっとくと、dxrubyにはSpriteクラスってのがあって
このクラスで描画・移動・当たり判定が全部出来る
rubyの基礎を抑えたら>>671こういうコードじゃなくて
http://mirichi.github.io/dxruby-doc/tutorial/sprite.html
↑ここのサンプルみたいな感じで書いていったほうが良い
速度が10倍以上は違ってくるからね
俺不定期でしかこのスレ見ないけど、まぁがんばって
0674デフォルトの名無しさん
2016/08/07(日) 17:34:52.83ID:bL6v3Ot9速度についてですが
例えばifとcaseで同じ処理するとcaseのほうが早いと思うのですが
同じことをするプログラムでも、コードが短いほうが早いとかありますか?
0675デフォルトの名無しさん
2016/08/07(日) 17:58:57.41ID:T8DF/r+jそんなのあったとしても微差。考えるだけ無駄
それよりアルゴリズムのお勉強した方が早い
0676デフォルトの名無しさん
2016/08/07(日) 18:05:45.89ID:gluNCp1xまずは「Rubyはクソ遅い言語である」という事実を受け入れよう。
じゃあなんでそんなに遅い言語が使われているのかというと、
(1)多くのアプリケーションのボトルネックは言語ではなくDBアクセスやネットワークなどの外部要因だから
(2)速度が重要でないケースは結構多いから
ゲームの例で説明すると、
描画はRubyから直接手を出せないので(1)、更新処理は次の更新までに間に合いさえすればいいので(2)に該当するね
もちろん高度なゲームになると(1)や(2)の前提は成り立たなくなるけど、そのときは残念ながらRubyを捨てる時だ。
0677デフォルトの名無しさん
2016/08/07(日) 19:42:22.24ID:bL6v3Ot9なるほど.....遅い言語なのですね.....
逆に、ライブラリなどを使わず
純粋なRubyが得意とするのはどんなものなのでしょうか?
0678デフォルトの名無しさん
2016/08/07(日) 19:49:02.03ID:6muXneSj0679デフォルトの名無しさん
2016/08/07(日) 19:50:02.91ID:bL6v3Ot9そうなのですか.....
ありがとうございます!
0680デフォルトの名無しさん
2016/08/07(日) 20:27:25.95ID:T8DF/r+j遅いけれども書きやすいのがメリット
速度を求めてDirectX使いたいならふつーにC#使うのがよろし
0681デフォルトの名無しさん
2016/08/07(日) 21:07:14.31ID:bL6v3Ot9上記のコードで@@imageというのがありますよね
時々@@とか@から始まる奴があると思うのですが
あれは、何の意味があるのでしょうか?
0682デフォルトの名無しさん
2016/08/07(日) 21:08:49.00ID:6muXneSjこれよめ
http://qiita.com/mogulla3/items/cd4d6e188c34c6819709
0683デフォルトの名無しさん
2016/08/07(日) 21:12:57.96ID:bL6v3Ot9あ、すみません!
ありがとうございます!
0684デフォルトの名無しさん
2016/08/08(月) 11:25:24.34ID:WWplGsDY0685デフォルトの名無しさん
2016/08/08(月) 11:49:51.61ID:qKDY79To0686デフォルトの名無しさん
2016/08/08(月) 13:22:45.98ID:ldi7UiFIrbenv exec って使ってないんですか?
プロジェクト毎にrubyのバージョン指定するときは
rbebv exec bundle exec rails s
みたいに記述するのかと思うのですが、
ネットだと
bundle exec rails sみたいなのばかりなので、
使わないのか、省略できるのか仕組みがわからないです
0687デフォルトの名無しさん
2016/08/08(月) 15:04:46.88ID:KcW4wK3erbenv のソース嫁!
0688デフォルトの名無しさん
2016/08/08(月) 18:14:11.09ID:1QM6yHGZ掛け算には順序があります
0689デフォルトの名無しさん
2016/08/08(月) 20:31:33.35ID:+4ewFkZdこれのライフサイクルを管理するのところなんですが
self.vanish if self.x > 300
ここなのですが
これはx座標300以降のオブジェクト?は描画しないということでいいんでしょうか?
もしも合っているなら例えば250から300の間のような
座標の範囲指定はどのようにやるのでしょうか?
0690デフォルトの名無しさん
2016/08/08(月) 20:46:46.11ID:7oYgKi44じゃないかな。
てかRubyの基本的な制御構文を勉強した方が良さそう
0691デフォルトの名無しさん
2016/08/08(月) 20:49:48.09ID:qKDY79Toとかもいいかな
>>690の言うようにまずは基本的なことを勉強する必要があると思う
この程度すらわからない かつ その都度人に聞いていたんじゃ全然捗らないと思うよ
0692デフォルトの名無しさん
2016/08/08(月) 22:48:37.77ID:+4ewFkZdチュートリアルが完全に理解できるように
DXRubyじゃなくて普通のRubyをまずは勉強してみます
ほんとうにありがとうございました!
0693デフォルトの名無しさん
2016/08/09(火) 15:01:07.73ID:/QwUjUla0694デフォルトの名無しさん
2016/08/10(水) 22:31:03.23ID:uPyxj/T5http://www.tdb.co.jp/tosan/syosai/4191.html
0695デフォルトの名無しさん
2016/08/11(木) 12:06:30.15ID:v2n9djjr0696デフォルトの名無しさん
2016/08/12(金) 00:04:15.74ID:YUzYFiQucronでシェルからrubyを起動した際、requireしてるgemの一つが読み込みエラーしており困っております。
実行パスが違うからなのでしょうが、こういった場合どう解決すればよいでしょうか?
0697デフォルトの名無しさん
2016/08/12(金) 00:30:51.28ID:3GviCvck環境変数PATHも見てみ
Rubyの起動オプションなら、-Idirectory かな?
0698デフォルトの名無しさん
2016/08/14(日) 16:05:38.95ID:qlcn2KoZprintf "%s %s\n", tmp
とやると`printf': too few arguments (ArgumentError)
というエラーになるのですがPrintfに配列は渡せないのでしょうか
0699デフォルトの名無しさん
2016/08/14(日) 16:53:42.36ID:MHXGGTGkprintf "%s %s\n", *tmp
好きな方をどうぞ
0700デフォルトの名無しさん
2016/08/14(日) 18:00:18.07ID:qlcn2KoZありがとうございます
配列としてのObjectじゃなくって配列のポインタを渡すかしないといけないんですね
全てがObjectだからあかんと・・・ありがとうございました
0701デフォルトの名無しさん
2016/08/14(日) 18:03:55.65ID:MHXGGTGkprintf "%s", tmp # => ["a", "b"]
単純に%sが2つあるのにそれに対する引数が1つしかないからtoo few argumentsってなってるんだよ
0702デフォルトの名無しさん
2016/08/14(日) 18:12:25.22ID:qlcn2KoZ展開する用の指示が*なわけですよね、だから参照を渡してやればいいって話ですよね?
基本的にLLにしろなんにしろポインタは意識させない作りになっているだけでないわけじゃないですよね。
0703デフォルトの名無しさん
2016/08/14(日) 18:13:36.98ID:DMp4bkRPhttps://analytics.twitter.com/
Mechanizeを使ってログインするところまでは出来たのですが、
そこから「データをエクスポート」をクリックし、csvのダウンロードまで実行する手順がわからず行き詰まってしまいました。
これはどのように対処すればよいのでしょうか?
0704デフォルトの名無しさん
2016/08/14(日) 21:12:38.18ID:Mh5ntfj4何が困ってるのか全然分からん
もっと困ってるところを具体的に書いてくれ
0705デフォルトの名無しさん
2016/08/14(日) 21:21:33.21ID:DMp4bkRP↓のコードで、とりあえずログイン後のページまではいけていることを確認できたんですが
require 'mechanize'
agent = Mechanize.new
agent.user_agent_alias = 'Windows Mozilla'
url = "https://analytics.twitter.com/user/【ID】/tweets"
agent.get(url) do |page|
form = page.form_with(action: 'https://twitter.com/sessions')
form.fields[0].value = '【ID】'
form.fields[1].value = '【パスワード】'
p form.submit
end
ここから
・「データをエクスポート」ボタンを押す
・csvファイルをダウンロードする
まですすめる手順がわからない状況です。
jsがきかないとダメなようにも見えて、その場合Mechanize以外の手段を組み合わせる必要がありそうな感じですが・・・
0706デフォルトの名無しさん
2016/08/14(日) 22:52:24.64ID:SaGN03aV参照じゃないよ…
Rubyにはポインタの概念がそもそもないから…
0707デフォルトの名無しさん
2016/08/15(月) 17:05:00.37ID:g49T5w75一方、IronRubyは、2011年が最終リリース
0708デフォルトの名無しさん
2016/08/15(月) 17:13:52.08ID:g49T5w75tmp = ["a","b"]
配列という外側のオブジェクトが1つと、
a, b は文字列という内側のオブジェクトが2つ
コンテナには、コンテナを展開する演算子がある
0709デフォルトの名無しさん
2016/08/15(月) 17:16:50.45ID:g49T5w75Seleniumデザインパターン&ベストプラクティス、2015
OSSのブラウザ自動テストツール、Selenium WebDriver を使って、
Rubyでテストを書いた本
0710デフォルトの名無しさん
2016/08/15(月) 18:00:37.84ID:GUZ7DBqH0711デフォルトの名無しさん
2016/08/16(火) 12:24:35.22ID:Bu7T/V8i9/3までに頼む
0712デフォルトの名無しさん
2016/08/16(火) 14:36:31.71ID:laX+qstW環境はWindows7
Rubyは2.177P400
を使っています。
0713デフォルトの名無しさん
2016/08/16(火) 14:57:25.67ID:uRC9VBAFその質問で解決法がわかる人間がいたらスーパーエスパーだわw
・なにをしたいのかを具体的に
・どういうコードを書いたのか
・なんというエラーが出たのか
これぐらいは書こうなw
0714デフォルトの名無しさん
2016/08/16(火) 19:28:20.15ID:laX+qstWコードはまだ書けていない
たぶん、rubyのXMLでエラーじゃないかと思ってます。
一番最新のバージョンでもエラーが出る。
感じです
バージョンがあれば、それに越してみたいです。
0715デフォルトの名無しさん
2016/08/16(火) 19:32:20.09ID:mJ7ra1LVrequire "open-uri"
xml = open("hoge.xml")
0716デフォルトの名無しさん
2016/08/16(火) 20:32:56.86ID:h6WvQyhwrequire 'rexml/document'
require 'open-uri'
doc = REXML::Document.new open('http://example.com/example.xml')
0717デフォルトの名無しさん
2016/08/16(火) 22:35:47.88ID:uRC9VBAFコード書けてないならエラーなんて出ないと思うんですが…w
0718デフォルトの名無しさん
2016/08/20(土) 02:58:26.06ID:5fdRiIgV常識じゃないか
0719デフォルトの名無しさん
2016/08/20(土) 08:12:29.76ID:3vDaga3A0720デフォルトの名無しさん
2016/08/20(土) 18:27:12.48ID:UXRRqxP7貴方のデバッカー 奪ったLove-letter(Virus)
0721片山博文MZ ◆T6xkBnTXz7B0
2016/08/20(土) 18:50:44.26ID:ea4xV4wU0722デフォルトの名無しさん
2016/08/24(水) 01:28:41.63ID:u8a4LAYjタイトルテキストを抽出しようとしても空白の出力しか表示されません。
環境はWIN7でコマンドプロンプトで入力してます。
単純に記述ミスなら、「syntaxerror」という警告が出てくるのですが今回はそれもないです。
それかjavascriptが邪魔をしているのか・・・
ちなみにサイトは「pornhub」ですw
0723デフォルトの名無しさん
2016/08/24(水) 07:58:12.59ID:TVgqKey20724デフォルトの名無しさん
2016/08/24(水) 09:54:36.61ID:fznfg9zuディレクトリにlocalで指定するとそのディレクトリに移動しないとならないし
イメージ
/usr/local/aaa -v1.9
/usr/lical/bbb -v2.0
これをワーキングディレクトリがどこであろうと
aaaは1.9で bbbは2.0としたいのですが
0725デフォルトの名無しさん
2016/08/24(水) 10:00:03.83ID:lMhQNpu5おそらくクローラ対策に一定時間内に一定回数以上アクセスすると(?
jsでクッキーに何かを設定させて認証してるみたいね
0726デフォルトの名無しさん
2016/08/24(水) 10:10:08.13ID:lMhQNpu5環境変数 RBENV_VERSION を用いる
RBENV_VERSION = 1.9 /usr/local/aaa
これで1.9環境でaaaを実行するはず
0727デフォルトの名無しさん
2016/08/24(水) 10:12:13.68ID:fznfg9zu0728デフォルトの名無しさん
2016/08/24(水) 11:47:26.61ID:wj/dhjvFどういうこと?
0729デフォルトの名無しさん
2016/08/24(水) 13:57:51.07ID:zACxNHAZshebangに実行したいバージョンのrubyのパス書いときゃいいんじゃないの
0730デフォルトの名無しさん
2016/08/24(水) 14:45:07.43ID:9+kSfiVXこんなんじゃあかんの?
ルビーのパス/ruby コマンド
0731uy ◆e6.oHu1j.o
2016/08/25(木) 07:13:14.50ID:AFb0RLFlurl =
0732uy ◆e6.oHu1j.o
2016/08/25(木) 07:15:35.87ID:AFb0RLFlなんかソースコードの書き込みが失敗してる
もうやだ
0733デフォルトの名無しさん
2016/08/25(木) 12:11:25.26ID:i3bEIs7l確認画面が出る際、" を使うと、
サーバーで受け取った文字列の " を、エスケープしていないから、
そこで文字列の終了とみなされる
投稿する際、こちらでわざわざ、\" とエスケープしてから投稿してやれ
0734デフォルトの名無しさん
2016/08/25(木) 15:17:07.10ID:b4YfCPkDすごい、明解
頭いい
0735デフォルトの名無しさん
2016/08/25(木) 18:11:50.12ID:fNn06GGZideoneみたいなコードサービスで書けば?
0736デフォルトの名無しさん
2016/08/25(木) 19:32:47.82ID:7trdSkIV0737デフォルトの名無しさん
2016/08/25(木) 21:35:41.81ID:/4caYD7N0738デフォルトの名無しさん
2016/08/25(木) 21:43:19.34ID:KJBRfXOD0739デフォルトの名無しさん
2016/08/26(金) 10:21:27.00ID:QNADLP5Tメソッドの継承チェーンが分からないのにどうしてメソッドを持ってこれる
の?
0740デフォルトの名無しさん
2016/08/26(金) 11:08:39.63ID:3gDvt2/NでわかるけどトップレベルのActiveRecordは中身がないよ。
> ActiveRecord::Relation.ancestors
だとズラズラでるずら。
0741デフォルトの名無しさん
2016/08/26(金) 12:05:29.40ID:WnsDsp7+0742デフォルトの名無しさん
2016/08/29(月) 18:18:22.91ID:UFqwTsI30743デフォルトの名無しさん
2016/08/29(月) 18:52:16.97ID:bxq98iQ50744デフォルトの名無しさん
2016/08/29(月) 20:29:24.48ID:MIStvaWn0745デフォルトの名無しさん
2016/08/29(月) 21:20:24.86ID:EgxA66z30746デフォルトの名無しさん
2016/08/29(月) 21:44:35.95ID:5rjuE4vI0747デフォルトの名無しさん
2016/08/30(火) 02:57:33.40ID:CJ2Efr2dこのサイトを参考にして頑張っているんですが
jruby -S rake rawr:jarを実行すると
SyntaxError: /Users/kuni/.rbenv/shims/rake:3: syntax error, unexpected tSTRING_BEG
[ -n \"$RBENV_DEBUG\" ] && set -x
と出てしまい実行できないでいます。
rubyプログラムを.app化したいんです。
何が原因なのでしょうか、
他に何かいい方法があるでしょうか
0748デフォルトの名無しさん
2016/08/30(火) 03:38:25.10ID:KipFr26h0749デフォルトの名無しさん
2016/08/30(火) 04:44:33.60ID:CJ2Efr2d~/.rbenv/shims/rake の3行目[ -n "$RBENV_DEBUG" ] && set -x
の何が問題なのかわかりません。
インストールされたファイルで、""を消してみたけどダメでした。
0750デフォルトの名無しさん
2016/08/30(火) 08:47:39.64ID:KipFr26h取りあえず対処法はあるみたい
ttp://github.com/rbenv/rbenv/issues/467
0751デフォルトの名無しさん
2016/08/30(火) 08:58:41.19ID:TaoYiOttエラーメッセージは、unexpected tSTRING_BEG で終わりかい?
その後に、expecting 解答、と続かないのか?
検索するため一言一句、正確なエラーメッセージがいる
>747では、[ -n \"$RBENV_DEBUG\" ]
>749では、[ -n "$RBENV_DEBUG" ]
これは、シェルスクリプトのtest コマンドだろ。
だったら、\ は付かないから、749が正しい。[ -n "文字列" ]
だから、変数RBENV_DEBUG内に、" ' ! \ や全角文字など、
文字列ではない、よほど変なものが入っているのかも
それか、3行目より前にバグがある。
カッコの対応が取れていないか、全角空白・全角文字(日本語)を使っているとか
それか、ファイルの最後に、制御文字が入っているとか
■ このスレッドは過去ログ倉庫に格納されています