Perl コーディング初心者質問コーナー Part26
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/07/24 19:48ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/
過去ログやお勧めサイトは >>2-10
0552nobodyさん
03/08/06 21:27ID:ihwsdtLYはvalueを削除するがエントリーは残る、よって
$hash{'name'} = '';
と同じ。
undef $hash{'name'};
は未定義だからエントリーそのものがなくなる。
であってますか?
0553nobodyさん
03/08/06 21:54ID:???0557nobodyさん
03/08/06 22:20ID:???0559nobodyさん
03/08/07 07:46ID:???マニュアル *読めば* 理解できる事だが…
0560nobodyさん
03/08/07 10:17ID:MNjVgF7U$aの属性
$a = 100
$a1 = 200
$a2 = 300
$b
があるとする。このとき、$aの属性と$aの属性がぶつかったときは
なんともにないけど、$aの属性と$bの属性がぶつかったときは
条件が加えるようにしたい
それで
$aのときは条件をつけようと思ったんですけど、属性$aの定数が変数なので
条件がうまくつけられない
よい方法はないだろうか?
if = $a
だと下の2つが含まれなくなる。初心者だけど、わかりますか?
属性というのがわからない。
0563nobodyさん
03/08/07 10:29ID:MNjVgF7U属性というのは火属性は$aとする
$a1や$a2もダメージが違うだけで、火属性としたい。
$bや$cの属性も作りたいけど、ダメージ違いのものもたくさん作る。
このとき火属性と水属性がぶつかったら命中力がおちるとか
条件をつけたい
その属性を特定づける、うまい書き方ってありますか?
ダメージは相手の防御でランだムに減るので、数字は変数なので
固定させることはできないです。
0564nobodyさん
03/08/07 10:31ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
『どういう入力に対してどういう出力が出るのか書け』
0565nobodyさん
03/08/07 10:36ID:MNjVgF7U0566nobodyさん
03/08/07 10:41ID:MNjVgF7U$aは火
$a = 100
$a1 = 200
$a2 = 300
属性は水
$b = 100
$b1 = 200
$b2 = 300
if {
$火属製 = 条件
else { 水属性の条件
0567nobodyさん
03/08/07 10:44ID:MNjVgF7U$aで加えても$a1 $a2 は火属性の条件がつかないので、困る
0568nobodyさん
03/08/07 10:45ID:MNjVgF7Uとか変数になる
0569nobodyさん
03/08/07 10:48ID:???$magic[$zokusei]['lv1'] = 100;
$magic[$zokusei]['lv2'] = 200;
if($zokusei == "fire"){
if($zokusei == "water"){
水の時の処理;
}elsif($zokusei == "earth"){
土の時の処理;
}
}
俺ならこんな感じかな(手抜きでスマソ
0570569
03/08/07 10:49ID:???0571569
03/08/07 10:56ID:???phpと混ざってるし…
ちゃんと回線切って吊ってきて直してくる…
0572nobodyさん
03/08/07 10:57ID:MNjVgF7U自分のは無駄が多かったみたいです。ありがとうございます。
0574nobodyさん
03/08/07 11:07ID:MNjVgF7Uとりあえずgoogleさんでハッシュに関して調べてみるべし。
多分お前が望んでいる答えがそこにある。
$magic{$zokusei}{LV}
上記は、「魔法」の「属性」が「レベル幾つ」のものであるか、という意味だ。
プレイヤー1の魔法属性(仮に$magic_p1)とプレイヤー2の魔法属性($magic_p2)とする。
で
if($magic_p1 == "fire"){ ### プレイヤー1の属性が火の時
とかでいいんでない?
細かくはリファレンスでも見るよろし。
0576nobodyさん
03/08/07 11:16ID:MNjVgF7Uこれは問題ないですよね?
Perl のゲームに適した文法の辞書サイとを知りませんか?
0578nobodyさん
03/08/07 11:28ID:MNjVgF7Uあと、簡単なことは自分で調べたいんですが、
手元にある入門の本は不十分で、いろいろできないんですよ。
いいサイトしりませんか?
ちなみに、パール、辞書で調べると、パールスクリプトの辞書が
ひっかかって、肝心の言語辞書が全くみつからないです
0580nobodyさん
03/08/07 12:20ID:???属性もそうだが、自分用語を改めないことにはこの先もトラブルが絶えないぞ。
とりあえず先人のまとめてくれたテンプレ>>4-6を参考にすべし。
0581nobodyさん
03/08/07 12:25ID:???「ある1つの魔法に、属性や攻撃力など
複数のパラメータを設定するうまい書き方を教えてくれ」
と解釈して良いか?
↓複数のパラメータを設定する方法
$magic{'メラ'} = ['fire','100'];
$magic{'バキ'} = ['air','500'];
↓各パラメータの参照方法
print "$magic{'メラ'}[0]";
print "$magic{'バキ'}[1]";
0582nobodyさん
03/08/07 13:11ID:???0583nobodyさん
03/08/07 13:23ID:???>>581の例はハッシュの中に無名配列のリファレンスを入れた例かな。
実際はもっと複雑になると思われ。
0584nobodyさん
03/08/07 13:28ID:???ご回答よろしくお願いします。
0585nobodyさん
03/08/07 13:44ID:fxtSTKINopen IN,"file/name/to/convert";
open OUT,">file/name/to/convert.tmp";
while(<FILE>){
s/あいうえお/かきくけこ/g;
print OUT;
}
rename "file/name/to/convert.tmp","file/name/to/convert";
0586nobodyさん
03/08/07 13:57ID:2CZr0oIDopen($fh, "-|");
が開けなくて困っています。
Windows版のperlは-|は対応していないのですか?
素敵な対応方法を教えてください。
0588nobodyさん
03/08/07 14:35ID:???0590nobodyさん
03/08/07 15:13ID:???0591あぼーん
NGNG0592nobodyさん
03/08/07 16:03ID:MNjVgF7Uパンチの場合は、5回に1回はダメージ低い。
さらに5分の2の確率でミスをする。
というのを、1ターンの各攻撃を下のスクリプトに書いたが動かない
誰かこの初心者を助けてください
0593nobodyさん
03/08/07 16:03ID:MNjVgF7Uプレイヤー2は$play22の攻撃
$play11 = $sentaku1
$play22 = $sentaku1
$kik = 60
$sentaku = {
$play1 = int(rand 2)
if($play1 == 0) {
$kik
}
}
else($play1 == 1) {
$bougyo = int(rand 5)
if($bougyo =< 1){
0;
else($bougyo >= 2) {
1;
}
{
$panti = int(rand 5);
if($panti == 0) {
$panti1 = 10;
else($panti > 0) {
$panti2 = 20;
}
* $bougyo;
}
}
0594nobodyさん
03/08/07 16:32ID:???0595nobodyさん
03/08/07 16:40ID:???ちみ、潔いですね!男らしいですね!
ということで、『今回だけ特別に』解答してさしあげる。
構造化プログラミングが苦手そうなちみは、gotoを使いなさい。
0597nobodyさん
03/08/07 16:56ID:???$temp = A1 ? B :
A2 ? C ;
A3 ? D :
'';
とか、オレならやるかな…
0598nobodyさん
03/08/07 17:20ID:???0599nobodyさん
03/08/07 17:41ID:???0601nobodyさん
03/08/07 18:06ID:fDShQWtW192\.168\.0\.[24-26]
こんなイメージで正規表現使いたいのですが、勿論このままでは
とおりません。
何かいい書き方ありましたら教えてください。
0602nobodyさん
03/08/07 18:07ID:???0603601
03/08/07 18:07ID:???192\.168\.0\.[65-94]
です。
0604あぼーん
NGNG0605nobodyさん
03/08/07 18:11ID:???0608あぼーん
NGNG0609あぼーん
NGNG0610nobodyさん
03/08/07 18:55ID:???$addr="192.168.0.78";
$addr=~/192\.168\.0\.(\d+)/;
if($1>=65&&$1<=94){
0611nobodyさん
03/08/07 20:28ID:MNjVgF7Uとてもすばらしいじゃないですか
僕の芸術をケチつけられても困ります。
もっといい方法があるなら教えてくださいよ
0612あぼーん
NGNG0613nobodyさん
03/08/07 20:30ID:MNjVgF7U$play11 = $sentaku1
$play22 = $sentaku1
$kik = 60
$sentaku = {
$play1 = int(rand 2)
if($play1 == 0) {
$kik
}
}
else($play1 == 1) {
$bougyo = int(rand 5)
if($bougyo =< 1){
0;
else($bougyo >= 2) {
1;
}
{
$panti = int(rand 5);
if($panti == 0) {
$panti1 = 10;
else($panti > 0) {
$panti2 = 20;
}
* $bougyo;
}
}
0614nobodyさん
03/08/07 21:24ID:???0615nobodyさん
03/08/07 22:51ID:???とりあえず、まず文法守れや。
0616nobodyさん
03/08/08 00:55ID:???foreach $a ($b) {}
とするか
foreach ($b) {}
とするのはどっちのほうがいいのですか?
0618nobodyさん
03/08/08 01:06ID:XW8ex5pfライブラリ、jcode.plをjcodeg.plに変更し、コンバート処理を
&jcode'convert(*value, sjis);
から、
&jcode'convert(*value, "sjis", "", "z");
のように変更しました。
これで一応は半角カナも文字化けせず投稿できるようにはなったんですが、
ログファイルの更新ごとに、ログファイル先頭の部分に、
「*main::valuesjisz」
という何とも意味がわからぬ文字がついてしまうようになりました...
色々いじってみたのですが、上手くいきません。
どうしたら上手く処理出来るんでしょうか...
jocdeg.pl : ttp://jo.st45.arena.ne.jp/script/
0620nobodyさん
03/08/08 01:21ID:RBuH2Puu$play11 = $sentaku1
$play22 = $sentaku1
$kik = 60
だけど、エラーが出ます。なんでエラーでるんすか?
イフとエルスの置き方はちゃんとしてますよ。
ふざけてますね。
0621あぼーん
NGNG0622nobodyさん
03/08/08 01:23ID:???最低限文法とか調べてや。
ふざけてるのは(ry
単純文の終わりにはセミコロンがいるよ。
0623nobodyさん
03/08/08 01:25ID:???>あなたたち、これのどこがおかしいんですか?
>とてもすばらしいじゃないですか
>僕の芸術をケチつけられても困ります。
>
>もっといい方法があるなら教えてくださいよ
0624あぼーん
NGNG0625nobodyさん
03/08/08 01:31ID:???0626618
03/08/08 01:41ID:???どうもありがとうございます。
早速やってみたところ、500 Internal Server Errorが出てしまいました(~_~;)
他に手立てはないでしょうか?
よろしくお願いします。
0630nobodyさん
03/08/08 02:41ID:RBuH2Puuイフキック
エルス、パンチ(イフ、命中(イフ、5分の1で会心の一撃
(エルス、普通
(エルス、ミス
と言う様に、イフの中に、さらに3重、4重にイフやエルスを
クませることってできますよね?
あと、エラー出ても、500さーバーエラー、中見が悪いって内容の
エラーしか出ないんですけど、どこが悪いか詳細の出すことできないっすか?
自分のパソコンにアクティブ入れると、詳細出ますかね?
0631nobodyさん
03/08/08 02:43ID:???ベストでしょうか?DBは使わないとします。
要するに、行が色々なテスト名、列が生徒名となっているような典型的なテーブルです。
0633nobodyさん
03/08/08 02:56ID:???ハッシュだとキーはどうなりますか?
0634nobodyさん
03/08/08 03:01ID:???0635nobodyさん
03/08/08 03:53ID:???http://www.kt.rim.or.jp/%7ekbk/perl5.005/perllol.html
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlref.html
0636あぼーん
NGNG0637あぼーん
NGNG0638あぼーん
NGNG0639あぼーん
NGNG0640あぼーん
NGNG0641nobodyさん
03/08/08 04:32ID:RBuH2Puuイフキック
エルス、パンチ(イフ、命中(イフ、5分の1で会心の一撃
(エルス、普通
(エルス、ミス
と言う様に、イフの中に、さらに3重、4重にイフやエルスを
クませることってできますよね?
0642nobodyさん
03/08/08 04:34ID:RBuH2Puuプレイヤー1は$play11の攻撃 プレイヤー2の$play22の攻撃;
$play11 = $sentaku1;
$play22 = $sentaku1;
$kik = 60;
$sentaku = {
$play1 = int(rand 2);
if($play1 == 0) {
$kik;
}
}
else($play1 == 1) {
$bougyo = int(rand 5);
if($bougyo =< 1){
0;
else($bougyo >= 2) {
1;
}
{
$panti = int(rand 5);
if($panti == 0) {
$panti1 = 10;
else($panti > 0) {
$panti2 = 20;
}
* $bougyo;
}
}
0644nobodyさん
03/08/08 04:44ID:RBuH2Puuイフ捕まる(アメリカに核を落とす
エルス捕まらない(イフ包茎じゃない(イフ、オレは天才(オレを総理に
逆らう者北朝鮮へ
(エルス、オレは天才じゃない
(世界を滅ぼす
(エルス包茎(世界を滅ぼす
と言う様に、イフの中に、さらに3重、4重にイフやエルスを
クませることってできますよね?
0646nobodyさん
03/08/08 04:49ID:RBuH2PuuPerl/CGI
入門教室
<h1>定価2800円
税なし
0648nobodyさん
03/08/08 04:54ID:RBuH2Puuサーバーはエラーばっか出しヤガル
自分のパソコンにアクティブ入れようか考え中
0649nobodyさん
03/08/08 04:54ID:???今日、オートロードってヤツをなんと初めて知った。恥ずかしい限り。
見た瞬間感動しちまった初心者な自分。
うん、いいね。あれ。
それだけです。
0650nobodyさん
03/08/08 04:55ID:RBuH2Puuパわーアップさせたら、そうなった
0651nobodyさん
03/08/08 04:56ID:RBuH2Puu■ このスレッドは過去ログ倉庫に格納されています