おもしろい旭川のIT活動
2014/5/5
LOCAL学生部 GWイベント
自己紹介
• H N:たいこーぼー (@DdffXx)
• 活動:Androidアプリ開発、競技プログラミング
• 言語:C言語、Java
今日のお話
• 旭川のIT活動の紹介
• U-16旭川プログラミングコンテストの話
• CHaserの紹介
• まとめ
旭川のIT活動
• 旭川オープンソースコミュニティ(AOSC)
• ゆるい勉強会@旭川
• U-16 旭川プログラミングコンテスト
AOSCに所属する人たちがいろんな形で活動してます!っ
て感じが旭川のIT活動って感じになるかな(某先生)
U-16旭川プロコンの説明
思考と達成が未来へ!! 
 パソコンやプログラミングが好きな16歳以下の学生達に、 自分の
腕試しをするための場を提供することにより、 ITに対する興味を深め
てもらい、将来のITエンジニア養成につなげる!
コンテストの内容
競技部門
!
作品部門
!
教材部門
競技部門
 主催者が用意した対戦型ゲーム
プラットフォーム(CHaser)上で
動作するゲームプログラムを作成
し、 総当たり戦もしくはトーナ
メント方式で競技会を開催する。
作品部門
 コンピュータグラフィック(静止画、動画、アニメーション)、
Webページ、自作のプログラムなど、 自由に作成したデジタル作品を
審査員が評価する。(審査員、審査内容、審査方法については後日発
表)
教材部門
 去年から新設の部門。 中学校の技術の時間に作成するロボットカー
(ライントレース)を使い、公開競技を行う。 今年(?)から正式部
門の予定。
CHaser #とは
CHaser
• フィールド上のクールCとホットHが対戦
します。
• フィールド上に置かれたアイテムを集めな
がら敵を追いかけます。
• メソッドは、移動命令・ブロック配置命令・
フィールド探索命令など計16通りあります。
• ブロックに当たると負けになります。
• サンプルプログラムやプログラムを簡単に
作るための部品はダウンロードできます。
http://www.zenjouken.com/?page_id=517
まとめると
 予め用意された行動用メソッドを使ってアイテムを回収しつつ敵を
追いかけるAIを作る。
勝敗条件
• ① 相手を探し出し相手の上にブロックを置いたとき。置いた側を勝ちとする (こ
のときアイテム数は勝敗に影響を持たない)。
• ② ①の条件を満たすことなく競技が終了したときは、取得したアイテム数が多い
ほうを勝ちとする。アイテムが同数の場合は引き分けとする。
• ただし、次の状態になった場合は①②にかかわらず負けとなる。
• ③ 相手にブロックを置かれたことにより、上下左右がブロックで囲まれたとき。
• ④ 自らブロックを置くことにより、上下左右がブロックで囲まれたとき。
• ⑤ 自らブロックの上へ移動したとき 。(自分の行動でブロック上へ移動)
まとめると
• 自機とブロックが重なったら負け(敵と重なるのはおk)
• 自機の周り(上下左右)がブロックで囲まれたら負け
• 上記の条件を満たさずにターンが終了したらアイテム数の多いほう
が勝ち
プログラムの流れ
1.サーバーに接続する
2.getReady命令を送る(2回連続で送るとエラーで負け)
(ゲーム終了のフラグが立ったら5に飛ぶ)
3.行動命令を送る
4. 2に戻る
5. サーバーと接続を切断する
1.サーバーに接続する
2.getReady命令を送る(2回連続で送るとエラーで負け)
(ゲーム終了のフラグが立ったら5に飛ぶ)
3.行動命令を送る
4. 2に戻る
5. サーバーと接続を切断する
1.サーバーに接続する
2.getReady命令を送る(2回連続で送るとエラーで負け)
(ゲーム終了のフラグが立ったら5に飛ぶ)
3.行動命令を送る
4. 2に戻る
5. サーバーと接続を切断する
getReady()
• 自分のターンの一番最初にサーバーに送らなければいけない命令
• 送ったあと、サーバーから自機の周囲1マスのマップの状態とゲーム
状態(終了or続行)が帰ってくる
• 自分のターンに2回以上連続で送ると不正行動とみなされ負け
1.サーバーに接続する
2.getReady命令を送る(2回連続で送るとエラーで負け)
(ゲーム終了のフラグが立ったら5に飛ぶ)
3.行動命令を送る
4. 2に戻る
5. サーバーと接続を切断する
行動命令
• put系ーブロックを置く
• search系ー直線9マスのマップの状態を得る
• look系ー3 3のマップの状態を得る(getReadyとは違う)
• walk系ー1マス移動
ex)walkUp()…上に1マス移動
1.サーバーに接続する
2.getReady命令を送る(2回連続で送るとエラーで負け)
(ゲーム終了のフラグが立ったら5に飛ぶ)
3.行動命令を送る
4. 2に戻る
5. サーバーと接続を切断する
1.サーバーに接続する
2.getReady命令を送る(2回連続で送るとエラーで負け)
(ゲーム終了のフラグが立ったら5に飛ぶ)
3.行動命令を送る
4. 2に戻る
5. サーバーと接続を切断する
開始方法
1.サーバーを起動
2.先攻が接続
3.後攻が接続
1.サーバーを起動
2.先攻が接続
3.後攻が接続
サーバーの起動
• 全国情報技術教育研究会で配布されている「edu2010b.jar」を使う
• java -jar edu2010b.jar -F【mapファイル】
1.サーバーを起動
2.先攻が接続
3.後攻が接続
使用言語
• 旭川 - Java
• 釧路 - Ruby
• ?? - Python
• 公式(今年度)VC# C言語
毎年レベルが上がっていく
第3回目はかなりレベルが高かった
第3回目ではプレ全道大会も!
今年度からは参加地域が増える
(らしい)
楽しみですね!
おわり
URLまとめ
• AOSC 

http://asahikawa-oss.org/
• ゆるい勉強会@旭川

https://www.facebook.com/yuruben
• U-16旭川プログラミングコンテスト

http://www.procon-asahikawa.org/
• U-16釧路プログラミングコンテスト

http://procon.kushi.ro/
• 全国情報技術教育研究会

http://procon.kushi.ro/

LOCAL-GWEvent