そらとぶけもの

こわくないよ

PHPまとめ

基本的な計算

使用した関数

  • echo
  • sprintf

解説

echoは文字列や変数の内容を出力するための関数です。sprintfはフォーマットされた文字列を作成するための関数です。

例文

<?php
$number = 5;
echo "数値: " . $number;
$formatted = sprintf("フォーマットされた数値: %d", $number);
echo $formatted;
?>

日付と時間の操作

使用した関数

  • date
  • DateTime

解説

date関数は現在の日付や時間をフォーマットして取得するための関数です。DateTimeクラスは日付と時間を操作するためのオブジェクト指向の方法を提供します。

例文

<?php
echo date('Y-m-d H:i:s');
$date = new DateTime();
echo $date->format('Y-m-d H:i:s');
?>

ループ処理

使用した構文

  • for
  • while

解説

forループとwhileループは繰り返し処理を行うための構文です。

例文

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i;
}

$i = 0;
while ($i < 5) {
    echo $i;
    $i++;
}
?>

配列の操作

使用した構文

  • foreach

解説

foreachループは配列やオブジェクトの要素を順に処理するための構文です。

例文

<?php
$array = array(1, 2, 3, 4, 5);
foreach ($array as $value) {
    echo $value;
}
?>

フォームデータの処理

使用した関数

  • htmlspecialchars
  • mb_convert_kana
  • is_numeric

解説

htmlspecialcharsは特殊文字をHTMLエンティティに変換するための関数です。mb_convert_kanaは全角・半角の変換を行うための関数です。is_numericは変数が数値かどうかを判定するための関数です。

例文

<?php
$data = "<script>alert('XSS');</script>";
echo htmlspecialchars($data);

$kana = "カタカナ";
echo mb_convert_kana($kana, "KV");

$number = "123";
if (is_numeric($number)) {
    echo "数値です";
}
?>

ファイル操作

使用した関数

  • file_put_contents
  • file_get_contents

解説

file_put_contentsはファイルにデータを書き込むための関数です。file_get_contentsはファイルからデータを読み込むための関数です。

例文

<?php
file_put_contents('example.txt', 'Hello, World!');
$content = file_get_contents('example.txt');
echo $content;
?>

リダイレクト

使用した関数

  • header

解説

header関数はHTTPヘッダを送信するための関数です。リダイレクトを行う際に使用します。

例文

<?php
header('Location: http://example.com');
exit();
?>

このまとめは、ワークスペース内で使用したPHPの基本的な機能とその使用例を網羅しています。各機能の詳細な解説と例文を参考に、PHPの理解を深めてください。

PythonとPHPの対応表

PythonPHPの違いについて

主な用途の違い

Python

データ分析、AI・機械学習、科学計算、スクリプト、Webアプリ等

PHP

サーバーサイド限定

特徴

Python

処理の遅さという弱点はあるものの、学習コストの低さや、ライブラリの豊富さなどから人気を得ています。

PHP

Webに特化して設計されており、簡単にWebアプリケーションを構築できます。

PythonPHPの基本的なコード対応表

出力

PythonPHPではそもそも出力する場所が違うため、同じ項目にするのはためらいがありますが、ここでは対応するものとして扱ってみます。

Python:

print("Hello World!!")

PHPにはechoprintがありますが、echoの方が一般的で、高速であるという特徴がありますprintは戻り値を持つためわずかに遅くなります)

基本的にはechoを使用することをおすすめします。

PHP:

<?php
print "Hello World!!";
<?php
echo "Hello World!!";

短縮形式<?=PHP設定ファイル(php.ini)でshort_open_tagが有効になっている場合に利用できます。互換性を考える場合は<?php echo形式を使う方が無難です。

<?= "Hello World!!" ?>

変数の宣言

Python:

x = 10

PHP:

<?php
$x = 10;

配列の宣言

Python:

array = [1, 2, 3]

PHP:

<?php
$array = array(1, 2, 3);

連想配列(辞書的な配列)の宣言

Python:

dict = {"key1": "value1", "key2": "value2"}

PHP:

<?php
$dict = array("key1" => "value1", "key2" => "value2");

条件分岐

Python:

if x > 5:
    print("x is greater than 5")
else:
    print("x is 5 or less")

PHP:

