コメント プログラム中には コメントを加える事ができます 処理の際には無視されるので 注釈や覚え書きとして利 できます print("hello Sapporo!") # Hello Sapporo! と 表 する # コメントは無視される 字列 字列とは 単語や 章のような 字の連なったものです

Similar documents
PowerPoint Presentation

PowerPoint プレゼンテーション

Si 知識情報処理

プログラミング入門1

Java講座

PowerPoint プレゼンテーション

プログラミングA

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

メソッドのまとめ

JavaプログラミングⅠ


プログラミングA

Microsoft Word - VBA基礎(3).docx

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

プログラミング基礎

sinfI2005_VBA.doc

JavaプログラミングⅠ

シェルプログラミング コマンドをパイプでつなげるだけでは済まないような ある程度まとまった処理を複数のコマンドを制御構文を用いたりしてファイルとしたものを ( シェル ) スクリプトと呼ぶ シェルプログラム バッチなどともいう.bash_profile もシェルスクリプトなので このファイルを解読し

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

ガイダンス

JavaプログラミングⅠ

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf


8. Windows の補足情報 コマンドの使用についての説明です Windows からのファイル直接印刷 Windows でコマンドを使用したファイル直接印刷の方法についての説明です この機能はネットワーク接続をしているときに使用できます この方法で印刷できるファイルは 本機が搭載しているエミュレ

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

Windows10の標準機能だけでデータを完全バックアップする方法 | 【ぱそちき】パソコン初心者に教えたい仕事に役立つPC知識

任意の間隔での FTP 画像送信イベントの設定方法 はじめに 本ドキュメントでは AXIS ネットワークカメラ / ビデオエンコーダにおいて任意の間隔で画像を FTP サー バーへ送信するイベントの設定手順を説明します 設定手順手順 1:AXIS ネットワークカメラ / ビデオエンコーダの設定ページ

Microsoft PowerPoint - C_Programming(3).pptx

Python の基本事項の学習 このラーニングラボでは Python のシンタックス ( 構文 ) スコープ ( 有効範囲 ) 変数 演算子 単純な条件分岐の基本事項を学習します 目標 所要時間 :45 分 Python の基本的なインデントとスコープを理解しよう 変数の割り当て方法と使用方法を学習

メソッドのまとめ

2 / 16 ページ 第 7 講データ処理 ブック ( ファイル ) を開く第 6 講で保存したブック internet.xlsx を開きましょう 1. [Office ボタン ] から [ 開く ] をクリックします 2. [ ファイルの場所 ] がデータを保存している場所になっている

エクセルの基礎を学びながら、金額を入力すると自動的に計算され、1年分の集計も表示される「おこづかい帳」を作りしょう

kantan_C_1_iro3.indd

Microsoft Word - CygwinでPython.docx

ExcelVBA

第32回_プレゼン資料_菅原(Unityはじめるよ~上半身だけ動かす2~)

Microsoft PowerPoint - ruby_instruction.ppt

ライセンス運用マニュアル ムラタソフトウェア株式会社 All Rights Reserved, Copyright c Murata Software Co., Ltd. 2019/2/14 1

スライド 1

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft Word - 3new.doc

Format text with styles

Microsoft Word - _ ‘C’³_V1.6InstManual.doc

Microsoft PowerPoint - Prog05.ppt

Microsoft Word - Sgs_Man.doc

マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライトの衝突判定 スプライトの衝突判定 スプライトの衝突判定の例として インベーダーゲームのコードを 下記に示す PYTHON3 #coding: utf-8 import pygame from pygame.lo

listings-ext

Microsoft PowerPoint - sousa pptx

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

