プログラミングのお題スレ Part22 (446レス)
1-

427
(2): 10/08(火)17:17 ID:CS1PHEoT(1) AAS
お題:文字列を中央寄せする関数を作れ。
関数は文字列、全体の横幅(整数)、余白を埋める文字、を引数に取る。横幅分の文字列を引数の文字で作成し、その中央に引数の文字列を埋め込み戻り値として返せ。
428: 10/08(火)19:52 ID:Rq2an05y(1) AAS
py
text.center
429
(1): 警備員[Lv.12] 10/09(水)00:07 ID:O5zCFPJO(1) AAS
>>427
文字幅についてはどう考えれば良い?
エンコーディングが UTF-8 や UTF-16 だとバイト数や要素数が画面の表示幅と一致しないわけだが。
一致するような Shift-JIS だったとしても端末のフォント設定次第で表示幅が変わる。
430: 10/09(水)00:38 ID:j8RLE5Fj(1) AAS
EUCにも半角2バイト文字なんてあったりする
431: 10/09(水)00:56 ID:LtADXZKH(1) AAS
asciiの前提では
全角判定関数は切り分けるべきだし
432: 10/09(水)01:18 ID:4B3K5XUV(1/3) AAS
#ドラクエ3が超好きだったので、お題にしてみる。ただしロト3のファミコン版のドラクエな!w
"こちらの職業は勇者、戦士、空手家、僧侶、柔道家の5人がかりw
勇者から柔道家までの5人の攻撃回数が異なります。"まずは変数と確率の問題。
勇者=you戦士=sen,空手家=kara,僧侶=sou
まず勇者は1~2回攻撃、戦士は1~3回攻撃、空手は2~3回攻撃、柔道は足払いで相手を20%で麻痺させることができる。(1ターン何もできない)10%では超麻痺。(2ターン何も敵は動かない)
5%でクリティカルヒットの足払いで3ターン敵は何もできない。
柔道は敵に攻撃を加えられない分、足払いで相手を痙攣させる。
(勇者の1回分の攻撃は100〜200、20%の確率でクリティカルヒットの攻撃になることがある。
(戦士の攻撃は200〜300、20%の確率で攻撃がクリティカルヒット1回になることがある。
(空手家)空手家の攻撃は350〜500、ただし20%の確率で攻撃がクリティカルヒットとなるときがある。youはぞろ目(111とか222とか999まで)の場合はロトの剣を取得する。
省14
433: 10/09(水)01:22 ID:YvVjSPhZ(1/2) AAS
プログラミングする以前に読むのが面倒くさい
434: 10/09(水)01:43 ID:4B3K5XUV(2/3) AAS
しまった。初期化してなかったなw変数のところ。
あとsouの回復もホイミ、ベホイミ、ベホマラーの3種類だけ。
その3種類がぞろ目の時(111,222など)
そしたらベホマズンを使える。ほぼ運ゲーですw
人修羅みたいに取り巻きがいます。それはバラモスエビルと神龍です。
ある一定時期を過ぎると取り巻きが一斉にHPを連続してあげまくるので
取り巻き先に倒さないと厳しいです。取り巻き=tori種類1の取り巻き=tori0
種類2の取り巻き=tori1 5人だとなかなか倒せないから6人目の魔法剣士=maken
だれか
これをいれよう。
省15
435
(1): 10/09(水)01:45 ID:YvVjSPhZ(2/2) AAS
頑張って読んだけどこのままでは多分スレチ、ずっと条件を簡単にして出題し直してみる。

お題
勇者(HP1000)対魔王(HP5000)、先鋒勇者、サイコロ(目は1から6)を振って出た目だけ相手にダメージを与えられ、交互に攻撃しHP0となったら負け。魔王のサイコロは1個だけど勇者のサイコロはN個(N=1~10)の時の勇者の勝率を求めよ。
436: 10/09(水)02:10 ID:4B3K5XUV(3/3) AAS
# RPGの攻撃状況を再現

# モンスターと戦っている。
# 1から10のサイコロをふって、
# 6未満の場合、サイコロの目だけダメージを与えたと表示。
# 6以上の場合、クリティカルヒットとして、100のダメージを与えたと表示。
# 0の場合、防御されたとして、0ダメージを表示。

import random
hit = random.randint(0,10)
if 1 <= hit < 6:
print("スライムに、" + str(hit) + "のダメージを与えた!")
省5
437: 10/09(水)18:59 ID:Vd16zyId(1) AAS
>>429
asciiで。
438
(3): 10/11(金)05:53 ID:EzY86rdr(1/2) AAS
お題:文字列の中で1つ以上連続している空白をすべて空白4つに置換せよ。ただし正規表現は使ってはならない。

例:
"abc def ghi" -> "abc def ghi"
439: 438 10/11(金)05:54 ID:EzY86rdr(2/2) AAS
5chは空白を1つに置換するらしく例は出せない。脳内保管せよ。
440
(1): 10/11(金)20:53 ID:BlO5cFoG(1/2) AAS
>>438
perl -lpE'$_=join$"x4,split$"'
(文字列を入れる)
441: 10/11(金)20:58 ID:BlO5cFoG(2/2) AAS
>>440
splitのあとの$"は不要だった。
どちらにしてもタブも置換してまうのでアウトかも。
442: 10/11(金)22:15 ID:H5F5jhxE(1) AAS
>>438
R
外部リンク:ideone.com
443
(1): 10/12(土)01:34 ID:OB4ycmPb(1/3) AAS
>>435
こういう場合の確率の計算はよく分からなかったので実際にそれぞれ一万回ずつ戦わせてみた。
サイコロ1個で100000戦0勝
サイコロ2個で100000戦0勝
サイコロ3個で100000戦0勝
サイコロ4個で100000戦0勝
サイコロ5個で100000戦47171勝
サイコロ6個で100000戦100000勝
サイコロ7個で100000戦100000勝
サイコロ8個で100000戦100000勝
省2
444
(1): 10/12(土)01:39 ID:OB4ycmPb(2/3) AAS
>>443
#!ruby
#encoding: utf-8
$stdout=open("kekka.txt","w")
i=100000 #対戦回数
k=0 #勇者の勝ち
n=1 #勇者のサイコロの数
hpm=5000 #魔王のHP
hpy=1000 #勇者のHP
445: 10/12(土)01:39 ID:OB4ycmPb(3/3) AAS
>>444
while n<=10
j,t=0,0
while j<i
hpy-=rand(1..6)
if hpy<=0
j+=1
t,hpy,hpm=0,1000,5000
next
end
省17
446: 警備員[Lv.12] 11/05(火)05:27 ID:srt1vo+S(1) AAS
>>427
Kotlin

スペースが何個なのか分り易くするために '*' をスペースの代わりに入れて呼び出している。

外部リンク:paiza.io
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.947s*