<?php
if ($x > 5) {
    echo "x is greater than 5";
} else {
    echo "x is 5 or less";
}

繰り返し

Python:

for i in range(5):
    print(i)

PHP:

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i . "\n";
}

関数の定義

Python:

def greet(name):
    return f"Hello, {name}!"

print(greet("Alice"))

PHP:

<?php
function greet($name) {
    return "Hello, " . $name . "!";
}

echo greet("Alice");

クラスの定義

Python:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        return f"My name is {self.name}, and I am {self.age} years old."

person = Person("Alice", 30)
print(person.introduce())

PHP:

<?php
class Person {
    private $name;
    private $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function introduce() {
        return "My name is " . $this->name . ", and I am " . $this->age . " years old.";
    }
}

$person = new Person("Alice", 30);
echo $person->introduce();

Pythonではクラス属性のアクセス修飾子は明示的ではありませんが、先頭にアンダースコア_を付けることで慣習的に「プライベート属性」を示します。一方、PHPではprivate修飾子で明示的にアクセス制限を設定します。

おわりに

要望に応じて対応表を増やしていきます。

レジストリエディタを使用してファイルの新規作成を追加する方法

1.スタートメニューの検索ボックスに『regedit』と入力しレジストリエディタを開きます。

『HKEY_CLASSES_ROOT』を開きます。

2.新規作成に追加したい拡張子を右クリック→『新規(N)』→『キー(K)』の順に選択し、『ShellNew』を作成。

3.作成した『ShellNew』を右クリック→『新規(N)』→『文字列(S)』の順に選択し、 『NullFile』を作成。

4.PCを再起動するか、タスクマネージャーからエクスプローラーを再起動します。

これで空のファイルを新規作成に追加することができました!

さらにファイルの中身を追加した状態で作成することもできるようですが今回はここまで!

開花カミュのマヒが入る確率を計算する

くまです。ドラクエタクトで遊んでいます。

カミュが開花して強いと話題ですね。カミュというキャラクターはもともとヒャド属性の攻撃と、デバフを高確率で入れられるキャラクターで、今回の開花では「確率で同じとくぎがもう一度発動する特性」と「かいしんの一撃の確率UP」の組み合わせで、かいしんの一撃のロマンを狙う方向が目を惹く感じではあるのですが、デバフを入れるキャラクターとしてもかなり優秀なのでその確率をちゃんと計算してみたいと思いました。

というわけで「死神の刃」というとくぎの確率を計算したいと思います。

死神の刃

まず、基本性能のおさらいです。「死神の刃」は「高確率で毒とマヒを入れることができる」特技です。タクトにおける「高確率」は60%と言われており、毒やマヒ等倍耐性の相手にはそのまま60%、弱点だと2倍なので120%つまり確定で毒やマヒを入れられ、半減だと30%の確率になります。さて、タクトで毒は敵の動きを止められないので(蓄積ダメージも大事ですが)いったんマヒだけに注目したいと思います。

次に開花性能「二刀の極意」です。

二刀の極意

これは「ときどきとくぎが2回連続で発動する」です。タクトにおける「ときどき」は40%です。

とりあえずマヒ等倍の相手に対して計算してみましょう。まず、「死神の刃」で初撃でマヒが入る確率はそのままなので60%です。「死神の刃」が二回発動して、2回目でマヒが入る確率は 0.4*0.6=0.24 です。どちらかでマヒが入れば良く(二回は入りませんが)それらは、それぞれ独立事象なので確率を足せます。

0.6+0.24=0.84

で、等倍相手に84%の確率でマヒが入ります。これ、マヒ半減相手だと、0.3+0.12=42%です。半減でも「ときどき」入るの強いですね。

……でも、じつはこれだけじゃないんですよね。カミュは3凸性能で「死神の追撃」という特性を覚えます。

死神の追撃

これは、「自分または味方が敵をマヒまたは毒にしたとき死神の刃で追撃する」という特性です。つまりもう一回マヒにするチャンスがあります。それは初撃ないしは連撃で敵に毒を入れられたとき、です。これを加味してみます。

毒等倍のあいてであれば、計算はマヒと同じです。なので等倍相手には84%で毒がはいります。つまり84%の確率で追撃が発生します。追撃してマヒが入る確率は 0.84*0.6=0.54 なので54%。

