現在webで簡単なゲームを作成しています。
ユーザの得点を送信してもらい、動的にハイスコアランキングを表示させたいと考えています。
よくゲームセンターで最後に出てくる上位10位の得点表示のようなイメージです。
質問の内容はPHPやjqueryでこのような事が実現できる機能があるかご教授下さい。
また、参考になるサイトや書籍があれば併せてご教授頂けると助かります。
お手数おかけいたしますがよろしくお願いいたします。
PHPだけで可能です。
ちょっと一例を作ってみます。
record_maker.php
例えばhttp://www.test.comにwebゲームがあるとします。
2013年10月5日23時51分にtakashiがゲームで98点を取った時に、
http://www.test.com/record_maker.php?score=98&user=takashiにアクセスすると、
98,takashi,2013/10/5-23:51が
http://www.test.com/record.txtに記録されます。
<?php $score=$_GET['score']; $user=$_GET['user']; $s_date=date( "Y/m/d-H:i", time()); $text=$score.",".$user.",".$s_date.";"; //log.txtにスコアを保存 $fp = fopen("./record.txt", "a"); fwrite($fp, $text); fclose($fp); ?>
record_echo.php
http://www.test.com/record_echo.phpにアクセスすると、
http://www.test.com/record.txtの情報を基にランキングを表示します。
<?php // CSV ファイルを読み込み、$data配列に格納 $handle = fopen("./record.txt", "r"); while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) { $data[] = array( 'score'=>$row[0] ,'user'=>$row[1], 's_date'=>$row[2], 'place'=>$row[3] ); } fclose($handle); // 列方向の配列を得る foreach ($data as $key => $row) { $score[$key] = $row['score']; $user[$key] = $row['user']; $s_date[$key] = $row['s_date']; } // データを スコアの昇順にソートする array_multisort($score, SORT_ASC, $user, SORT_DESC, $s_date, SORT_DESC, $place, SORT_DESC, $data); // 結果を10件表示 for( $i=0 ; $i<10 ; $i++ ) { print "$score[$i] $user[$i] $s_date[$i] <br>\n"; } ?>
PHPを勉強する場合、初級者であれば、この本1冊あれば絶対に十分です。
PHPだけで可能です。
ちょっと一例を作ってみます。
record_maker.php
例えばhttp://www.test.comにwebゲームがあるとします。
2013年10月5日23時51分にtakashiがゲームで98点を取った時に、
http://www.test.com/record_maker.php?score=98&user=takashiにアクセスすると、
98,takashi,2013/10/5-23:51が
http://www.test.com/record.txtに記録されます。
<?php $score=$_GET['score']; $user=$_GET['user']; $s_date=date( "Y/m/d-H:i", time()); $text=$score.",".$user.",".$s_date.";"; //log.txtにスコアを保存 $fp = fopen("./record.txt", "a"); fwrite($fp, $text); fclose($fp); ?>
record_echo.php
http://www.test.com/record_echo.phpにアクセスすると、
http://www.test.com/record.txtの情報を基にランキングを表示します。
<?php // CSV ファイルを読み込み、$data配列に格納 $handle = fopen("./record.txt", "r"); while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) { $data[] = array( 'score'=>$row[0] ,'user'=>$row[1], 's_date'=>$row[2], 'place'=>$row[3] ); } fclose($handle); // 列方向の配列を得る foreach ($data as $key => $row) { $score[$key] = $row['score']; $user[$key] = $row['user']; $s_date[$key] = $row['s_date']; } // データを スコアの昇順にソートする array_multisort($score, SORT_ASC, $user, SORT_DESC, $s_date, SORT_DESC, $place, SORT_DESC, $data); // 結果を10件表示 for( $i=0 ; $i<10 ; $i++ ) { print "$score[$i] $user[$i] $s_date[$i] <br>\n"; } ?>
PHPを勉強する場合、初級者であれば、この本1冊あれば絶対に十分です。
PHPだけで作成可能なのですね。
また、サンプルコードまで記載頂き誠にありがとうございます。
こちらを参考にして実際にチャレンジしてみたいと思います。
お勧めの書籍も本屋で確認してみます。
PHPだけで作成可能なのですね。
2013/09/16 12:19:00また、サンプルコードまで記載頂き誠にありがとうございます。
こちらを参考にして実際にチャレンジしてみたいと思います。
お勧めの書籍も本屋で確認してみます。