質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

524閲覧

PHP ビンゴゲームでボタンを押した際に、数字がランダムに灰色になる処理を記述したい

HdNu

総合スコア32

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2020/04/30 08:45

編集2020/05/01 04:52

PHPでビンゴゲームを作っています。PHPはドットインストールで無料の入門編を終えたばかりのレベルです
スタートボタンを押すと、ランダムに数字に色がついていくといった処理を描きたいのですが、処理の書き方が全く思いつきません。考えていてもらちが明かないので、ほかの人が作ったビンゴゲームのバックエンド部分を参考にしてみたのですが、それでも処理の方法がわかりません。どのように処理を記述していけばよいでしょうか?

該当のソースコード

PHP

1<DOCTYPE heml> 2 <html lang ="ja"> 3<head> 4 <meta chaset="utf-8"> 5 <title>ビンゴゲーム!</title> 6<link rel="stylesheet" href="styles.css"> 7</head> 8<body> 9 <div id="container"> 10 <table> 11 <tr> 12 <th>B</th><th>I</th><th>N</th><th>G</th> 13 <th>O</th> 14 </tr> 15 <tr> 16 <td>1</td> 17 <td>2</td> 18 <td>48</td> 19 <td>5</td> 20 <td>69</td> 21 </tr> 22 <tr> 23 <td>5</td> 24 <td>6</td> 25 <td>7</td> 26 <td>8</td> 27 <td>9</td> 28 </tr> 29 <tr> 30 <td>7</td> 31 <td>22</td> 32 <td>SPACE</td> 33 <td>49</td> 34 <td>62</td> 35 </tr> 36 <tr> 37 <td>13</td> 38 <td>28</td> 39 <td>33</td> 40 <td>46</td> 41 <td>63</td> 42 </tr> 43 <tr> 44 <td>3</td> 45 <td>27</td> 46 <td>32</td> 47 <td>44</td> 48 <td>73</td> 49 </tr> 50</table> 51<input type="submit" name="add" value="スタート" /> 52</body>

CSS

1body { 2 font-family: Arial, sans-serif; 3 text-align: center; 4 font-size: 16px; 5} 6#btn{ 7 width: 200px; 8 height: 100px; 9 background: crimson; 10 border-radius: 50%; 11 margin: 30px auto; 12 text-align: center; 13 line-height: 100px; 14 font-weight: bold; 15} 16 17#container { 18 margin: 0 auto; 19 width: 322px; 20} 21 22td,th { 23 width: 60px; 24 height: 45px; 25} 26 27td { 28 background-color: burlywood; 29 text-align: center; 30 border-radius: 50%; 31} 32th { 33 color: rgb(9, 255, 0); 34}

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rikutennis

2020/04/30 08:49

バックエンドの処理はjsに書かれていますか?? もしそうであればjsの基本から勉強したらいいのでは、と思います。
HdNu

2020/04/30 09:10

Js部分は、何も記載しておりません。失礼いたしました
退会済みユーザー

退会済みユーザー

2020/05/02 00:22

PHPで、っておっしゃってますけど、PHPでならなければいけない理由はありますか? なければ、JSでやってしまったほうが簡単だと思うのですが。
hoshi-takanori

2020/05/02 04:24

ビンゴの処理がわからないのか、PHP でサーバーとやりとりする部分がわからないのか、たぶん両方でしょうね…。
guest

回答2

0

ベストアンサー

PHPはドットインストールで無料の入門編を終えたばかりのレベルです

がどれくらいのレベルなのか私は分からないのですが(やったことないから)

それでも処理の方法がわかりません。これはただ単に勉強不足というだけなのでしょうか?

まず前提として「作りたいものそのままを作ってる人はどこにもいない」という考えを原点とすることです。
となると自分で考えなければいけません。これは勉強不足と言うより経験不足と言えるのではないでしょうか。

例えば、ある対人スポーツで、どんなに基礎を身に付けたとしても、実戦で咄嗟に適切な判断ができるかというと、経験が必要ですし、普段の練習から実戦を意識した練習をしているかどうか、積み重ねられているかが重要です。

それと考え方は同じです(例えって本当はあまり良くないのですけど)