Windows ユーザー名に全角が含まれている場合は インストールできません のエラーが表示される場合の対処法 手順 1 管理者権限のある Windows ユーザーでログインした上で 以下の処理を行ってください 画面左下の 旗のマークを左クリックし 続いて表示される一覧から 設定 ( 左側に歯車のよ

クイック操作シート

正誤表(FPT1004)

Taro-Basicの基礎・条件分岐(公

ポインタ変数

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多

MMC Unity講座

JavaScriptで プログラミング

プログラミング基礎

教材ドットコムオリジナル教材

Microsoft Word - no103.docx

JavaプログラミングⅠ

Microsoft PowerPoint - lec4.ppt

Microsoft PowerPoint - kougi7.ppt

EPS設定例

第21章 表計算

初めてのプログラミング

スライド 1

zabbix エージェント インストールマニュアル [Windows Server] 第 1.2 版 2018 年 05 月 18 日 青い森クラウドベース株式会社

Java知識テスト問題

System.out.println("char : " + (int)character.min_value + "~" + (int)character.max_value); System.out.println("float : " + Float.MIN_VALUE + "~" + Flo

Microsoft Word - macマニュアル【 】.doc

テキストファイルの入出力1

Upload path ファイル送信先ディレクトリのパスを指定します ホームディレクトリに画像を送信する場合は空白のまま サブディレクトリに画像を送信する場合はディレクトリ名を指定します さらに下位のディレクトリを指定する場合は \ マークを利用します 例 ) ホームディレクトリ以下の camera

Outlook2010 の メール 連絡先 に関連する内容を解説します 注意 :Outlook2007 と Outlook2010 では 基本操作 基本画面が違うため この資料では Outlook2010 のみで参考にしてください Outlook2010 の画面構成について... 2 メールについて

Vectorworksサイトプロテクションネットワーク版-情報2

ServerView ESXi CIM Provider VMware vSphere ESXi 6.0 インストールガイド

Microsoft Word JA_revH.doc

Microsoft Word A02

目次 1. ログイン ログアウト デスクトップ ( 例 :Word Excel 起動中 ) Dock( 例 :Word Excel 起動中 ) Finder ウィンドウ メニューバー ( 例 :Word 起動中 )...

プログラミング基礎

Taro-Basicの基礎・はじめに(公

MS-ExcelVBA 基礎 (Visual Basic for Application)

ユーザーズマニュアル 神戸親和女子大学情報処理教育センター 年 4 月版

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

プログラミング実習I

C#の基本

< 目次 > 1. 練習ファイルのダウンロード 表計算ソフト Excel の基本 Excel でできること Excel の画面 セル 行 列の選択 セルにデータを入力する ( 半角英数字の場合 )

Net'Attest EPS設定例

Microsoft Word - Python利用環境構築ガイド_ docx

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

6118: (IMAP)Mac OS X Mail の設定方法 2014 年 7 月 1 日現在 IMAP を利用してメールサーバーにアクセスした場合 POP3 とは形式が異なり 読んだメールはパソコンに自動保存されませんのでご注意ください 大切なメールは リストの中から任意のフォルダにドラッグ &

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

Proselfの利用方法

プログラミング入門1

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

Microsoft PowerPoint - kougi4.ppt

Microsoft Word - DF-Salford解説09.doc

Transcription:

CHaser のための Python 基礎編 これは U-16 札幌プロコン事前講習会に向けて メンター向けに Python の基礎を すドキュメントです 意するもの 基本編 PC Windows パソコンで CHaser を動かすまで で 意した USB メモリ Python プログラムの実 法は 主に 2 通りあります 対話型シェルによる実 対話型シェルとは その名の通り 対話をしているように Python のプログラムを実 できる機能 のことです キーボードを使って Python のプログラムをその場で打ち込み 結果を確認できます 対話型シェルを ち上げるには USB メモリの WinPython フォルダ内の WinPython Command Prompt を起動したあと コマンドプロンプト ( いコマンド 画 ) に python と し Enter キーを押下します >>> と書いてあるところにプログラムを すると その場でプログラムが実 されます これは ちょっとプログラムの動きを確認したいときに便利です ファイルからの実 対話型シェルで実 したプログラムは 対話型シェルを終了すると消えてしまいます CHaser のプログラムのように 度書いたら残しておきたいようなプログラムはファイルに保存しておく必要があります テキストエディタ ( 今回は VSCode) を起動し プログラムを書いてファイル名をつけて保存します プログラムは USB メモリ内の WinPython フォルダの scripts フォルダに保存してください ファイルとして保存した Python プログラムを実 するには WinPython Command Prompt を起動した後 以下のコマンドを します (> 記号はプロンプトなので無視してください ) > python ファイル名 画 への表 情報を画 に表 するには print() 関数を利 します 例えば 画 に "Hello" と表 するには print("hello") と いうプログラムを書きます 関数は コンピュータへの命令のようなものだと思ってください

コメント プログラム中には コメントを加える事ができます 処理の際には無視されるので 注釈や覚え書きとして利 できます print("hello Sapporo!") # Hello Sapporo! と 表 する # コメントは無視される 字列 字列とは 単語や 章のような 字の連なったものです 字列は "" で囲って表現します print("hello") print("hello" + "World") # 字列の 連結 ( し算 ) print("hello" * 5) # 字列の繰り返し ( 掛け算 ), *( アスタリスク ) は ( 乗算記号 ) を意味する 数値 数値は 整数や 数などを扱えます print(22) print(3.14) 四則演算が可能です なお 乗算器号 ( ) は * を 除算記号 ( ) は / を使うということに注意してくださ い print(1 + 1) print(5-2) print(3 * 5) print(15 / 3) 剰余 ( あまり ) は % 記号で求めることができます print(17 % 5) べき乗は ** を利 します print(2 ** 10) # 2 の 10 乗, 1024 が表 される また 演算 には優先順位があるので注意してください print(1 + 2 * 3) # 7が表 される print((1 + 2) * 3) # 9が表 される 変数 字列や数値などのデータを れておく箱のようなものが変数です 変数には名前を つけて管理することができます 変数につけた名前を変数名といいます 変数へデータを れることを代 と呼びます 代 は以下のようにできます

name = "Taro" age = 20 weight = 60.5 print() 関数を利 して変数の中 を 表 することも可能です print(name) # Taro print(age) # 20 print(" 私の名前は ", name, " です ") # 私の名前は Taro です また 度作成した変数のデータを変更したり 変数同 で四則演算等することもできます dept = " 事部 " salary = 210000 dept = " 総務部 " # 度作った変数に違うデータを れることができる salary = salary * 1.2 # salaryの1.2 倍の値をsalaryに代 ( 数学の等式とは違うので注意 ) 1 ずつ増加 減少させるインクリメント デクリメントも覚えておいてください age = 20 age += 1 # インクリメント (age = age + 1 と同義 ) age -= 1 # デクリメント (age = age - 1 と同義 ) 変数名は以下のルールに従ってつけてください 1 字 は英字か _( アンダーバー ) 2 字 以降は英数字か _ 予約語 ( 後述 ) は使 できない 字と 字は区別される (a と A は別の変数として扱われる ) 予約語とは Python プログラム内で特別な意味を持っている単語の事で 以下のようなものがあります これらの単語を変数名として使うことはできません (password や my_class など 予約語を含んでいる 変数名は問題ありません ) False None True and as assert break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with yield また エラー等は出ませんが実 上不都合がある変数名としては 以下のものがありますので 避けた が良いでしょう 条件分岐 先頭にアンダーバーがついた変数名 _var など 字で始まる変数名 Animal など

プログラムは上から順に実 されますが 条件によって実 する処理を変えたいときがあります そんな時には条件分岐を使います 条件によって処理を分岐させる 法として if があります if の書式は以下のとおりです インデント (Tab キーを押下する ) に注意してください if 条件式 : 処理 if はこのように使えます age = 26 if age >= 25: # ここは実 される print(" 衆議院議員に 候補できます ") if age >= 30: # ここは実 されない print(" 参議院議員に 候補できます ") また else 句を いて条件を満たさない時の処理を書くこともできます age = 19 if age >= 20: print(" 成 しています ") else: print(" 成 していません ") また 複雑な条件を処理するために elif 句を使うこともできます if が もし なれば else が そうでなければ とすると elif は そうでなくてもし ならば というイメージです a = 0 if a > 0: print("a は 正の数です ") elif a < 0: print("a は負の数です ") else: print("a はゼロです ") 条件式を記述するには 次のような 較演算 や論理演算 を使います 較演算 は以下のとおりです 較演算 記述例 意味 == a == b a と b が等しい!= a!= b a と b が等しくない > a > b b より a が きい >= a >= b b より a が きいか 等しい < a < b b より a が さい

<= a <= b bよりaが さいか 等しい 論理演算 は以下のとおりです 論理演算 記述例 意味 and a and b aとbが共に成り つ時 or a or b aまたはb 少なくともどちらかが成り つ時 not not a aが成り たない時 リスト 複数のデータを つにまとめたものをリストといいます リストのひとつひとつのデータをリストの要素と呼びます リストは 以下のように作成します a = [1, 2, 3, 4, 5] リストのある要素を参照するには リスト名 [n] というようにします なお Python におけるリストの要 素は 0 番 から数え始めることに注意してください b = [1, 2, 3] print(b[0]) リストの サイズ ( 要素数 ) は len() で取得できます print(len(b)) # 3 通常の変数同様 リスト全体または特定の要素を書き換えたり 追加することができます c = [1, 2, 3] print(c) # [1, 2, 3] c[0] = 5 print(c) # [5, 2, 3] c.append(10) # リストの最後に 10 という要素を追加 print(c) # [5, 2, 3, 10] 繰り返し 決まった回数繰り返したい処理がある場合は for を ある条件を満たしている間繰り返したい処理がある場合は while を使います for は以下のような書式です for は リストの要素数のぶんだけ処理を繰り返したい時に便利です # ここでいうオブジェクトは リスト 変数等を す for 変数 in オブジェクト : 処理 例えば 果物の名前が ったリスト型変数があり その要素ひとつひとつを表 したい場合は以下のようなコードを記述します

fruits = [" リンゴ ", " なし ", " バナナ "] for item in fruits: print(item) # リンゴ なし バナナが順に表 される 上記のプログラムの処理の流れは以下のとおりです 1) fruits の 0 番 の要素 " リンゴ " が item に代 される 2) print(item) 3) fruits の 1 番 の要素 " なし " が item に代 される 4) print(item) 5) fruits の 2 番 の要素 " バナナ " が item に代 される 6) print(item) また単にある回数だけ処理を繰り返したい時は 以下のように range() 関数を利 します for i in range(10): print("hello", i, " 回 ") # Hello 0 回 # Hello 1 回 # Hello 2 回 #. #. #. 次に while の説明です while の書式は以下のとおりです while 条件式 : 処理 例えば ある変数の値が 10 以内の時だけ数値を表 するプログラムは以下のとおりです

count = 0 while count < 10: print(count) count += 1 ``` 分の CHaser プログラムをつくる === # はじめに 分の Chaser プログラムを作ってみましょう # CHaser ライブラリの命令 各命令を実 すると value 変数に周辺情報が格納されます 詳しくは CHaser 公式の以下ドキュメントを参照してください http://www.zenjouken.com/?action=common_download_main&upload_id=522 ## get_ready() ターンのはじめに実 する value 変数には周辺情報が格納されます ```python walk 指定された上下左右のどれかの 向に移動します value = client.walk_up() value = client.walk_down() value = client.walk_left() value = client.walk_right() look 指定された上下左右のどれかの 向に対して 正 形状に 9 マスの情報を取得します value 変数にはその 9 マスの情報が格納されます value = client.look_up() value = client.look_down() value = client.look_left() value = client.look_right() search 指定された上下左右のどれかの 向に対して 直線上に 9 マスの情報を取得する value 変数にはその 9 マスの情報が格納されます

value = client.search_up() value = client.search_down() value = client.search_left() value = client.search_right() put 指定された上下左右のどれかの 向に対して ブロックを配置する value 変数には周囲 9 マスの情報が格納されます value = client.put_up() value = client.put_down() value = client.put_left() value = client.put_right() サンプルの CHaser プログラムを改良する USB メモリに っている sample.py を mychaser.py という名前でコピーしましょう ( 徒さんには 分の名前のファイル名を付けてもらったほうがわかりやすいかもしれません takuya.py など ) プログラムの改良 法 sample のプログラムは コメント部を除くと以下のようになっています import CHaser def main(): value = [] client = CHaser.Client() while(true): value = client.search_left() if value[7]!= 2: value = client.walk_down() else: value = client.put_up() value = client.look_up() value = client.put_right() while(true): 以降が改良するべき部分です プログラムを改良する際は client.get_ready() を呼び出してからなにかの動作 ( client.walk_down() 等 ) をすることに注意してください

では早速 あなたの CHaser プログラムを改良してみましょう ランダムに動くようにする 現状だと このプログラムは下 向に動き続けるのみです そこで 上下左右いずれかの 向にランダムに動くようにしてみましょう 0 から 3 までの数値をランダムに出し 0 なら上へ 1 なら下へ 2 なら左へ 3 なら右へ移動するようにしましょう Python でランダムな数値を出すには 以下のようにプログラムを書きます import random random.randint(0, 3) # 0 から 3 までのランダムな数値を出す これを CHaser プログラムに組み込んでみましょう なお import はプログラムの最初にまとめて書くようにします

import CHaser import random # import はプログラムの最初に書く def main(): value = [] client = CHaser.Client() while(true): value = client.search_left() number = random.randint(0, 3) if number == 0: client.walk_up() elif number == 1: client.walk_down() elif number == 2: client.walk_left() elif number == 3: client.walk_right() # 以下の部分はコメント化 # if value[7]!= 2: # value = client.walk_down() # else: # value = client.put_up() # # value = client.look_up() # # value = client.put_right() これで 上下左右ランダムな 向に動き続ける CHaser ができました しかしこれだと これだと ブロックに突っ込んで負けになってしまうので 進 したい 向にブロックがあったときは進まないような処理が必要です value 変数の値と条件分岐をうまく利 して ブロックがある時は別の 動 ( ただ単に look や search するだけなど ) を取るようプログラムを改良する 法を 徒と 緒に考えてよいでしょう CHaser の動かし === はじめに CHaser のサーバーやプログラムを動かして ゲームを実施する 法をまとめたドキュメントです

意するもの PC Windows パソコンで CHaser を動かすまで で 意した USB メモリ 分の CHaser プログラム ( ここでは mychaser.py としますが 適宜読み替えてください ) 順 サーバの起動 USB メモリ内に っているサーバプログラムを起動します COOL と HOT どちらも 徒の作ったプログラムをつなぐ場合はそのまま COOL と HOT の接続開始ボタンを押します 分の作ったプログラムをテストしてみたい時は COOL か HOT どちらかの "TCP ユーザ " をクリックして " 動くん " にします プログラムの接続 USB メモリ内の PythonCommandPrompt を開いて 以下のコマンドを します なお > はプロンプト なので しないでください > cd CHaser > python mychaser.py エラー等出なければ 接続情報等を聞かれるので してください ポート番号を してください 2009 (COOL なら 2009 を HOT なら 2010 を ) ユーザー名を してください takuya ( 徒の名前等適当に ) サーバーの IP アドレスを してください [IP アドレス ] IP アドレスは サーバを起動したパソコンと CHaser プログラムを起動したパソコンが同 の場合は 127.0.0.1 サーバを起動したパソコンと CHaser プログラムを起動したパソコンが別の場合はサーバプログラムの SERVER 欄に書いてある IP アドレス をそれぞれ してください ゲーム開始 COOL 側 HOT 側どちらも準備完了になったら ゲーム開始ボタンを押してください ゲーム終了 サーバプログラムの右上の ボタンを押してサーバプログラムを終了してください 再度ゲームをする場合は サーバの起動からやり直してください