質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

0回答

765閲覧

Ruby: Classをまるごとにセーブする方法はありますか?

退会済みユーザー

退会済みユーザー

総合スコア0

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2022/01/09 05:18

編集2022/01/09 05:44

最近、Rubyでゲームとか作ってみましたが気持ち的にはGameクラスをまるごとにセーブ/ロードができたら楽だなと思ったのでRubyでいい方法はありませんか?なかったら普通の方法はありますか?

ruby

1class Player 2 #data... 3end 4 5class Game 6 def initialize 7 #classのデータ 8 p = Player.new 9 #... 10 end 11 12 def save_data(filename) ##ファイルにデータをセーブする 13 #... 14 end 15 16 def load_data(filename) #ファイルからデータをロードする 17 #... 18 end 19 20 def start 21  #... 22 end 23end 24 25$game = Game.new 26$game.load_data("./data_file") 27$game.start

Gameクラスの中には他のクラスもあるので難しいと感じます。YAMLとMarshalを試しましたがやり方がわかりませんでした、エラーがたくさん出ました。

ゲームのライブラリーはgosuを使っていました。Gosu::ImageがMarshalのエラーが出ました。YAMLはload_dataの時エラーが出ました(多分、正しいやり方がわからないので)。

できれば、クラスをまるごとにセーブ/ロードできる方法が知りたいです。
Rubyは一週間前ぐらい本気勉強したばかりなのでまだ初心者です。

ありがとうございました 

OS: OpenSUSE Tumbleweed
Ruby version: 3.0.3
Gem version: 3.3.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/01/09 07:53

「本気勉強」で何を伝えたいのか分かりませんが、ライブラリ使われてるならライブラリで推奨されるやり方があるのでは? 通常、「オブジェクト丸ごと」という保存の仕方はしません。必要なデータを必要な分だけ(大抵はデータベースに)保存します。 Rubyに限らずある程度プログラミングをやってきた人であれば「クラスをまるごとセーブ」という必要性が不明だと思います。なぜそれができると楽だと思ったのか、もう少し要件を具体的に記載してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問