課題に対するコード実装をベースとした複数人で使用するプログラミング学習ツールです 未経験のプログラミング言語学習支援,他者が理解しやすいコードの作成スキル向上を目的としています.
- Node.js(https://nodejs.org/ja/ )をインストールしてください
- コマンドプロンプト上で,npmコマンドを使い,path,body-parser,express,http,socket.io,fs,ip,mysqlをインストールしてください(例:
npm install path
)
- 本リポジトリのmainブランチをローカルPCの任意の場所にクローンしてください
- MySQL(https://dev.mysql.com/downloads/windows/installer/5.7.html )をインストールしてください(server Onlyでインストールしてください)
- PCアイコンを右クリックし,プロパティ⇒システムの詳細設定⇒環境変数に移動してください
- 環境変数のパスを編集し,
C:\Program Files\MySQL\MySQL Server 5.7\bin\
を新規追加してOKボタンをクリックしてください
- コマンドプロンプトを管理者として実行し,
net start mysql57
を入力してmysql57を起動してください
mysql -u root -p
を入力し,mysqlをインストールする際に設定したパスワードを入力しログインしてください
create database questions;
を入力してquestionsデータベースを作成してください
create table question(id int primary key auto_increment not null, task mediumtext, testnum int);
を入力してquestionテーブルを作成してください
create table testcase(id int primary key auto_increment not null, test1 mediumtext, test2 mediumtext, test3 mediumtext, test4 mediumtext, test5 mediumtext, test6 mediumtext, test7 mediumtext, test8 mediumtext);
を入力してtestcaseテーブルを作成してください
create table answer(id int primary key auto_increment not null, answer1 mediumtext, answer2 mediumtext, answer3 mediumtext, answer4 mediumtext, answer5 mediumtext, answer6 mediumtext, answer7 mediumtext, answer8 mediumtext);
を入力してanswerテーブルを作成してください
- OneDrive(https://oskit-my.sharepoint.com/personal/hiroshi_igaki_oit_ac_jp/_layouts/15/onedrive.aspx?FolderCTID=0x0120004A6087FF5B53FE4FB6552B4572075364&id=%2Fpersonal%2Fhiroshi%5Figaki%5Foit%5Fac%5Fjp%2FDocuments%2FIgakiLabDir%2Figakilab2022%2F%E5%8D%92%E6%A5%AD%E7%A0%94%E7%A9%B6%2F%E3%83%93%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%B2%E3%83%BC%E3%83%A0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0 )にある,西窪卒研_questionsDBデータを各テーブルに格納してください(コマンド:
insert into テーブル名(カラム,カラム・・・) values(データ,データ・・・);
) (例:insert into question(task,testnum) values("長さ 19 の文字列 s を入力します。文字列 s の形式は [英小文字 (5) 文字],[英小文字 (7) 文字],[英小文字 (5) 文字] で表されます.カンマで区切られた文字列 s を、スペースで区切られた文字列に変換してください.入力例1: happy,newyear,enjoy 出力例1: happy newyear enjoy 入力例2: haiku,atcoder,tasks 出力例2: haiku atcoder tasks", 3);
)
exit
を入力してmysqlからログアウトしてください
- app.jsを編集し,データベース接続処理部分のコードをmysqlインストールの際に設定したパスワードに変更してください
- コマンドプロンプトを管理者として実行し,
net start mysql57
を入力し,mysqlデータベースをスタートさせてください - コマンドプロンプトを起動させ,本リポジトリをクローンした任意の場所に移動し,リポジトリ内のappフォルダに移動した上で
npm start
コマンドを入力してください - コマンドを入力するとURLが表示されるので,そのURLにブラウザでアクセスすることでwebアプリを使用できます
- ユーザがブラウザをリロードするとサーバが強制的に落ちることがある
- ゲーム中に他のユーザがアプリにアクセスする,ゲーム終了後にサーバを再起動させずにアプリにアクセスしようとすると強制的にサーバが落ちるため,ゲームは一回ごとにサーバを再起動させないといけない
- アプリにアクセスし,名前を入力して参加ボタンをクリックしてください
- 右下の言語選択メニューで使用する言語を選択してください
- 参加するメンバーが全員アクセスしたことを確認し,代表者がスタートボタンをクリックするとゲームが開始されます
- 課題に対してエディタ上にコードを実装してください
- コードが課題の要求を満たしているかどうか右下のRUNボタンで実行して確かめながら実装を行ってください
- コードが課題の要求を満たしていると思ったら右下のSUBMITボタンで提出してください
- 判定の結果がクリアであれば,新しい課題が表示され,コードがひな形に戻ります.その状態からまた新しい課題のコードを実装してください
- 判定の結果がクリアでなければ,クリアしていないと通知が来るので,引き続き課題の要求を満たせるようにコードを実装してください
- 全メンバーで課題を10問クリアする,又は制限時間の1時間が経つとゲーム終了となり,リザルト画面に遷移します
- リザルト画面では,過去にゲームをプレイしたチームとクリアした数をスコアとして競うランキングを表示しています
- また,クリアしたものとゲームの最後に実装中だった課題とコードが閲覧・実行できるようになっています なお,ゲームスタートから10分ごと,又はメンバーの内の誰かが課題のコード実装を完了した1分後に実装中の課題とコードがユーザ間で強制交換が行われます コード実装が完了すると,クリアした課題とコードが全メンバー間で共有され,閲覧できるようになっています