つまり、どこかでマヒの入る確率は、初撃もしくは連撃でもマヒがはいらないし、追撃でもマヒが入らない確率を1からひけば出ます。つまり 1-(1-0.84)*(1-0.54)=0.92064 ですからだいたいどこかでマヒが入ってくれる確率は 92% となります。等倍相手でもほぼ入ると思って良いでしょう。

……さらに考える要素があります。カミュは5凸になると、マヒ成功率・毒成功率が+10%されます。

マヒ・毒成功率アップ

つまり等倍相手だと 60+10=70% の確率になります。これを加味して上の計算をし直すと 0.99372 となります。等倍相手にもほぼ100%でマヒが入れられるのはめちゃくちゃ強いですね。

これだけだと、普通に強いよね、という話になりますが、これ、半減の相手にどれくらいの確率なのかも計算してみたいと思います。

ためしに、マヒ半減、毒等倍の敵を想定してみます。

無凸1凸は毒の耐性は関係なく、マヒ半減そのままなので、確率としては 0.3+0.12=0.42 で42%くらい。3凸で追撃を期待すると、毒の倍率は等倍なので、追撃の確率はそれなりに高く、諸々計算すると 0.56616 だいたい57%くらいになります。5凸の確率UPを加味すると、0.66493と66%くらいまであがります。マヒ半減相手にこれは結構すごくないですか? マヒ半減、毒等倍は最近だと少年カミュがそうですね。あとエスタークもそうですがエスタークは奇数ターンバフ解除があるので初ターンの行動後にマヒを狙うという感じです。

ちなみに、マヒも毒も半減の相手だどうなるか計算してみましょう。3凸で0.49308、5凸で0.577465でした。半減で6割近く入れられるのであれば、これはワンチャン狙うには全然アリの数字のように思います。スライムマデュラ、メタルカイザー、ロトの血を引くもの、天雷の勇者アンルシアあたりにマヒを狙いつつうまくいけば毒入れられるのも大きいです。

まとめておきます。

マヒの入る確率

無凸 3凸 完凸
マヒ等倍・毒等倍 84% 92% 99%
マヒ半減・毒等倍 42% 57% 66%
マヒ半減・毒半減 42% 49% 58%

かいしん率もすごいですが、デバフもすごいぞっていう話でした。

ぼくは現在2凸ですが、開花チケットがもらえるタイプのガチャがそのうち来ると思ってるので3凸にはしたいですね~。ではまた。

【Minecraft 統合版】トロッコ駅の作り方解説

この記事はつばさが書いています。

↓完成したもの↓

必要な素材

装飾の分は省いています。

アイテム 個数
レッドストーン 1個
レッドストーントーチ 1個
レッドストーンブロック 1個
ディスペンサー 1個
ドロッパー 1個
ホッパー 3個
パワードレール 4個
アクティベーターレール 1個
ボタン 1個
溶岩バケツ 1個
ブロック 約1スタック

作り方

今回の装置は金ブロックの範囲内で作ります。

あらかじめレールの通るブロックを確認しておきましょう。

金ブロックの範囲を2マス掘り下げます。

画像のようにレッドストーントーチ(1)、レッドストーン(1)、ドロッパー(1)、ディスペンサー(1)を設置、ホッパー(3)をドロッパーに向けて設置します。

ドロッパーの上にディスペンサーをどちらも上向きで置いてください。

画像のようにブロックを設置します。

ブロックの置かれていないホッパーの上に溶岩(1)、溶岩を囲うようににブロックを地上から2ブロックの高さまで設置します。

ここではわかりやすいようにガラスを使っています。

ブロックで蓋をて、ボタン(1)を設置します。

ボタンの設置するブロックは不透過ブロックにしてください。

画像のようにパワードレール(3)、アクティベーターレール(1)を設置します。

アクティベーターレールは左から二番目です。

画像のようにレッドストーンブロックを設置します。

ーー以上で完成です!ーー

あとはお好みで装飾をしてみてください!

使い方

ロッコの補充の仕方

ロッコを溶岩に投げ込むか、装置に向けてトロッコを走らせます。

ホッパーやドロッパー、ディスペンサーに直接入れてもOKです!

ロッコの発射の仕方

ロッコが補充されている状態でボタンを押すとディスペンサーの上にトロッコが発射されます。

