ソーシャルゲームの作り方2
第2回目です。
1.文字コード
前回の復習。文字の表示はprint、またechoというコマンドで表示できます。
phpを実行するには、以下のテキストを、テキストエディタで書いて、free_drink.phpという名前で保存します。
<?php print "オレンジジュース"; echo "アップルジュース"; ?>
サーバーに上げてブラウザからアクセスすると、
オレンジジュースアップルジュースと表示されます。
http://funnystep.sakura.ne.jp/sample/free_drink.php
Firefoxでなら正しく表示されると思いますが、Chromeだと文字化けしてしまいます。
これは文字コードが原因です。
文字コードとはコンピュータ内での、日本語の表し方のことです。
SJIS,UTF8,EUCあたりが有名なものです。
日本語を数字に置き換えるけど、その数字が違うって感じですね。
言い換えるなら、日本語を表現するために英語、中国語、イタリア語みたいなもので表現しなきゃいけないわけなのです
ブラウザは英語、中国語、イタリア語を翻訳して、日本語にして表示してくれるって感じですね。
先ほど、文字表示するプログラムを実行しましたが、どれを使うかを指定しませんでした。
このため、Chromeはデフォルトの違う言語で翻訳しようとして化けたのです。
2.テキストエディタ
先程の文字コードですが、Windows標準のメモ帳だとあまり設定できません。
またメモ帳だと、機能も不十分でプログラムには向きません。
自分のつかっているのはさくらエディタです。
http://sakura-editor.sourceforge.net/
WebではUTF-8が一般的なので下の写真のように設定して保存しましょう。
また、文字コードの設定をしないとまた化けてしまうので、文字コード設定をしておきましょう。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html"; charset="utf-8"> <title>文字コード設定サンプル</title> </head> <body> <?php print "<p>オレンジジュース</p>"; echo "<p>アップルジュース</p>"; ?> </body> </html>
http://funnystep.sakura.ne.jp/sample/CodeTest.php
今度はChromeでも表示できたと思います。
phpは上のように,htmlの中に埋め込むことができます。
なので、htmlを理解している人ならすごく使いやすのでオススメですねー。
3.乱数
いままで、ソーシャルゲームと題してましたがそれっぽいものは全然作ってませんでした、
このへんでソーシャルゲームでよくあるガチャのようなものでも実装してみます。
ガチャを実装するためには、ランダムで値を返してくれる処理が必要です。
この処理はプログラムでは乱数とよばれ、専用の関数があります。
rand(1, 10);
これが乱数の関数です。
1〜10までの値をランダムに返してくれます。
<html> <head> <meta http-equiv="content-type" content="text/html"; charset="utf-8"> <title>文字コード設定サンプル</title> </head> <body> <?php print rand(1, 10); ?> </body> </html>
以下に乱数を実行するサンプルを上げておきました。
http://funnystep.sakura.ne.jp/sample/phprand.php
4.ガチャの実装
前回で説明した変数や、if文、そして今回便用した乱数を使用すれば簡単なガチャは実装できます。
以下のようになります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html"; charset="utf-8"> <title>ガチャサンプル</title> </head> <body> <?php $random_value = rand(0,5); if($random_value == 0){ print 'レアアイテム'; } else if($random_value == 1){ print 'ノーマルアイテム'; } else{ print 'ゴミアイテム'; } ?> </body> </html>
http://funnystep.sakura.ne.jp/sample/gacha.php
ポイントは、変数名でしょうか。変数名は自由に付けられるぶん、誰が見てもその意味がわかるように
しておくのが鉄則です。$random_valueはランダムな値ってことで、変数名をみれば何につかっているか分かりやすいです。
まとめ
意外に簡単にガチャを実装することができました。
実際は同じアイテムたくさん出さないような仕組み、確率を調整する仕組みなどあるはずですので
ここまで簡単ではないですが、基本はこのようなものです。
またif文、乱数の関数、変数があれば様々なプログラムを作ることが可能です。
自ら勉強するプログラマはどんどん伸びていきます。ここまでの知識で自分ができるプログラムを
どんどんつくっていくとよいでしょう〜。