クロスワードゲームの 作り方を学ぼう/やってみよう ‐ボードゲームの動作機構‐

Slides:



Advertisements
Similar presentations
プログラミング Ⅱ 第2回 第1回(プログラミングⅠの復 習) の解説. プログラムの作り方 いきなり完全版を作るのではなく,だんだ んふくらませていきます. TicTa cToe1.
Advertisements

1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
アルゴリズムとデータ構造 第2回 線形リスト(復習).
特別課題 あまりにも優秀すぎて, 時間をもてあましている人へ.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
工学部 知能情報工学科 准教授 高 尚策 (コウ ショウサク)
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
C言語 配列 2016年 吉田研究室.
プログラミング言語としてのR 情報知能学科 白井 英俊.
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
ファーストイヤー・セミナーⅡ 第8回 データの入力.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
マルチエージェント・シミュレーション(2)
マルチエージェント・シミュレーション(2)
C言語 配列 2016年 吉田研究室.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
第8回 プログラミングⅡ 第8回
情報科学1(G1) 2016年度.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
第6章 2重ループ&配列 2重ループと配列をやります.
4-3.基本的なPHPスクリプト 2004年6月24日(木) 大北高広 01T6010F.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
プログラミング論 II 電卓,逆ポーランド記法電卓
ゲームプログラミング体験演習
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
データベース設計 第9回 Webインタフェースの作成(1)
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
§3.3 プログラミング 第10回 今日の目標 高級言語のプログラムを実行するまでの過程を示せる インタープリタの仕組みを説明できる
プログラミング 2 ファイル処理.
EVENT プログラミングのスタイル 手続き型: ある決められた場所から開始され, その後は純粋に上から下に流れて行く方式. 実行したいことを, 順番に記述してゆく. 逐次処理形式コーディングの方法である。 今までの授業(情報処理2や3)で 行ってきたプログラミングの演習 bcc32やmake 手続き型.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
プログラミング 4 記憶の割り付け.
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
前回の練習問題.
東京大学人間環境学専攻 奥田・橋本研究室 修士1年 相良 光志
デジタル画像とC言語.
プログラミング基礎B 文字列の扱い.
JavaScript プログラミング演習 - じゃんけんゲーム - 「ホームページを動的に制御したい…」
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
アルゴリズム論 (第12回) 佐々木研(情報システム構築学講座) 講師 山田敬三
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
3次元Nクイーン問題の 解の存在の検証 07-1-037-0106 前波 大貴 情報論理工学研究室 宜しくお願いします。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
統計ソフトウエアRの基礎.
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
プロジェクト演習 知能情報学部 新田直也.
Handel-Cを用いた パックマンの設計
ゲームプログラミング体験演習 :30-14:15 九州産業大学 情報科学部 米元.
ガイダンス 電子計算機 電気工学科 山本昌志 1E
プログラミング入門 電卓を作ろう・パートI!!.
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
ネットワーク・プログラミング Cプログラミングの基礎.
精密工学科プログラミング基礎 第7回資料 (11/27実施)
統合開発環境のための プログラミング言語拡張 フレームワーク
第2回 Webサーバ.
プログラミング基礎演習 第4回.
標準入出力、変数、演算子、エスケープシーケンス
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
情報処理Ⅱ 2007年12月3日(月) その1.
プログラミング 4 文字列.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
Presentation transcript:

クロスワードゲームの 作り方を学ぼう/やってみよう ‐ボードゲームの動作機構‐ クロスワードゲームの 作り方を学ぼう/やってみよう ‐ボードゲームの動作機構‐ 神奈川大学 理学部 情報科学科 後藤 智範 研究室 2015/10/24

ボードゲーム 将棋、チェス、囲碁、チェッカー、オセロ、 クロスワードゲーム、その他 のように見える 全く異なったゲーム (PCで動く)ゲームを作る側から観ると、 共通点がある 2015/7/14

ボードゲームの共通点 マス目がある 縦と横のマス目の数は同じ (3) 1つのマス目に1つの駒 抽象化=モデル化する ⇒ 行列の要素 クロスワードの場合には1文字 抽象化=モデル化する (情報科学的観点)   ⇒  行列の要素     ⇒  正方行列(K×K)   ⇒  行列の要素の定義域   2値{0, 1}、多くても3値{-1, 0, 1} 2015/7/14

盤(ボード) ⇔ 正方行列 正方行列: K × K チェッカー、オセロ: K = 8 盤(ボード) ⇔ 正方行列 正方行列:  K × K チェッカー、オセロ: K = 8 チェス: K = 8, 将棋: K = 9、碁: K = 19 クロスワード:6 ≦ K≦12?? チェッカー、          オセロ、        チェス            出典: いずれも http://ja.wikipedia.org/wiki/ 2015/7/14

実例: クロスワードゲーム 文字ピッタンⒸ 2001-2007 NBGI LTD. Webで動くクロスワードゲーム を作ってみましょう ,ALL RIGHTS RESERVED.) http://www.bandainamcogames.co.jp/cs/list/mojipittan/trial/index.php ・クロスワードゲームの変形 ・ ゲーム機、PC, Webで動く Webで動くクロスワードゲーム を作ってみましょう 最初にプログラムの設計をします 2015/7/14

プログラムの設計1 盤の大きさ6文字 ⇒ K = 6、行列: 6×6 2次元配列[6][6] 盤上の文字の有無⇒ 行列要素の値で識別               2次元配列[6][6] 盤上の文字の有無⇒ 行列要素の値で識別 無い、有る   ⇒ {0, 1}  盤上の文字の位置⇒2次元配列(行、列) 1 2 3 4 5 6 か さ に は ぬ れ 盤 行列(配列) 2015/7/14

