Soumettre la recherche
Mettre en ligne
ドット絵でプログラミング!難解言語『Piet』勉強会
•
5 j'aime
•
8,055 vues
京大 マイコンクラブ
Suivre
関西情報系学生団体交流会2017 Piet勉強会
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 45
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Ultra piet
Ultra piet
京大 マイコンクラブ
Pietのエディタを作った話
Pietのエディタを作った話
京大 マイコンクラブ
Pietで競プロしよう
Pietで競プロしよう
京大 マイコンクラブ
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
「日本語LaTeX」が多すぎる件について
「日本語LaTeX」が多すぎる件について
Takayuki Yato
Marp Tutorial
Marp Tutorial
Rui Watanabe
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
スクレイピングとPython
スクレイピングとPython
Hironori Sekine
Recommandé
Ultra piet
Ultra piet
京大 マイコンクラブ
Pietのエディタを作った話
Pietのエディタを作った話
京大 マイコンクラブ
Pietで競プロしよう
Pietで競プロしよう
京大 マイコンクラブ
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
「日本語LaTeX」が多すぎる件について
「日本語LaTeX」が多すぎる件について
Takayuki Yato
Marp Tutorial
Marp Tutorial
Rui Watanabe
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
スクレイピングとPython
スクレイピングとPython
Hironori Sekine
研究の基本ツール
研究の基本ツール
由来 藤原
CRC-32
CRC-32
7shi
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
プレゼンの基本
プレゼンの基本
Hiroyuki Nagataki
C#とILとネイティブと
C#とILとネイティブと
信之 岩永
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
Pythonでパケット解析
Pythonでパケット解析
euphoricwavism
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
UnityTechnologiesJapan002
ChatGPTの仕組みの解説と実務でのLLMの適用の紹介_latest.pdf
ChatGPTの仕組みの解説と実務でのLLMの適用の紹介_latest.pdf
Ginpei Kobayashi
tcolorboxによる装飾表現(TeXユーザの集い2015)
tcolorboxによる装飾表現(TeXユーザの集い2015)
TeXmedicine
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
kotobato
データ活用をするための組織
データ活用をするための組織
Kon Yuichi
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
Tokoroten Nakayama
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Takuya Akiba
こわくないPython
こわくないPython
Katsuya Arai
勉強会で発表してみようかなという方へ(BPStudy)
勉強会で発表してみようかなという方へ(BPStudy)
Haruo Sato
Contenu connexe
Tendances
研究の基本ツール
研究の基本ツール
由来 藤原
CRC-32
CRC-32
7shi
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
プレゼンの基本
プレゼンの基本
Hiroyuki Nagataki
C#とILとネイティブと
C#とILとネイティブと
信之 岩永
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
Pythonでパケット解析
Pythonでパケット解析
euphoricwavism
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
UnityTechnologiesJapan002
ChatGPTの仕組みの解説と実務でのLLMの適用の紹介_latest.pdf
ChatGPTの仕組みの解説と実務でのLLMの適用の紹介_latest.pdf
Ginpei Kobayashi
tcolorboxによる装飾表現(TeXユーザの集い2015)
tcolorboxによる装飾表現(TeXユーザの集い2015)
TeXmedicine
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
kotobato
データ活用をするための組織
データ活用をするための組織
Kon Yuichi
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
Tokoroten Nakayama
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Takuya Akiba
Tendances
(20)
研究の基本ツール
研究の基本ツール
CRC-32
CRC-32
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
プログラムを高速化する話
プログラムを高速化する話
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
プレゼンの基本
プレゼンの基本
C#とILとネイティブと
C#とILとネイティブと
Pythonによる黒魔術入門
Pythonによる黒魔術入門
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
Pythonでパケット解析
Pythonでパケット解析
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
ChatGPTの仕組みの解説と実務でのLLMの適用の紹介_latest.pdf
ChatGPTの仕組みの解説と実務でのLLMの適用の紹介_latest.pdf
tcolorboxによる装飾表現(TeXユーザの集い2015)
tcolorboxによる装飾表現(TeXユーザの集い2015)
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
データ活用をするための組織
データ活用をするための組織
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
メタプログラミングって何だろう
メタプログラミングって何だろう
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Similaire à ドット絵でプログラミング!難解言語『Piet』勉強会
こわくないPython
こわくないPython
Katsuya Arai
勉強会で発表してみようかなという方へ(BPStudy)
勉強会で発表してみようかなという方へ(BPStudy)
Haruo Sato
[2013_04]新入生用スライド
[2013_04]新入生用スライド
たろう しょりけん
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
Kishi Shundo
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
Hiroyuki Ishikawa
Raspberrypitraining20171027
Raspberrypitraining20171027
Kiyoshi Ogawa
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
Haruo Sato
プログラミング研修資料 新潟県田上町20170807
プログラミング研修資料 新潟県田上町20170807
Yuta Tonegawa
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
Developers Summit
GTMF 2015: 株式会社アトミテック
GTMF 2015: 株式会社アトミテック
Game Tools & Middleware Forum
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
Wataru Terada
ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
Tomo Masuda
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
Shingo Kitayama
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
千葉大学図書館情報技術論2017 第08回授業補足スライド:自宅でSQLite3
千葉大学図書館情報技術論2017 第08回授業補足スライド:自宅でSQLite3
Kosetsu IKEDA
[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業
Makoto Koike
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
Keigo Suda
Get started with future C# .Net development with Docker
Get started with future C# .Net development with Docker
Oshitari_kochi
Microsoft Copilot Studio.pdf
Microsoft Copilot Studio.pdf
Tomokazu Kizawa
Similaire à ドット絵でプログラミング!難解言語『Piet』勉強会
(20)
こわくないPython
こわくないPython
勉強会で発表してみようかなという方へ(BPStudy)
勉強会で発表してみようかなという方へ(BPStudy)
[2013_04]新入生用スライド
[2013_04]新入生用スライド
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
Raspberrypitraining20171027
Raspberrypitraining20171027
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
企業主催勉強会BPStudy〜個人が輝くコミュニティを目指して
プログラミング研修資料 新潟県田上町20170807
プログラミング研修資料 新潟県田上町20170807
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
【A-L】コミュニティが成長させるマルチクラウド環境でのデータ管理の世界 ~Docker Hubで500,000ダウンロード達成、Scality S3サー...
GTMF 2015: 株式会社アトミテック
GTMF 2015: 株式会社アトミテック
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
ゼロから深層学習を学ぶ方法 - CMS大阪夏祭り2017
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
千葉大学図書館情報技術論2017 第08回授業補足スライド:自宅でSQLite3
千葉大学図書館情報技術論2017 第08回授業補足スライド:自宅でSQLite3
[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
Get started with future C# .Net development with Docker
Get started with future C# .Net development with Docker
Microsoft Copilot Studio.pdf
Microsoft Copilot Studio.pdf
Plus de 京大 マイコンクラブ
テキストファイルを読む💪 第1回
テキストファイルを読む💪 第1回
京大 マイコンクラブ
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
京大 マイコンクラブ
Common Lisp入門
Common Lisp入門
京大 マイコンクラブ
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
京大 マイコンクラブ
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
京大 マイコンクラブ
Geometry with Unity
Geometry with Unity
京大 マイコンクラブ
セミコロンレスc++
セミコロンレスc++
京大 マイコンクラブ
エンジニアと健康
エンジニアと健康
京大 マイコンクラブ
女の子になれなかった人のために
女の子になれなかった人のために
京大 マイコンクラブ
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
京大 マイコンクラブ
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
京大 マイコンクラブ
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
京大 マイコンクラブ
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
京大 マイコンクラブ
Altseed
Altseed
京大 マイコンクラブ
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
京大 マイコンクラブ
C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回
京大 マイコンクラブ
C#でゲームを作る2016 第5回
C#でゲームを作る2016 第5回
京大 マイコンクラブ
Plus de 京大 マイコンクラブ
(20)
テキストファイルを読む💪 第1回
テキストファイルを読む💪 第1回
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
Common Lisp入門
Common Lisp入門
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
Geometry with Unity
Geometry with Unity
セミコロンレスc++
セミコロンレスc++
エンジニアと健康
エンジニアと健康
女の子になれなかった人のために
女の子になれなかった人のために
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
Altseed
Altseed
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回
C#でゲームを作る2016 第5回
C#でゲームを作る2016 第5回
ドット絵でプログラミング!難解言語『Piet』勉強会
1.
ドット絵でプログラミング! 難解言語『Piet』勉強会 KC3 2017 勉強会 KMC
base64 (@basemusi)
2.
目次 突然ですが皆さん、
3.
目次 あの!話題の画期的な プログラミング言語
4.
目次 Pietを 知っていますか!?
5.
近況 京都大学プログラミングコンテスト KUPCの運営をやっています 競技プログラミングに 興味のある人は是非参加を!! 日時:10/1(日)13:00~18:00
6.
目次 1. 環境構築 2. Pietの紹介 3.
実際にPietを描いてみる 4. 実際にPietを描いてみる 5. 実際に…… 6. …… ∞. おわりに このスライドとほぼ同じ内容のものが 下のリンク先にあるので参照してください https://goo.gl/ouJC2Z
7.
環境構築 Pietの本格的な勉強会に移る前にまず、 KMCのdama氏製作の便利なのPietのIDE、Pidetを インストールしてもらいます 1. “pidet”で検索 2. “dnek/Pidet:
IDE for Piet. – Github” 3. “releases”をクリックし、 “Pidet20170614”をダウンロード 下のリンクからでも可 https://github.com/dnek/Pidet/releases/download/ver20170614/Pidet20170614.zip
8.
環境構築 ダウンロードが終わったら、適当な場所に展開した後 “Pidet.exe”を実行してPidetが起動することを確認してください
9.
目次 1. 環境構築 2. Pietの紹介 3.
実際にPietを描いてみる 4. 実際にPietを描いてみる 5. 実際に…… 6. ……
10.
そもそもPietって何 読み方は「ピエト」であり、「ピエット」ではない ソースコードがドット絵である難解プログラミング言語
David Morgan-Mar氏が考案 Piet Mondrianの作品に影響を受け、名前もこれに由来 雑に描いても抽象画っぽくなる Pietで描かれたバブルソートのプログラム→
11.
KMCとPiet KMCでは、これまで3年間ほどPiet勉強会が続き、 日本ではほぼ最先端で、Pietに関する様々な活動をやってきた その一部始終は「Piet」で検索するとKMC関連のページが多く ヒットすることからも明らかであろう その中で特に大きい出来事を紹介する
12.
京大Pietクラブ 2016年のエイプリルフール企画で、 KMCのウェブページをPietのサーバーで動かした 京大Pietクラブへ改名
13.
Piet08事件 私がプログラミングコンテストにPietを使って出た話をブログに 挙げていたら、UTMCの部員からPidetの仕様が間違っている という趣旨のメッセージが飛んでくる ↓ Pidetの挙動が公式のものと一部違うことが判明 (2008年に明確化された仕様が取り込まれていなかったらしい) KMC部員が3年間ぐらい頑張って書いてきたものは 実はPietではなかった!!
14.
Pietってどうやって動くの とりあえずPidetを使ってプログラムを実行してみる
15.
Pietってどうやって動くの デモだけだと雰囲気しかわからないので、 詳細を説明していきます
16.
コーデル(codel) Pietのコードを構成する最小単位の正方形のドットのこと Pidetでは画像の読み込み時と保存時に1コーデルが何ピクセ ルか指定する 真ん中の青い部分が1コーデル
17.
カラーブロック 同色のコーデルが縦横に並んでいるもの Pietのコードの基本単位 1コーデル 6コーデル 8コーデル
18.
プログラムの実行の仕方 Pietのコードの上をPP(プログラムポインター)と呼ばれる点が 移動しながら命令が実行される 最初PPは左上隅のコーデルにあり、DPとCCに従って 移動していく PPの移動元と移動先の色の差によって異なる命令が実行される
19.
DPとは ↑・↓・←・→の4状態あり、PPの移動方向を決める PPは現在位置のカラーブロックの中で最もDP方向にある コーデルから、DP方向にあるカラーブロックに移動する(仮)
20.
DPとは 現在のPPの位置 PPの移動先 例えば、DPが「→」のとき、下図のように移動する 最もDP方向にある コーデル DP方向に移動
21.
DPだけでは困る DPが「→」のとき、PPが下図の緑のカラーブロックから 移動しようとすると、移動先が分からない このとき、移動先をCCによって決める ? ? ?
22.
CCとは 左(L)・右(R)の2状態ある PPは、現在位置のカラーブロックの中で最もDP方向にある コーデルのうち、DP方向に向かって最もCC側にある コーデルからDP方向に移動する ? ? ? DP→, CC左の場合 DP→,
CC右の場合
23.
DPとCC 緑のカラーブロックからPPが移動するとき…… DP→, CC左 DP→,
CC右
24.
DPとCC 緑のカラーブロックからPPが移動するとき…… DP↓, CC左 DP↓,
CC右
25.
DPとCC 緑のカラーブロックからPPが移動するとき…… DP←, CC左 DP←,
CC右
26.
DPとCC 緑のカラーブロックからPPが移動するとき…… DP↑, CC左 DP↑,
CC右
27.
Pietで使える色 Pietで使用できる色は 3(明度) *
6(色相) + 2(白黒) = 20種類 それ以外の色はPidetでは白と解釈する 白と黒は他の色とは異なり、特殊な扱いがされる
28.
黒の扱いと終了条件 PPの移動先が黒のコーデルやコードの外側になったときは、 PPは移動に失敗する 移動に失敗した場合は、CCを切り替えてもう一度移動しよう とする それでも移動に失敗したら、DPを時計回りに90度変えて移動 しようとする それでも移動に失敗したら、CCを…… CCとDPを交互に切り替えて、連続で8回移動に失敗すると プログラムが停止する
29.
白の扱い 白のカラーブロックは大きさが1コーデルのものだけであり、 白のコーデル同士が隣接していても別のカラーブロックとみなす 移動元もしくは移動先が白のコーデルのとき、移動時に 命令が実行されない ただし、白のコーデルだけで移動が無限ループ した場合はプログラムが停止する
30.
命令 白と黒を除いた18色を用いて、PPの移動元と移動先の 色の差によって17種類の命令が実行できる なお、記憶領域として使えるのは整数のスタック一つのみ 変数などというややこしいものは使えないので楽です(嘘)
31.
スタックについて(簡単な説明) イメージとしては数の積み木 一番上に数を積むpushと一番上の積み木を取り出すpopの操作がある 空 3 3
3 5 7 4 5 3 5 3 5 3 5 3 3 push 5 push 4 push 7 pushpop pop pop 4 7 5
32.
命令(スタック) push・・・移動元のカラーブロックのコーデル数をpushする pop・・・1回popする
dup・・・1回popし、popした数を2回pushする 3 4 5 dup 3 4 5 4
33.
命令(演算) add・・・2回popし、popした数の和をpushする sub・・・2回popし、2回目にpopした数-1回目の数をpushする
multi・・・ 2回popし、popした数の積をpushする div・・・ 2回popし、2回目にpopした数÷1回目をpushする (端数切捨て) mod・・・2回popし、2回目にpopした数 mod 1回目をpushする 3 4 5 sub 3 1
34.
命令(論理) not・・・1回popし、popした数が0ならば1を、そうでなけれ ば0をpushする great・・・2回popし、2回目にpopした数>1回目ならば1を、そ うでなければ0をpushする
35.
命令(DPとCC) point・・・1回popし、DPを時計回りに (popした数)×90度回転させる switch・・・
1回popし、popした数の回数CCを切り替える
36.
命令(roll) roll・・・スタックの中身を回転させるやっかいな命令 まず2回popし、1回目にpopされた数をn、2回目をdとする その後、スタックのtopからd個の要素をn回、回す 3 4 5 7 3 2 roll(d=3,
n=2) 3 4 5 7 d=3個 3 4 5 7 3 4 5 7 1回転 2回転 3 4 5 7
37.
命令(入出力) in(n)・・・標準入力から整数を受け取り、その数をpushする in(c)・・・標準入力から文字を受け取り、そのUnicode値を pushする
out(n)・・・1回popし、popした数を標準出力に出力する out(c)・・・1回popし、popした数をUnicode値として持つ 1文字を標準出力に出力する (10をout(c)すると改行できて便利)
38.
目次 1. 環境構築 2. Pietの紹介 3.
実際にPietを描いてみる 4. 実際にPietを描いてみる 5. 実際に…… 6. …… ∞. おわりに
39.
Task1 簡単なPietプログラム 2つの整数を標準入力から受け取り、その和を標準出力に出 力するPietのプログラムを描いてください
時間が余って余裕がある人はコードを小さくしたり、見た目 を改善したりするとよいです KMCでのPietコードゴルフ界隈では、コードの対角線の長さ が小さいほどよいことになっています
40.
Task2 簡単なループ 1つの正整数を標準入力から受け取り、その数が0になるまで 2で割り続け、その過程を標準出力に出力するPietのプログラ ムを描いてください 例.
入力:“7” 出力:“7310” 入力:“16” 出力:“1684210” 最初にもともとの数を出力するかどうか、最後に0を出力す るかどうかは自由にしてよいです 数と数の間に区切りを入れるとよい (入力7に対して7,3,1,0等)
41.
Task3 rollを理解する 1つの非負整数Nを標準入力から受け取り、N!を出力するPiet プログラムを描いてください 例.
入力:“3” 出力:“6” 入力:“5” 出力:“120” roll命令を使わないと多分無理です
42.
Task4 ほどよい難易度 2つの正整数a,
bを標準入力から受け取り、aとbの最大公約数 を出力するPietプログラムを描いてください 例. 入力:“4 8” 出力:“4” 入力:“15 6” 出力:“3” 最小公倍数でもよいです ユークリッドの互除法を使いましょう
43.
Task5 Pietを完全に理解する 時間が余ってしょうがない人向けです
生半可な覚悟で取り掛からないようにしましょう 非負整数Nと項数Nの数列xを標準入力から受け取りxを昇順 にソートした数列を出力してください 入力形式: N x_1 x_2 , … , x_N 例. 入力:“3 2 1 4” 出力:“1 2 4” 入力:“5 4 10 2 2 -2” 出力:“-2 2 2 4 10” しんどい
44.
目次 1. 環境構築 2. Pietの紹介 3.
実際にPietを描いてみる 4. 実際にPietを描いてみる 5. 実際に…… 6. …… ∞. おわりに
45.
おわりに きっとPietの分岐とループの描き方を学んだはず。 これで任意のPietコードが描けるはず 絵や文字っぽいプログラムを描くときは、先に絵を 用意してからPietに
修正していくと描きやすいらしい QRコードとしても意味を持つPietコードは先にQRコードを 用意して、白い部分に明るい色を、黒い部分に暗い色を使うと できる 俺たちのPietライフはまだまだ始まったばかりだ (ちなみに私はもうPietは飽きた)
Télécharger maintenant