相対パスで指定出来たら便利そうですけどねだったら、HSPDecoで、Quoyleを逆コンパイルして、mapファイルを読み込めるようにしてはいかがでしょうか?調べてみたところ、HSP製のソフトらしいので。Elona(HSP製なことで有名なゲームです。)の解析にも、使われているソフトですよ。オフトピックself.fn.write()とstruct.pack()で、マップファイルの書き込みが実現できるらしいけど、エラーが出てしまうかもしれない不安があったので却下した(><)誰か、マップファイルの書き込み機能作って...。(と言うか、読み込むので精一杯...。廃止前のエラーを修正したという感じですね。本題とはあまり関係ないものの、ここも直してみたという説明でしょうか?違和感があることに気づき...どうしたのかはわかりませんが何かしら奮闘されたと理解しておきます。[/quote]はい。違和感に気づく前のコードは、以下のとおりです。ファイルのアドレスは0から始まるとばかり思っていたのですが、1から始まることに気づいて修正しました。index):print("レイヤーを読み取ります。(index-1)[/code][quote]・「二列目の配列が生成されず...」ということは一列目はきちんと配列が生成されているということでしょうか?[/quote]はい。[quote]実際に一列目だけ読み込まれたことはどうやって確認したのでしょうか?[/quote]Pycharmについているブレークポイントによるデバッグ機能で、調べました。添付している画像を見てください。ちなみに画像は1列目の7行目まで来たところです。==0ですがこれは何を期待しての条件式でしょうか?→どういう場合にTrueになるつもりで書いていますかを教えてください[/quote]これは、参照するマップが新しい列に来たときに、新しく配列を生成することを期待しての条件式です。生成されている最初の列でない、なおかつ新しく読み込まれる列のときにTrueになります。][/quote]はい。相対パスで指定出来たら便利そうですけどね[/quote]だったら、HSPDecoで、Quoyleを逆コンパイルして、mapファイルを読み込めるようにしてはいかがでしょうか?調べてみたところ、HSP製のソフトらしいので。Elona(HSP製なことで有名なゲームです。)の解析にも、使われているソフトですよ。[offtopic]self.fn.write()とstruct.pack()で、マップファイルの書き込みが実現できるらしいけど、エラーが出てしまうかもしれない不安があったので却下した(><)誰か、マップファイルの書き込み機能作って...。(と言うか、読み込むので精一杯...。複数の指摘を書くと1か所にしか反応されなさそうで不安ではありますが、keito94さんの決心を信じて指摘します。分かりました、書きますね。dataのうち、self.fn.seek(-val)が悪さをすることに気づき、なんとかself.fn.seek(-val)を取り除きました。えーと、load関数は廃止されたと以下のレスで書いてありましたが、廃止前にやったことの説明でしょうか?そうであればここは特に触れずに行きますね。本題とはあまり関係ないものの、ここも直してみたという説明でしょうか?違和感があることに気づき...どうしたのかはわかりませんが何かしら奮闘されたと理解しておきます。頭を悩ませた以下のエラーの原因もわかりました。rangeマップデータを表す配列が一列しかない上に、存在しない二列目に書き込もうとして以上のエラーが発生している模様です。解決方法は、新たに二列目の配列を作る必要がある模様です。いうかこちらが本題ですよね?ようやく本題に戻ってきて安心しました。開始時の位置を決める。map_dataですが、二列目の配列が生成されず、無効な配列を参照しているというエラーが出てしまいます。やって、二列目の配列を生成されるのでしょうか?その質問に答える前に原因と対応方針が正しいかを確認させてもらうため、いくつか質問しますね。]複数の指摘を書くと1か所にしか反応されなさそうで不安ではありますが、keito94さんの決心を信じて指摘します。id=3,19442,147109]分かりました、書きますね。data[/code]のうち、self.fn.seek(-val)が悪さをすることに気づき、なんとかself.fn.seek(-val)を取り除きました。[/quote]えーと、load関数は廃止されたと以下のレスで書いてありましたが、廃止前にやったことの説明でしょうか?そうであればここは特に触れずに行きますね。本題とはあまり関係ないものの、ここも直してみたという説明でしょうか?違和感があることに気づき...どうしたのかはわかりませんが何かしら奮闘されたと理解しておきます。id=3,19442,147109]そして、頭を悩ませた以下のエラーの原因もわかりました。range[/code]マップデータを表す配列が一列しかない上に、存在しない二列目に書き込もうとして以上のエラーが発生している模様です。解決方法は、新たに二列目の配列を作る必要がある模様です。[/quote]というかこちらが本題ですよね?ようやく本題に戻ってきて安心しました。開始時の位置を決める。map_data[/code]ですが、二列目の配列が生成されず、無効な配列を参照しているというエラーが出てしまいます。やって、二列目の配列を生成されるのでしょうか?[/quote]その質問に答える前に原因と対応方針が正しいかを確認させてもらうため、いくつか質問しますね。添付されているoutput_d.htmってマップエディタQuoyleに附属しているヘルプファイルの一部じゃないですか?それを勝手に転載するのはよくないのではと思います。勝手な転載等はしないよう心がけます...。ツッコミを入れたいところですがどうせスルーされちゃうと思うので1点のみに絞って指摘しておきます。エラーが出たからだれかデバッグしてー、直し方教えてーではデバッグにはなりませんよ。・エラーメッセージが何を意味しているか調べましたか?・発生している場所がどこかは分かりますか?・printデバッグで各パラメータを調べましたか?もし自分でデバッグにあたりやったことがあればやったことを書いておくとよいですよ。分かりました、書きますね。dataのうち、self.fn.seek(-val)が悪さをすることに気づき、なんとかself.fn.seek(-val)を取り除きました。print("レイヤーを読み取ります。(index-1)そして、頭を悩ませた以下のエラーの原因もわかりました。rangeマップデータを表す配列が一列しかない上に、存在しない二列目に書き込もうとして以上のエラーが発生している模様です。解決方法は、新たに二列目の配列を作る必要がある模様です。開始時の位置を決める。map_dataですが、二列目の配列が生成されず、無効な配列を参照しているというエラーが出てしまいます。id=3,147099]添付されているoutput_d.htmってマップエディタQuoyleに附属しているヘルプファイルの一部じゃないですか?それを勝手に転載するのはよくないのではと思います。[/quote]ごめんなさい...。勝手な転載等はしないよう心がけます...。[quote]いろいろツッコミを入れたいところですがどうせスルーされちゃうと思うので1点のみに絞って指摘しておきます。エラーが出たからだれかデバッグしてー、直し方教えてーではデバッグにはなりませんよ。・エラーメッセージが何を意味しているか調べましたか?・発生している場所がどこかは分かりますか?・printデバッグで各パラメータを調べましたか?もし自分でデバッグにあたりやったことがあればやったことを書いておくとよいですよ。[/quote]分かりました、書きますね。data[/code]のうち、self.fn.seek(-val)が悪さをすることに気づき、なんとかself.fn.seek(-val)を取り除きました。index):print("レイヤーを読み取ります。(index-1)[/code]そして、頭を悩ませた以下のエラーの原因もわかりました。range[/code]マップデータを表す配列が一列しかない上に、存在しない二列目に書き込もうとして以上のエラーが発生している模様です。解決方法は、新たに二列目の配列を作る必要がある模様です。開始時の位置を決める。map_data[/code]ですが、二列目の配列が生成されず、無効な配列を参照しているというエラーが出てしまいます。添付しているファイルはあなたの現在確認しているコードですか?違いますよねnindexが正しい値を返さない以前にエラーが発生するはずですけどもね。使用方法の誤りが色々ありますし、あなたがスルーしていた下記の件も直っていませんし(load関数そのものではなくても使い方の誤りを指摘していますよ)http://dixq.net/forum/viewtopic.php?f=3&t=19442#p147088そもそも、なぜ複数の人から指摘・回答があっても1人にしか返信をしないんでしょう?デバッグのやり方ややることについても前のトピで返信ついていますよねこのトピでも返信ついてますよね何度このやり取りを繰り返せば良いんでしょうか?添付しているファイルはあなたの現在確認しているコードですか?違いますよねnindexが正しい値を返さない以前にエラーが発生するはずですけどもね。output_d.zipの中身確認してみましたか?quoyletestなんてフォルダは入っていませんよ。ごめんなさい、ファイルの中身をよく確認すべきでした...。id=3,19442,147105]output_d.zipの中身確認してみましたか?quoyletestなんてフォルダは入っていませんよ。[/quote]ごめんなさい、ファイルの中身をよく確認すべきでした...。新しい添付ファイルはまだ確認してませんが、ひとつ言っておきます。output_d.zipの中身確認してみましたか?quoyletestなんてフォルダは入っていませんよ。新しい添付ファイルはまだ確認してませんが、ひとつ言っておきます。output_d.zipの中身確認してみましたか?quoyletestなんてフォルダは入っていませんよ。ソースコードを見ればわかるように?どこにそのようなソースコードがあるのですか?output_d.zipのquoyletestの中に入ってると思うのですが...。不適切な名前だったので添付するファイルを修正しますね。(ソースコードは少し変えてます。)今回のデバッグでわかったこと。1レイヤーのアドレスの位置は(layer-1)で表す。2流石にまずいと思い、load関数と、readByteを組み合わせた関数を作った。'int'エラーを返す。id=3,19442,147102]ソースコードを見ればわかるように?どこにそのようなソースコードがあるのですか?[/quote]output_d.zipのquoyletestの中に入ってると思うのですが...。不適切な名前だったので添付するファイルを修正しますね。(ソースコードは少し変えてます。)今回のデバッグでわかったこと。1レイヤーのアドレスの位置は(layer-1)で表す。2流石にまずいと思い、load関数と、readByteを組み合わせた関数を作った。'int'[/code]エラーを返す。2バイトのやつはリトルエンディアンですよ。(output_d.htmlを読めばわかりますが...。)keito94さんの提示したコードでビッグエンディアンとして処理しているのをそのまま書き換えたのですよ。反省したと言いながらあいかわらずトピを読み返さないので自分の書いたコードに原因があることに気付かないのでしょうかね。わたしを貶めようと目論んでいるのでしょうか。必要最低限の書き換えで済ましているのは、このような状況でもある意味keito94さんを信用してのことですが、そのような悪意を突き付けられるとは。自分を棚に上げて他人に間違いを直させる姿勢にさらに磨きがかかってますね。id=3,19442,147098]2バイトのやつはリトルエンディアンですよ。(output_d.htmlを読めばわかりますが...。)[/quote]keito94さんの提示したコードでビッグエンディアンとして処理しているのをそのまま書き換えたのですよ。反省したと言いながらあいかわらずトピを読み返さないので自分の書いたコードに原因があることに気付かないのでしょうかね。わたしを貶めようと目論んでいるのでしょうか。必要最低限の書き換えで済ましているのは、このような状況でもある意味keito94さんを信用してのことですが、そのような悪意を突き付けられるとは。自分を棚に上げて他人に間違いを直させる姿勢にさらに磨きがかかってますね。あと、前回のload関数が値を返していない件に関しても返答がありませんねload関数はソースコードを見ればわかるように都合により廃止されました。いうか、structを使う方針に変更しました。id=3,19442,147100]あと、前回のload関数が値を返していない件に関しても返答がありませんね[/quote]load関数はソースコードを見ればわかるように都合により廃止されました。いうか、structを使う方針に変更しました。2バイトのやつはリトルエンディアンですよ。(output_d.htmlを読めばわかりますが...。)さてさて、readShortと、readByteを完成させました。unpack('b',val)[0]エラー報告は内容を自分で調べて自分でデバッグしてくださいreadShortとreadByteを作りましたとありますがこれだけで動いてないですよね?使用箇所に問題があると思いますが、他の変更コードはどうなっているのですか?あと、前回のload関数が値を返していない件に関しても返答がありませんね他はasdさんが指摘されている通りなので省略します。id=3,19442,147098]2バイトのやつはリトルエンディアンですよ。(output_d.htmlを読めばわかりますが...。)さてさて、readShortと、readByteを完成させました。unpack('b',val)[0][/code][/quote]エラー報告は内容を自分で調べて自分でデバッグしてくださいreadShortとreadByteを作りましたとありますがこれだけで動いてないですよね?使用箇所に問題があると思いますが、他の変更コードはどうなっているのですか?あと、前回のload関数が値を返していない件に関しても返答がありませんね他はasdさんが指摘されている通りなので省略します。添付されているoutput_d.htmってマップエディタQuoyleに附属しているヘルプファイルの一部じゃないですか?それを勝手に転載するのはよくないのではと思います。ツッコミを入れたいところですがどうせスルーされちゃうと思うので1点のみに絞って指摘しておきます。以下のようなエラーが出ました。ボクとしては惜しい所まで来たのですが...。コード:マップの幅を獲得します。マップの高さを獲得します。マップチップの幅を獲得します。マップチップの高さを獲得します。レイヤーの数を獲得します。チップカウントを獲得します。マップチップの位置を読み取ります。last):マップチップの位置を読み取ります。マップチップの位置を読み取ります。<module>マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。1エラーが出たからだれかデバッグしてー、直し方教えてーではデバッグにはなりませんよ。・エラーメッセージが何を意味しているか調べましたか?・発生している場所がどこかは分かりますか?・printデバッグで各パラメータを調べましたか?もし自分でデバッグにあたりやったことがあればやったことを書いておくとよいですよ。添付されているoutput_d.htmってマップエディタQuoyleに附属しているヘルプファイルの一部じゃないですか?それを勝手に転載するのはよくないのではと思います。ツッコミを入れたいところですがどうせスルーされちゃうと思うので1点のみに絞って指摘しておきます。id=3,19442,147098]ですが、以下のようなエラーが出ました。ボクとしては惜しい所まで来たのですが...。[code]マップの幅を獲得します。マップの高さを獲得します。マップチップの幅を獲得します。マップチップの高さを獲得します。レイヤーの数を獲得します。チップカウントを獲得します。マップチップの位置を読み取ります。last):マップチップの位置を読み取ります。マップチップの位置を読み取ります。<module>マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。1[/code][/quote]エラーが出たからだれかデバッグしてー、直し方教えてーではデバッグにはなりませんよ。・エラーメッセージが何を意味しているか調べましたか?・発生している場所がどこかは分かりますか?・printデバッグで各パラメータを調べましたか?もし自分でデバッグにあたりやったことがあればやったことを書いておくとよいですよ。2年前2バイトのやつはリトルエンディアンですよ。(output_d.htmlを読めばわかりますが...。)さてさて、readShortと、readByteを完成させました。unpack('b',val)[0]ですが、以下のようなエラーが出ました。ボクとしては惜しい所まで来たのですが...。コード:マップの幅を獲得します。マップの高さを獲得します。マップチップの幅を獲得します。マップチップの高さを獲得します。レイヤーの数を獲得します。チップカウントを獲得します。マップチップの位置を読み取ります。last):マップチップの位置を読み取ります。マップチップの位置を読み取ります。<module>マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。1quoyletestフォルダにテストプログラムがあります。(Pygameが必要です。)見えにくいですが、pygameのウィンドウにHELLOと表示されれば成功です。あと、output_d.htmlには、使用しているマップファイルのデータが入っています。ドキュメントはよく読んだのですが、オフトピック自分の脳内だけで補完せず、やりたいことを他人に伝える。それが傲慢な態度、卒業の鍵。回2バイトのやつはリトルエンディアンですよ。(output_d.htmlを読めばわかりますが...。)さてさて、readShortと、readByteを完成させました。unpack('b',val)[0][/code]ですが、以下のようなエラーが出ました。ボクとしては惜しい所まで来たのですが...。[code]マップの幅を獲得します。マップの高さを獲得します。マップチップの幅を獲得します。マップチップの高さを獲得します。レイヤーの数を獲得します。チップカウントを獲得します。マップチップの位置を読み取ります。last):マップチップの位置を読み取ります。マップチップの位置を読み取ります。<module>マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。マップチップの位置を読み取ります。1[/code]quoyletestフォルダにテストプログラムがあります。(Pygameが必要です。)見えにくいですが、pygameのウィンドウにHELLOと表示されれば成功です。あと、output_d.htmlには、使用しているマップファイルのデータが入っています。ドキュメントはよく読んだのですが、[offtopic]自分の脳内だけで補完せず、やりたいことを他人に伝える。それが傲慢な態度、卒業の鍵。さんが書きました:ここからreadShortとかreadByteとかの関数作って置き換える流れが順当。readShortとreadByteがネイティブコード(C言語)で書かれた変数をPythonの整数に変換するというのはわかるのですが...。さんが書きました:ここからreadShortとかreadByteとかの関数作って置き換える流れが順当。readShortとreadByteがネイティブコード(C言語)で書かれた変数をPythonの整数に変換するというのはわかるのですが...。ここからreadShortとかreadByteとかの関数作って置き換える流れが順当。readShortとreadByteがネイティブコード(C言語)で書かれた変数をPythonの整数に変換するというのはわかるのですが...。それのヒントらしきものはありますか?オフトピックにだけ反応してload関数対応版について、沖さん指摘の動作確認をしたかどうかはスルーですか?動くかどうかわからないソースを載せて解決とされると、同じような問題で困っている人が参照した際に困ってしまいます。id=3,19442,147087]ここからreadShortとかreadByteとかの関数作って置き換える流れが順当。[/quote]readShortとreadByteがネイティブコード(C言語)で書かれた変数をPythonの整数に変換するというのはわかるのですが...。それのヒントらしきものはありますか?[/quote]オフトピックにだけ反応してload関数対応版について、沖さん指摘の動作確認をしたかどうかはスルーですか?動くかどうかわからないソースを載せて解決とされると、同じような問題で困っている人が参照した際に困ってしまいます。ここからreadShortとかreadByteとかの関数作って置き換える流れが順当。readShortとreadByteがネイティブコード(C言語)で書かれた変数をPythonの整数に変換するというのはわかるのですが...。id=3,19442,147087]ここからreadShortとかreadByteとかの関数作って置き換える流れが順当。[/quote]readShortとreadByteがネイティブコード(C言語)で書かれた変数をPythonの整数に変換するというのはわかるのですが...。さっき書いたコードは効率がかなり悪いことに気づいて、load関数というものを作りました。ファイルから一文字読み出す。nは読み込むファイルのオフセット。self.fn.seek(-n)オフトピック今回の教訓。最後まで確認してから解決させるべし。0もしくは正の値でなければならない(第2引数にos.SEEK_SET(デフォルト)を指定した場合と同様)他にも問題だらけなのでドキュメント確認しましょうね。以前のトピで出たprint文デバッグでも良いでしょう。id=3,19442,147078]さっき書いたコードは効率がかなり悪いことに気づいて、load関数というものを作りました。ファイルから一文字読み出す。nは読み込むファイルのオフセット。load(self,n):self.fn.seek(n)self.fn.read(1)self.fn.seek(-n)[/code][offtopic]今回の教訓。最後まで確認してから解決させるべし。0もしくは正の値でなければならない(第2引数にos.SEEK_SET(デフォルト)を指定した場合と同様)他にも問題だらけなのでドキュメント確認しましょうね。以前のトピで出たprint文デバッグでも良いでしょう。2年前オフトピックファイルの先頭から10バイトは順番に読み込むだけだしstructモジュールとかいうのを使うと複数バイトデータの変換が楽にできるらしい。マップを開いてヘッダ情報を読み込む。引数:filename(ファイルのパス。