プログラムの設計2 ゲームの進行 (b)対戦者が入力する毎に(単語の)文字総数をカウント (a) array[行][列]単語(1文字)を盤のマス目に入れる 条件: 単語(1文字)の開始位置はマス目の文字 入力された(単語)の文字の位置([行][列])の位置の値を0⇒1にする (b)対戦者が入力する毎に(単語の)文字総数をカウント ・2つの変数を用意: pa、pb ・PAが単語を入力: pa = pa + 単語の文字数 ・PBが単語を入力: pb = pb + 単語の文字数 勝敗の判定: 残りのマス目数 + PAの総入力文字数  < PBの総入力文字数           残りのマス目数 + PBの総入力文字数 < PAの総入力文字数 2015/7/14

プログラムの設計3:シミュレーション1 PAが単語「かがくしき」を入力 pa = 0 + 5 = 5 PBが単語「しゅうしょく」を入力 2 3 4 5 6 か が く し き さ に は ぬ れ 1 2 3 4 5 6 PBが単語「しゅうしょく」を入力 pb = 0 + 6 = 6 1 2 3 4 5 6 か が く し き さ ゅ に う は よ ぬ れ 1 2 3 4 5 6 2015/7/14

プログラムの設計3:シミュレーション2 ・PAが単語「にんたい」を入力 ⇒ pa = 5 + 4 = 9 1 2 3 4 5 6 か が く し き さ ゅ に う ん  は た よ ぬ い れ 1 2 3 4 5 6 ・PBが単語「がくえんさい」を入力 ⇒ pb = 6 + 6 = 12 1 2 3 4 5 6 か が く し き さ ゅ に え う ん は た よ ぬ い れ 1 2 3 4 5 6 2015/7/14

プログラムの設計3:シミュレーション3 ・PAが単語「きかんしゃ」を入力 ⇒ pa = 9 + 5 = 14 2 3 4 5 6 か が く し き さ ゅ に え う ん は た よ や ぬ い れ 1 2 3 4 5 6 ・PBが単語「くわがたむし」を入力 ⇒ pb = 12 + 6 = 18 1 2 3 4 5 6 か が く し き さ わ ゅ に え う ん た は む よ や ぬ い れ 1 2 3 4 5 6 2015/7/14

プログラムの設計3 :シミュレーション4 ・PAが単語「きり」を入力 ⇒ pa = 14 + 2 = 16 5 6 か が く し き り さ わ ゅ に え う ん た は む よ や ぬ い れ 1 2 3 4 5 6 ・PBが単語「かみ」を入力 ⇒ pb = 18 + 2 = 20 終了 1 2 3 4 5 6 か が く し き り さ わ ゅ み に え う ん た は む よ や ぬ い れ 1 2 3 4 5 6 2015/7/14

クロスワードプログラム(一部) 入力単語の位置(行、列の値)を格納しているプログラムコードの一部 2015/7/14 printf("\n残り枚数:%2d\n",Rem = count_board());/残り枚数 printf("--ターン:%d %s--\n",turn+1,i%2?"後攻":"先攻"); //ターン数 PRINTINP; while(scanf("%d %d %s",&xy,&fg,input)!=EOF){ if (!xy){break;} //テスト用 x = xy/10-1; //列 y = xy%10-1; //行 wordlen = strlen(input)/3; //文字列 store_word(&(cpos[i]),x,y,wordlen,fg,input);//格納     print_board(lowword); //ボード出力 update_score(i,input); //スコア更新 print_score(); //スコア表示 i++; turn = i/2; if (rem==0){ //残り枚数0枚なら終了 break; } 2015/7/14

Webで動くゲームの動作機構(どうなっているの) ゲームソフトウェア(プログラム)本体 + 連携機構 + Web server 連携機構: いろいろあります CGI ‐汎用プログラミング言語(C, C++) CGI ‐ ウェブスクリプト言語(PHP, Ruby) (c) Tomcat‐Java(servlet, JSP) 2015/7/14

CGI(Common Gateway Interface) 2015/7/14

入力の流れ ブラウザ(IEやFireFoxなど) URL+入力フォームのデータ WEBサーバ(Apacheなど) 標準入力+環境変数 CGIの動作機構(どうなっているの) 入力の流れ ブラウザ(IEやFireFoxなど) URL+入力フォームのデータ WEBサーバ(Apacheなど) 標準入力+環境変数 CGIプログラムを実行 2015/7/14

出力の流れ CGIプログラム 標準出力(コンソールなど) WEBサーバ(Apacheなど) CGI出力 ブラウザ(IEやFireFoxなど) 2015/7/14

情報科学科に入って何について修得できるでしょうか クロスワードゲーム: 情報科学科の科目で習得した知識で作成可能 な題材の1つ (1) ボードゲームの共通点を見つけ、モデル化する ものの見方、考え方 離散数学Ⅰ・Ⅱ、データベースシステム(2年)、オブジェクト指向プログラミング(3年) (2) ゲームの進行過程の処理手順を明確にする アルゴリズム論Ⅰ(2年)、アルゴリズム論Ⅱ(3年) (3) ゲームプログラムを設計する ソフトウエアデザイン論(3年) (4) ゲームプログラムを作る プログラミング・演習Ⅰ(1年) 、プログラミング・演習Ⅱ(2年) 情報科学実験Ⅰ(2年)、情報科学実験Ⅱ(3年) (5) Webの動作機構(CGIなど) コンピュータネットワーク(3年) 2015/7/14