下記のソースのようにマルバツゲームを作っています。
setMaruBatuの$xに横位置、$yに縦位置を入れて、$kに入れる記号の種類を指定します。0が何もない状態で、1がマルで、2がバツです。
この際、プレーヤーを交互に入れ替えて、順番じゃない人は打てないようにしたいのですが、どういったプログラムを書けば、そういったことができますでしょうか。
よろしくお願いします。
<?php
class MaruBatu{
private $board = array();
function __construct(){
for ($i=0; $i < 3; $i++) {
for($j =0; $j < 3; $j++){
$this->board[$j][$i] = 0;
}
}
}
function setMaruBatu($x, $y, $k){
if($this->board[$x][$y] == 0){
$this->board[$x][$y] = $k;
}
}
function showMaruBatu(){
for ($i=0; $i < 3; $i++) {
for($j =0; $j < 3; $j++){
print $this->board[$j][$i];
}
print '<br>';
}
}
}
?>
No.3ベストアンサー
- 回答日時:
setMaruBatuの中でどっちがsetしたか持っておいて
function setMaruBatu($x,$y,$k){
if($this->turn === $k)
return 'dame';
$this->turn = $k;
if($this->board[$x][$y] == 0){
$this->board[$x][$y] = $k;
}
}
// マルのひと
$mb->setMaruBatu(0,0,1);
// この時点でturnは1
// 本来はバツのひとだけどマルのひとがまた呼んでみる
// turn(1)===1が真になりreturn 'dame'でそれ以降は実行されない
$mb->setMaruBatu(0,1,1);
// バツの人が呼ぶと
// turn(1) ===0で偽となり配列へのセットが実装される
$mb->setMaruBatu(0,1,2);
で、turnには2が入る
このくりかえし~
No.2
- 回答日時:
自分が打った後相手の入力フェーズが終わるまでajaxなどで定期的に
状態をとりにいく必要があるでしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- TOEFL・TOEIC・英語検定 英語 文法 1 2023/02/27 14:01
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- その他(プログラミング・Web制作) python 3.10で 同じlistに同じ構文で同じデータ代入した結果が異なる現象発生 7 2022/06/18 11:08
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UTF8メールがLotus Notesで文字...
-
SQL Serverで文字コードUTF-8
-
SJIS→UTF-8変換後の文字化けに...
-
mb_strposについて予定外の結果...
-
携帯とPCにメールを送る(文字...
-
mb_regex_encodingでエンコード...
-
廣のjis変換で文字化け
-
PHPmailerでの添付ファイルの文...
-
文字列を文字コードの数値に変...
-
phpのメールフォームの完了画面...
-
文字化け変換方法
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
文字の入力で横バー上段、中断...
-
COBOLの改行
-
エスケープ文字の復帰(¥r)と...
-
改行コード(CR/LF)の設...
-
全角括弧と全角読点の間隔を狭...
-
ダブルコーテーション(
-
C++で空Enterの入力を判...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
SQL Serverで文字コードUTF-8
-
SJISで取得した半角カナをUTF-8...
-
PHPmailerでの添付ファイルの文...
-
PostgreSQLからCSV形式でエクス...
-
PHP+Postgres 「髙」が文字化け
-
UTF8メールがLotus Notesで文字...
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
PHPのsendmailでの文字化けにつ...
-
「あ」→「82A0」のようにshift-...
-
メールのCCに複数のアドレスを...
-
phpMyAdmin内での文字化け
-
mb_ereg_replace での文字変換
-
mail()で送信したメールのタイ...
-
PHP cURLでPOSTした値が文字化...
-
RSSを取得すると文字化けする。
-
全角スペースを半角スペースに変換
-
Gmailへのメール送信で文字化け
-
includeファイルの文字コードに...
-
UTC-8→SJISで文字化け
おすすめ情報