トップページ⇒php
1001コメント293KB

Perl コーディング初心者質問コーナー Part26

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/07/24 19:48ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

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
049448303/08/05 20:36ID:???
>>490-493
みなさんありがとうございました。
大変参考になりました。

>>492
それを回避するには、ファイルを2つ用意し、バックアップも常に生成しておけ…
と言う事でしょうか?
0495nobodyさん03/08/05 20:58ID:???
排他制御を知らない奴はCGI作るなという事でFA。
0496nobodyさん03/08/05 21:07ID:???
Func (・∀・) Anal
0497nobodyさん03/08/05 21:40ID:???
>>496(・∀・)カエレ!!
0498nobodyさん03/08/05 22:11ID:???
> $log_fileのサイズが臨界点に達すると
どのくらいよ?
0499nobodyさん03/08/05 22:25ID:LRtAIpMc
srand(time|$$);
my $et = int(rand(9));
if($et == 3){
srand(time|$$);
$et =int(rand(2)) ;
if($et == 0) {
�@
}else{
�A
だと、全部�@になります。
2つ目の srand(time|$$); を無くすと、
正常になりますが、どうしてでしょうか?
0500nobodyさん03/08/05 22:25ID:???
>>495
排泄処理…?プロセス事故死の話だろ?

>>494が正解。
ただlogを毎回自動バックアップしてたら壊れたファイルも…ってことになるから、
その変自分のにあったうまい方法を考えておく事。

>>498
perlのメモリ管理はperl自身でやっているから、
つまり鯖によって設定が(ry
0501nobodyさん03/08/05 22:29ID:???
>>499
なんで2回も初期化してるのかは知らんけど。
randの出しかたはアルゴリズムがマシンによって違うぞ。
俺の勘では、それwin系のシステムで使ってないか?
0502あぼーんNGNG
あぼーん
0503nobodyさん03/08/05 23:06ID:???
>>500
> 排泄処理…?
おまるを用意しる!(w
0504nobodyさん03/08/05 23:34ID:???
>>499
これを動かしてみそ。

srand(time|$$);
my $base = rand;
print "base = ", $base, "\n";
srand(time|$$);
print "base*3 = ", $base*3, " rand(3) = ", rand(3), "\n";
srand(time|$$);
print "base*2 = ", $base*2, " rand(2) = ", rand(2), "\n";

しかし、srand(time|$$)って、Win系だと数列がほとんど変化しない予感。
0505あぼーんNGNG
あぼーん
0506nobodyさん03/08/06 01:09ID:???
>>505( -Д-)…
050750403/08/06 01:10ID:???
説明が無いのもなんですので。。
処理系によるかもしれませんが、大抵、srandに同じ乱数シードを与えると
randで読み出す乱数列が同じ物になります。
>>499の複数回のsrand(time|$$)で、$$(プロセスナンバー)は変化しません。
timeは一秒ごとに更新なので、これもほとんど変化しません。
つまりrandの前でsrand(time|$$)を実行することによって、(かなりの確率で)
同じ数列を読み出してることになります。

rand(n)はrand()*nと(最低でもperl5.005_03以降は)等価なので、
int(rand(9))==3が成り立ちrand()値が同じ場合、rand(2)で得られる値は
3.0/9*2=0.666..から3.999../9*2=0.888..までの値になります。
よってint(rand(2))で得られる値は常に0になります。

…多分ね。
0508nobodyさん03/08/06 09:23ID:7imIHn2W
evalについて教えてください。
パッケージ($package)のシンボルテーブルを、%stabで参照できるようにする
コードとして、赤ラクダ本に次のように書いてありました。

local(*stab) = eval("*_$package");
(*_$packageの部分は、Perl5では、*{${package}::}だと思います。)

このevalは何をしているのでしょうか? あっても、なくても同じでしょうか?
0509 ◆hMJAPH9PWA 03/08/06 09:29ID:???
>>508
perl4ではシンボリックリファレンスは使えなかったから、eval()が必要だった。
今ではわざわざeval()する必要はないね。
ついでに型グロブで別名をつける必要も無い。
my $stab_ref = \*{$package."::"};
これでシンボルテーブルへの参照を直接使えばいい。
0510nobodyさん03/08/06 10:57ID:7imIHn2W
>>509さん
どうも有り難うございます。でも、Perl5でシンボリックリファレンスを使え
ないようにして、しかもevalなしでも動いてしまうのが不思議です。

use strict 'refs';
$package = 'main';
local(*stab) = "*${package}::";
while (($key, $val) = each(%stab)) {
local(*glob) = $val;
if (defined $glob) { print "$key => $glob\n"; }
}
0511 ◆hMJAPH9PWA 03/08/06 11:44ID:???
>>510
あ、ホントだ。
多分、perl5からだと思う。
でも折角のstrict 'refs'なのに…変な仕様だね。
0512nobodyさん03/08/06 11:45ID:JjxVikEH
HP管理システムのCGIを作ろうとしてるんですが、
フォームから取り入れた情報にファイルを書き換えるコードを書いたんです。
そしたらその書き換えるファイルを開こうとしてもそのOPEN行でエラーが起こってしまうんです
どうしたらいいのでしょうか

open(FILE,"+<$fileini");

ご要望ならソースコードの一部または全部を載せますが・・・。
誰か教えてください。
0513nobodyさん03/08/06 12:55ID:???
>>1
【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
0514nobodyさん03/08/06 13:11ID:???
エラーが起きました、開けません。
だってさ。

しかも、「ご要望なら」ソースを見せますが。だってさ。
誰の要望だよ。

ちなみにそのopenは書式ミスしてないよ。
0515nobodyさん03/08/06 13:13ID:???
>>500
Perlは変数の大きさを勝手に制限するような事はしないから、
Perlの設定や、鯖の設定(もしかしてこれは資源の制限値?)には関係なく、
Perlが取れる最大のメモリが影響する。

>>498
CGIとして動かすなら、ブラウザのタイムアウトでプロセスが殺されるという限界になるはず。
0516nobodyさん03/08/06 13:15ID:???
あぁ、httpdのCGIプログラムに対するタイムアウトの方が厳しいか。普通。
0517nobodyさん03/08/06 13:19ID:???
ブラウザのタイムアウトでは鯖のプロセスが死ぬの??
0518nobodyさん03/08/06 13:40ID:???
>>517
「CGI signal タイムアウト」でググってみ。
書籍があるならsignalの章を見てもいいぞ。

て、ここperlコーディングスレじゃん....
051951203/08/06 14:37ID:JjxVikEH
すいません、なにぶんわきまえがないもので・・・

HPの諸設定の書き換えがしたくてCGIをコーディングしたんですが
フォームで設定ファイルを書き換える段階まで来て、
このOPEN行で
Unterminated <> operator at administrator.cgi line 194.
ってでるんです。194行目は open(FILE,"+<$fileini"); です。
0520あぼーんNGNG
あぼーん
052133603/08/06 14:51ID:???
>>519
+<を削除したらどう
052251903/08/06 15:03ID:JjxVikEH
>>521
それでいけるんですか!?
052351903/08/06 15:06ID:JjxVikEH
なんかエラー増えちゃいました・・・(泣)

Scalar found where operator expected at administrator.cgi line 194, at end of li
ne
syntax error at administrator.cgi line 194, near "open(FILE,"$fileini"
String found where operator expected at administrator.cgi line 201, near "print
FILE ""
(Might be a runaway multi-line "" string starting on line 194)
(Missing semicolon on previous line?)
Backslash found where operator expected at administrator.cgi line 201, near "pri
nt FILE "\"
(Do you need to predeclare print?)
syntax error at administrator.cgi line 227, near "}"
administrator.cgi had compilation errors.
0524nobodyさん03/08/06 15:08ID:???
>>508-511
local(*stab) = *{"${package}::"}; # シンボリックリファレンス
local(*stab) = "*${package}::"; # シンボリックリファレンスではない

$pkg = 'ABC';
print "*${pkg}::"; # *ABC::と表示
print eval("*${pkg}::"); # *main::ABC::と表示、何でこうなるかは不明
052533603/08/06 15:11ID:???
その行そのものは間違ってないがエラー表示で<>がおかしいといっているので
とりあえず削除してみてどうなるのか確認したかった。
どっか前の行で"を付け忘れたりとかそんなミスじゃないの。
052633603/08/06 15:19ID:???
>>519
$file ="test.txt;
open(IN, "+<$file");
これで同じエラーが出ます。
0527nobodyさん03/08/06 15:25ID:???
>>526
カッコや""なんかの対応が合ってないだろ。
エラーメッセージ行は考えずにそのルーチン内を全部見てみれ。
052851903/08/06 16:00ID:JjxVikEH
>>527
一応一通り見てみたんですけど、おかしいとこはなかったんです。

sub formset {
# フォームデータ取得
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
$query="$ENV{'QUERY_STRING'};
}
# フォームデータ復元
foreach $pair (split(/&/, $query)) {
($key, $value) = split(/=/, $pair);
# 文字のデコード
$value =~ tr/+/ /;
$value =~ s/%[0-9a-fA-F][0-9a-fA-F]/chr(hex($1))/eg;
$foem{$key} = $value;
}
# ファイル出力
open(FILE,"+<$fileini");
seek(FILE,0,0);
foreach $key (sort keys %form) {
print FILE "\$$key=\"$form{$key}\"\;\n";
}
# ファイルを閉じる
close(FILE);
}

これがこのコードの入ったサブルーチンです。
このルーチンを抜いてチェックしてみたらsyntax OKでした。
052951903/08/06 16:01ID:JjxVikEH
すいません、かなり、見づらくなってしまいました(汗)
0530nobodyさん03/08/06 16:04ID:???
$query="$ENV{'QUERY_STRING'};
0531nobodyさん03/08/06 16:06ID:???
何故か分からないが、>>506が気に入った。
0532あぼーんNGNG
あぼーん
053351903/08/06 16:20ID:JjxVikEH
ほんとだ!
今の今までまったく気がつきませんでした。

syntax OK出ました!!
ありがとうございました!
0534nobodyさん03/08/06 17:11ID:???
情報を小出しにすると解決までの道のりが遠くなる、という見本のような質問だったな。
0535nobodyさん03/08/06 17:51ID:???
うぜぇ
0536nobodyさん03/08/06 18:27ID:???
つーか括弧の対応とかクォーテーションの数を確認するスレではないんだが
0537nobodyさん03/08/06 18:34ID:???
perlの気持ちになってみると、

$query="$ENV{'QUERY_STRING'};
.....次の " を探し中....
open(FILE,"+<$fileini");

ビクッ. ∧ ∧ ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  Σ(゚Д゚;≡;゚д゚) < うおっ、 " がでてきたが、なんかすげえ所に迷い込んじまったぞ、ゴルァ!
     ./ つ つ    \______________________
  〜(_⌒ヽ ドキドキ
     )ノ `Jззз
0538nobodyさん03/08/06 18:40ID:???
>>533
悪いが、この程度も自力解決できないようだと、プログラミングは難しい。

試しに聞いてみるが、この程度のエラーが出る度に2chで何日もかけて尋ねるのか?
0539nobodyさん03/08/06 18:43ID:???
明らかに構文が正しい行でエラーが出た場合は、
>>528みたいに、前の"の対応ができてない。

EOFにエラー出る場合は、大体括弧の対応がおかしい。


このくらいは覚えれ
0540nobodyさん03/08/06 18:48ID:???
>試しに聞いてみるが、この程度のエラーが出る度に2chで何日もかけて尋ねるのか?

そういう奴が以前いたな。
0541nobodyさん03/08/06 18:50ID:???
opun(DATA,"data.txt");
で動きません。どうしてですか?
0542nobodyさん03/08/06 18:58ID:???
>>541
>>1
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
0543nobodyさん03/08/06 18:59ID:???
ファイルハンドルをDATAとして、data.txtを開きたい
Syntax errorがでました。
0544nobodyさん03/08/06 19:07ID:???
厨な質問が増えたな
0545nobodyさん03/08/06 19:30ID:???
>>543
構文エラーです。
構文を確認してください。
0546nobodyさん03/08/06 20:05ID:???
ローマ字perlというのが出来たのか?
0547nobodyさん03/08/06 20:24ID:???
>>541
わざとか?ネタか?いいかげんにしてくれ。

open

さぁ、さっさと帰れ。
0548nobodyさん03/08/06 20:59ID:???
541です。すいません、構文エラー直りました。
それと、
if(!iguzisuto "data.txtx"){処理;}
が動きません。
どうしてでしょうか。イグジストであってるはずなんですが・・・
0549nobodyさん03/08/06 21:04ID:???

     o   .  。   .  .   ,  . , o 。゚. ,゚ 。 + 。 。,゚.。
 ゚ ,   , 。 .   +  ゚   。  。゚ . ゚。, ☆ * 。゚. o.゚  。 . 。
。 .  .。    o   .. 。 ゚  ゚ , 。. o 。* 。 . o. 。 . .
        。   .   。  . .゚o 。 *. 。 .. ☆ . +. .  .
 。 .  . .   .   .  。 ゚。, ☆ ゚. + 。 ゚ ,。 . 。  , .。
    ゚  。   ゚  .  +。 ゚ * 。. , 。゚ +. 。*。 ゚.   . . .  .
 。  .   . 。 。゚. 。* 。, ´。.  ☆。。. ゚。+ 。 .。  .  。   .
  .   。  ゚ ゚。 。, .。o ☆ + ,゚。 *。. 。 。 .    。    .
 ゚ .゚ ゚  。゚ + 。. +。 * 。゚。゚., ,+ 。゚. 。 . .   ,    ,   .
゚。゚+゚`, o。。.゚*。゚ 。.゚ 。 ☆+。。゚. ° 。 .   ,      ゚    ゚
 。, .゚。 + ☆。,゚. o。 。+ 。゚.,  . ゚   ,   。     。   .   .
 ゚. o * 。゚。゚.。゚。+゚ 。 。 ゚。 ゚ 。  ゚
゚` .゚ .゚. ゚. . ゚  .  ゚  .   ,  .     .  .   。      ゚ .
 .  .     . ,     。       .           .  ,    .
      。                 ゚   .           。
 , .        .           ,       .     .
        夏だね
     。     V    ∧∧   ∧∧   <うん。夏だ
                ( :;;;;;:::)  ( :;;;;: )
.   .            /:;;;;;: |    | :;;;:ヽ
              〜(::;;;;;;:/.    |:;;;;;;: )
      ‐''"´'''"""''"`''""`"""''''''"´'''"""''"`''""""'''"''''''"`"""''''``'‐
0550nobodyさん03/08/06 21:05ID:???
いや、そりゃ8月は夏でしょ
0551nobodyさん03/08/06 21:24ID:???
ニュージーランドでは冬。とってもさむい。
0552nobodyさん03/08/06 21:27ID:ihwsdtLY
delete $hash{'name'};
はvalueを削除するがエントリーは残る、よって
$hash{'name'} = '';
と同じ。

undef $hash{'name'};
は未定義だからエントリーそのものがなくなる。

であってますか?
0553nobodyさん03/08/06 21:54ID:???
いいえ   
0554nobodyさん03/08/06 22:09ID:???
>>552
existsやってみたらすぐわかるじゃん。
ちょうど逆。
0555nobodyさん03/08/06 22:14ID:???
>>554
センセー definedだと思いますっ。
0556nobodyさん03/08/06 22:18ID:???
>>555
definedは両方偽だよ。
0557nobodyさん03/08/06 22:20ID:???
センセー ボクがまちがっていましたっ。
055855203/08/06 23:10ID:???
>>554
コマンドラインでやってみたら全く逆でした。
すません。
keyからそっくりなくすにはdeleteなんですね。
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つが含まれなくなる。初心者だけど、わかりますか?
0561 03/08/07 10:20ID:???
>>560
属性というのがわからない。
0562nobodyさん03/08/07 10:23ID:???
>>560
変な自分用語を使わないでクレ。
あと簡単な例でも書いてくれ。
0563nobodyさん03/08/07 10:29ID:MNjVgF7U
ゲームなんだけど
属性というのは火属性は$aとする
$a1や$a2もダメージが違うだけで、火属性としたい。

$bや$cの属性も作りたいけど、ダメージ違いのものもたくさん作る。

このとき火属性と水属性がぶつかったら命中力がおちるとか
条件をつけたい
その属性を特定づける、うまい書き方ってありますか?
ダメージは相手の防御でランだムに減るので、数字は変数なので
固定させることはできないです。
0564nobodyさん03/08/07 10:31ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。


    『どういう入力に対してどういう出力が出るのか書け』
0565nobodyさん03/08/07 10:36ID:MNjVgF7U
出力というよりも、入力のしかたがわからないです。
0566nobodyさん03/08/07 10:41ID:MNjVgF7U
$ = int(rand 6);

$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
100とか200にしてるけど、実際の数字は300×ランダム値−(魔法防御)
とか変数になる
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
なるほど。[$zokusei]['lv1']の方法を初めてみました。
自分のは無駄が多かったみたいです。ありがとうございます。
0573569 03/08/07 11:00ID:???
>>572
まあ、ハッシュを使ってくれという事だ…。

さて吊ってくる
0574nobodyさん03/08/07 11:07ID:MNjVgF7U
え!?まちがってるんですか!?
0575 03/08/07 11:14ID:???
>>574
とりあえずgoogleさんでハッシュに関して調べてみるべし。
多分お前が望んでいる答えがそこにある。

$magic{$zokusei}{LV}

上記は、「魔法」の「属性」が「レベル幾つ」のものであるか、という意味だ。
プレイヤー1の魔法属性(仮に$magic_p1)とプレイヤー2の魔法属性($magic_p2)とする。
で

if($magic_p1 == "fire"){ ### プレイヤー1の属性が火の時

とかでいいんでない?

細かくはリファレンスでも見るよろし。
0576nobodyさん03/08/07 11:16ID:MNjVgF7U
[$a]などを名前の後ろに属性としてばばばって書いてしまいましたが、
これは問題ないですよね?

Perl のゲームに適した文法の辞書サイとを知りませんか?
0577 03/08/07 11:18ID:???
ここは確かに初心者コーナーだが、1から10まで面倒を見てやるところじゃない。
0578nobodyさん03/08/07 11:28ID:MNjVgF7U
直しました
あと、簡単なことは自分で調べたいんですが、
手元にある入門の本は不十分で、いろいろできないんですよ。
いいサイトしりませんか?

ちなみに、パール、辞書で調べると、パールスクリプトの辞書が
ひっかかって、肝心の言語辞書が全くみつからないです
0579nobodyさん03/08/07 11:30ID:???
>>578
>>4-6
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:???
http://pc2.2ch.net/php/kako/1056/10567/1056730690.htmlの461じゃないのか?
0583nobodyさん03/08/07 13:23ID:???
ハッシュがとうとかより、もっと多次元な気がするからリファレンスだと思うんだけど。
>>581の例はハッシュの中に無名配列のリファレンスを入れた例かな。
実際はもっと複雑になると思われ。
0584nobodyさん03/08/07 13:28ID:???
ファイル abc.html に含まれる あいうえお という文字列を かきくけこ に変換して上書き保存したい場合はどう記述すればいいんでしょうか?
ご回答よろしくお願いします。
0585nobodyさん03/08/07 13:44ID:fxtSTKIN
#!/path/to/perl

open 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:2CZr0oID
FreeBSDのみでしか動作確認ができていないperl-cgiをANHTTPD+ActivePerlで動かしたいけど、
open($fh, "-|");
が開けなくて困っています。
Windows版のperlは-|は対応していないのですか?
素敵な対応方法を教えてください。
0587nobodyさん03/08/07 14:11ID:???
>>586
perldoc -f open は読んだかい?
0588nobodyさん03/08/07 14:35ID:???
マックやウィンドウズでは使えないっすよ
0589nobodyさん03/08/07 15:12ID:2CZr0oID
>>587 >>588
サンクスコ
0590nobodyさん03/08/07 15:13ID:???
さげるの忘れてますた
0591あぼーんNGNG
あぼーん
0592nobodyさん03/08/07 16:03ID:MNjVgF7U
ゲームで、対戦で、攻撃はパンチとキック、どちらかは2分の1
パンチの場合は、5回に1回はダメージ低い。
さらに5分の2の確率でミスをする。

というのを、1ターンの各攻撃を下のスクリプトに書いたが動かない
誰かこの初心者を助けてください
0593nobodyさん03/08/07 16:03ID:MNjVgF7U
プレイヤー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;
}
}
■ このスレッドは過去ログ倉庫に格納されています