ロッコは勝手に進まないので最初は自力で走りましょう!

映画「ハリーポッターと秘密の部屋」を観た

この記事はクマが書いています。

第二章にあたる作品。かなりもりだくさんなんだけど、ちょっと個人的にはおもしろそうな要素がやたらにでてくるわりには、それらがお話しとしてつながってない印象でしたね。シーンごとには印象的なものがたくさんあるんだけど……。空飛ぶ車のカーチェイスとか、またまた出てきたクィディッチなどの映画的に映えるシーンに時間を使いすぎて説明不足になっちゃったんかなあ。

あのお調子者の小説家も狂言回しなのは分かるけど、忘れる魔法みたいなの全然関係なかったですし。あれさ、妹があやつられてひどいことしたって設定なんだから、役立たずだった小説家も役に立つじゃんってシーンに使うんじゃないのか。ハリーとマルフォイの決闘シーンが、さいごのヘビとの戦いで再現されて役に立つのかと思ったら、ハリーはあのヘビを物理で倒そうとしてますよね。蛇に襲われないように気をそらすのもただの石で息上がりばったりだし、魔法すら関係なくないですか。帽子から突然出てきた剣もなんの伏線もなくて、あとからこういう由来でしたーっていわれてもそんな都合良くでてくるのも、帽子の中から出てくるのもよくわかりませんでした。おまけにヴォルデモート、自信満々で記憶から登場してきたのに拠り所となる日記をそのまま放置して焼かれるとかあまりにもアホすぎて、敵としてあまりにも弱い感じがしませんかね。

ホグワーツの歴史に迫るあたりとても興味深いんですけどね。なんだか説明が足りてないし、ときにはご都合主義さえ感じた作品でした。たいしてあらすじもないのにやたらに長いのもちょっとね。

【くまいくらにっき】桜バイオームと奇妙な融合

この記事はくまが書いてます。

最新アップデートで桜バイオームが追加されましたね!

めちゃくちゃ楽しみにしてたんですが、ぼくはサーバを自分で立てて遊んでいるので、サーバ側に最新アップデートがやってくるのにすこしタイムラグがあったので、遊ぶことが出来たのは翌日になってからです。ちょっとズルをしてシード値からバイオームがわかるサイトを参考に、まだいちども読みこまれていない場所にネザーゲートを作成し、行ってきましたよ。

ここはとてもひろい範囲で桜バイオームになっているようで見渡す限り桜桜桜! めっちゃくちゃきれいです。

ちかくには前哨基地や村もあってみんな桜が見えるところに建物を建てたくなったのかなぁ、なんて思いましたね。

さて、そうやってはじまった新しいバージョンなのですが、バージョンアップ前の建築に戻ってしばらくして妙なことに気がつきました。なんか地形が変わってる……。いま、渓谷の斜面に塔を建てているんですが、その渓谷、中央のなんもないところに突然水源が出来て、壁みたいに水が流れているんです。こんなの前にはなかったぞ……。また、山の上の拠点に戻ってきて見渡していると、なぜか桜の樹が見えます。おかしいな、ここはすでに読みこまれている場所だから新しいバイオームはないはずじゃないのかな。

そして、きわめつけはこれ。

山の上に生える鍾乳石

なんだこれ。鍾乳石が山のあちこちから飛び出してます。ここは雪も桜も見えるけど、こんな場所バージョンアップ前にはありませんでした。

夜になってびっくり。

光源もないのに山のあちこちが光っている……!?

いったい何が起こったのでしょう。これは推測ですが、新しいバイオームが部分的に現在の世界に読みこまれて融合しちゃったんでしょうね。光源のない光は、地下に生成されたヒカリゴケが地上に出てしまって本体は消滅したが光源だけが残ったみたいなことなんじゃないかなー。昔の世界でスクショをあまり撮ってなかったので、比較できるものが一枚もないのが残念ですが、あきらかに地形が変わってしまったところがたくさんあります。すごく切り立った崖だったところがなだらかになって簡単に行き来ができるようになってしまいました。せっかく高いところに橋を架けてたのにぃ。

でもまあ、この変なことになっている世界もなかなか面白いので、そのまま遊ぶことにします。

桜以外のアップデートはこれから楽しんでいきたいと思います。