//Webプログラミング AL1 「CMSを動かそう」 wordpress 「Movable Type,concrete5, Drupal, Joomla, baser CMS, Netcommons, OpenPNE, EC Cube, Geeklog」 phpのユーザー作成はhostnameも自分でlocalhostと指定するとログインでくる。 (権限を付与しておかないとデータベースのインストール時にエラーが起きる) ・concrete5の実装時、extension fileinfoが有効でない場合 エクスプローラで..\MAMP\conf\php7.1.5\php.ini (バージョンはconcrete5参照) php.ini内部のコードを見て、extensionがいっぱいあるところを探して、 extension=php_fileinfo.dll を追加する。 その後、MAMPを再起動して再度テストを実行する。 ・https://concrete5-japan.org/help/5-6/install/gettingready/ ↑の題目の3を参考にwordpressのDB同様にDBを作っておく https://concrete5-japan.org/help/5-6/install/installation/ のようにインストールできればOK AL2 「教材を使った演習+アルファに取り組もう」 AL2のお題について,チーム演習の成果を発表資料にまとめます. 「独り言によるWebプログラミング」,「PHPとMySQLによるWebアプリ開発」,教科書2章~4章の演習で学んだ知識を応用し, ソースコードにアレンジを加えて発展させ,チームでWebアプリを作ります.テーマは何でもOKです. javascript :ユーザーのブラウザで実行 フロントエンド php :サーバーで実行 バックエンド CRUD create登録、read閲覧、update更新、delete削除 ゲット URLに値まるわかり ポスト 出てこない データ2つ送る。負担はある 「教科書付録要点のみの設定手順」 Step 1: DBを作ります。my_blogが推奨ですが他でも構いません。 Step 2: DBにmy_blog.sqlをインポートします。recipesという名前のテーブルができていることをご確認ください。 Step 3:db_config.phpのmysqlのユーザ名とパスワードを適切なものに変更してください。 Step 4:もしDB名をmy_blog以外にした場合は、phpファイルの以下のすべての命令のmy_blogの部分を適切な名前に変更してください。 $dbh = new PDO('mysql:host=localhost;dbname=my_blog;charset=utf8', $user, $pass); Step 5: index.phpにブラウザ(http://localhost/~)からアクセスしてください。 AL3 「オリジナルのウェブアプリを開発しよう」 1.AL2をより良くする? 2.新しく作る? 今回のAL2のないようについて進展あれば、ここに書いてほしいです。 //知識処理 AL1 「迷路探索AI」 「Meiro_egakudake」 「Meiro_Random」 「Meiro_BFS」 「Meiro_Yazirushi」 幅優先探索を知る. 「Meiro_AshiatoWalk」 深さ優先探索を知る. 「Meiro_AshiatoWalk_Saiki」で,再帰処理の実装を学びます.なぜスレッドが必要か,考えてみてください.ダメなパターンとして,「Meiro_AshiatoWalk_Saiki_Dame」をお渡しします.ちなみに,これは,「Meiro_AshiatoWalk」をベースとして,再帰処理を使った深さ優先探索のプログラムです. 「Meiro_AshiatoWalk_Astar」で,A*探索を知る. 「双方向探索」 初期状態・終了状態の両方から探索する 幅優先探索・反復深化探索を用いる 「反復深化探索」 探索深度を徐々に増やしながら深さ優先探索を行う 「最良優先探索法」 最初,横型探索を行い,節点が複数になった時点で各節点(状態)の評価値を計算し,評価値が最大の節点の先を優先的に探索する 「A*アルゴリズム」 f(n) = g(n) + h(n)により選択肢を評価し,評価値の高い道を開拓していきます.迷路の場合,各分かれ道に対して,「分かれ道のスコア = ゴールまでの距離(予測)+移動コスト(これまでの履歴)」で評価します. public void move(int z){ int x = marux; //キューからもらった場所 int y = maruy; //dy,dxは移動元から上下左右のどこを参照しているか表す if(block[y + dy[z]][x + dx[z]]==0){ //次の移動先が未探索かつ壁でない route_x[y+dy[z]][x+dx[z]] = x;  //移動先に移動元の座標をルート配列に入れる route_y[y+dy[z]][x+dx[z]] = y; en_q(x + dx[z],y + dy[z]);    //移動先の座標をキューに入れる oldx = x;              //移動元をold変数に入れる oldy = y; block[oldy][oldx]=999;      //移動元を探索済みにする } else{ oldx = xoldy = y; block[oldy][oldx]=999; } AL3「二人ゲームAI」