書いた通りにしか動かないプログラミングにおいて、「思った通りに動かせるようになる」となると相当経験を積まなければなりません。私は一応PHPが一番長くやっていますが、未だに想定の結果を一発で得られないこともありますし、一発で得られたら喜びすらあります。そういうものです。

となると、
結局自分でしっかりと考えるしかない。
「手法」に囚われるのではなく、「何」を「なぜ」作るのか。という要件定義の部分をどれだけしっかり考えるかになってきます。
なぜなら、「あるもの」は唯一ですが、「あるものを実現させるための手段」は無数にあるからです。
簡単な例で、「"Hello"と出力しましょう」と言う課題があったとして、結構やり方は沢山でてくると思います。どんな過程を経たとして「Hello」って出ればいいわけですから。

ということで、
「どうすればいいか分からない」ような質問があったときに「そこは答えがどこかに転がってるわけではなく、考えるもの」というアドバイスになることが多いです。
またはコードそのものではなく、「考え方の1つ」に焦点を当てたアドバイスですね。
「考え方の1つ」なので、それも絶対唯一ではないので注意です。
もっと簡単な考え方もあるかもしれないし、もっと難しいやり方もあるかもしれない。
どれが適切かというのは判断は難しい。「どこまでの範囲を考えるか」にもよるから。

まずは要件をきちんと整理していきましょう。
あと、73と言う大きな数字を扱ってるように見えますが、もっと少なくてもいいんじゃないですか?5くらいからで良いと思いますよ。

それよりも、もっと細かく細分化していくところからです。
それこそ「個別の処理が思いつくくらいに細分化する」こと。

下記の質問についた回答が参考になるのではないでしょうか。
teratail:プログラミングを使って作りたいものがある時の調べ方、プログラムの組み立て方

それに、PHPの配列操作の関数って沢山あるので、細分化したうえで色々試してみると良いかもしれません。


追記。
マニュアル確認して・・・だと、そもそもHTMLから怪しい部分が結構あるので、
そこは確実にされたほうが良いかと思います。

<DOCTYPE heml>

とか

<meta chaset="utf-8">

先に書いた通り、プログラムは書いた通りにしか動かないので、
正しく書かれてないと正しく動く保証はありません。それがHTMLであっても。
※ブラウザがうまいこと拾ってくれて動くように見えてるところもあるでしょうが、そこに甘えてはいけないと私は思います。

投稿2020/05/02 01:39

編集2020/05/02 02:03
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

スタートボタンを押すと、ランダムに数字に色がついていくといった処理を描きたいのですが、処理の書き方が全く思いつきません。考えていてもらちが明かないので、ほかの人が作ったビンゴゲームのバックエンド部分を参考にしてみたのですが、それでも処理の方法がわかりません。これはただ単に勉強不足というだけなのでしょうか?

要は、指定範囲内の重複しない乱数を生成して、それを出力すれば良いだけ。
なので、調べ方としては「PHP 乱数 重複しない」あたり。

投稿2020/04/30 08:52

編集2020/04/30 08:53
kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HdNu

2020/05/01 03:18 編集

rand for文などを使って乱数を生成する方法はわかりました。しかしスタートボタンを押した際に色が変わるという処理にどう結び付けていいのかわからりません。自分の中では、~をしたときに、乱数が動く仕組みを処理にしていく、 switch文と乱数処理を組み合わせると考えているのですが方向性はあってますでしょうか?
kyoya0819

2020/05/01 06:02

いろいろやり方はあると思いますが、スタートボタンを押すまでは、他のclass等で色を共通のにして置き、それをjQueryで外してPHPで出力した色にすればよいのではないでしょうか? もしも、自分が言っている意味がよくわからない場合は行ってください。 もしかしたら、質問者さんがイメージされている完成図と自分がイメージしている完成図が違うかもしれません。
HdNu

2020/05/01 10:36 編集

いろいろ模索した結果、body要素内にこのような処理が作れたのですが、変化はありませんでした。 <?php if(isset ($_POST['add'])){ echo $rand = mt_rand( 1, 73 ); } ?> 恐らく処理の組み合わせ方がいまいちわかっていないのですがいかがでしょうか?私としてはadd(スタート)を押すと、設定した乱数mt_randがランダムに変わるというイメージで記述したのですが
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問