SlideShare a Scribd company logo
1 of 72
Download to read offline
最強のPietでゲームを作る
KMC2回生 murata
2016/3/9(水)
@KMC春合宿講座
自己紹介
ID:murata
所属:京大工学部情報学科計算機2回生
役職:代表(会長の繰り上がり)
今年の活動:Unityでゲームを作ろう2015
超あほげー(数%マーケット)
YAPC(銅鑼パーソン)
大体一年以上使った言語:Piet C# C++ VB6
2
この講座の主張
3
おしながき
4
Piet
5
Pietの概要
> < + - . , [ ]
ptr++ ptr-- (*ptr)++ (*ptr)-- output input if(0) to ] if(!0) to [
6
Pietの概要
7
Pietの概要
8
Pietの概要
v @_ v
>0"!dlroW"v
v :# <
>" ,olleH" v
^ <
9
Pietの概要
10
Pietの概要
11
Pietの概要
12
Pietの概要
13
Pietの概要
14
Pietの概要
15
Pietのおさらい
16
Pietのおさらい
17
Pietのおさらい
18
Pietのおさらい
⇛ ⇛
⇛ ⇛
⇛ ⇛ ⇛ 19
Pietのおさらい
このコードの
動作が
わかるかなー
???
20
Pietのおさらい
8をPush
9をPush掛け算
72出力
終了
8をPush
9をPush
掛け算
72出力
どちらも先述の通り,72を出力するコード 21
Pidetのおさらい
https://github.com/kndama/Pidet
22
Pietのおさらい
終了
23
UltraPiet
24
UltraPietとは
25
UltraPietとは
26
UltraPietとは
27
UltraPietとは
28
UltraPietとは
29
UltraPietとは
30
UltraPietとは
1
スタックの
先頭
1
2
スタックの
先頭
3
スタックの
先頭
スタックの
先頭
Push 2 Add Out(n)
31
UltraPietとは
A
スタックの
先頭
A
K
M
C
3
Push
K,M,C,3
Push 0 Mod
A
K
M
C
3
0
A
[K,M,C]
32
UltraPietとは
7
7
[K,M,C]
K M C
[[7,2],[K,[],M,[[]],C]]
K M
C
[[K,M],C] []
7 2 K M C
33
UltraPietとは
7
7
[K,M,C]
“KMC”
K M C
K M
C
[[K,M],C]
["KM",C]
[]
"" 34
UltraPietとは
Mod 0
"CHIHAYA"
[K,M,C]
A
[[x,y],[X,Y]]
3
"CHIHAYA"
[[K,M,C],A,[[x,y],[X,Y]]]
K M C
A
x y X Y K M C
A
x y X Y
35
UltraPietとは
36
UltraPietとは
37
UltraPietとは
38
UltraPietとは
39
UltraPietとは
40
UltraPietとは
41
UltraPietでゲームを作る
42
UltraPietでゲームを作る
43
木構造の演算
44
木構造の演算
45
木構造の演算
46
木構造の演算
⇛
⇛
⇛
47
木構造の演算
⇛
48
木構造の演算
⇛
⇛
49
木構造の演算
⇛
⇛
⇛
50
木構造の演算
⇛
⇛
51
木構造の演算
⇛
⇛
52
木構造の演算
⇛
⇛
53
木構造の演算
⇛
⇛
⇛ ⇛
54
木構造の演算
⇛
⇛
55
木構造の演算
56
木構造の演算
⇛
57
木構造の演算
58
木構造の演算
⇛
⇛
⇛
⇛
⇛
⇛
⇛ 59
木構造の演算
60
UltraPiet
61
UltraPiet
⇛
62
UltraPiet
↑キーの判定
↓キーの判定
上下の移動処理
敵追加処理
敵描画
あたり判定
移動処理
敵の配列
ループ
処理
死亡判定
& 順序整理
スペースが
足りない
63
UltraPiet
64
UltraPiet
65
Qt
66
Qtとは
67
Qtとは
⇛
68
Qtとは
⇛ ⇛
69
Qtとは
⇛
70
connect(ui->horizontalSlider,&QSlider::valueChanged,[this](int value){
ui->lineEdit->setText(QString::number(value));
});
connect(ui->pushButton,&QPushButton::clicked,[this](bool clicked){
auto filePath = QFileDialog::getOpenFileName(this,tr("Image"), "", tr("Image Files (*.png *.jpg )"));
this->setStyleSheet("background-image: url(" + filePath +")");
});
まとめ
71
ありがとう
ございました
72

More Related Content

What's hot

組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ京大 マイコンクラブ
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02maruyama097
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarrayRyosuke839
 
チケットファーストでアジャイル開発!~チケットに分割して統治せよ
チケットファーストでアジャイル開発!~チケットに分割して統治せよチケットファーストでアジャイル開発!~チケットに分割して統治せよ
チケットファーストでアジャイル開発!~チケットに分割して統治せよakipii Oga
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについてmametter
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)智啓 出川
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介MITSUNARI Shigeo
 
Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話NVIDIA Japan
 
tcolorboxによる装飾表現(TeXユーザの集い2015)
tcolorboxによる装飾表現(TeXユーザの集い2015)tcolorboxによる装飾表現(TeXユーザの集い2015)
tcolorboxによる装飾表現(TeXユーザの集い2015)TeXmedicine
 
文献調査をどのように行うべきか?
文献調査をどのように行うべきか?文献調査をどのように行うべきか?
文献調査をどのように行うべきか?Yuichi Goto
 
新しい並列for構文のご提案
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案yohhoy
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門Fixstars Corporation
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Inc.
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門ryos36
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 

What's hot (20)

組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
 
画像処理の高性能計算
画像処理の高性能計算画像処理の高性能計算
画像処理の高性能計算
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 
チケットファーストでアジャイル開発!~チケットに分割して統治せよ
チケットファーストでアジャイル開発!~チケットに分割して統治せよチケットファーストでアジャイル開発!~チケットに分割して統治せよ
チケットファーストでアジャイル開発!~チケットに分割して統治せよ
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについて
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話
 
tcolorboxによる装飾表現(TeXユーザの集い2015)
tcolorboxによる装飾表現(TeXユーザの集い2015)tcolorboxによる装飾表現(TeXユーザの集い2015)
tcolorboxによる装飾表現(TeXユーザの集い2015)
 
文献調査をどのように行うべきか?
文献調査をどのように行うべきか?文献調査をどのように行うべきか?
文献調査をどのように行うべきか?
 
新しい並列for構文のご提案
新しい並列for構文のご提案新しい並列for構文のご提案
新しい並列for構文のご提案
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 

Similar to Ultra piet

量子プログラミング入門:TKET 編 スライド
量子プログラミング入門:TKET 編 スライド量子プログラミング入門:TKET 編 スライド
量子プログラミング入門:TKET 編 スライドKeisuke Kishida
 
『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由Takayuki Shimizukawa
 
[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業Makoto Koike
 
JavaScript でパックマン! 第2回
JavaScript でパックマン! 第2回JavaScript でパックマン! 第2回
JavaScript でパックマン! 第2回Project Samurai
 
190904FIT情報処理学会の量子コンピュータ
190904FIT情報処理学会の量子コンピュータ190904FIT情報処理学会の量子コンピュータ
190904FIT情報処理学会の量子コンピュータYuichiro MInato
 
【portfolio】Shota Ichikawa .pdf
【portfolio】Shota Ichikawa .pdf【portfolio】Shota Ichikawa .pdf
【portfolio】Shota Ichikawa .pdfSHOTAICHIKAWA1
 
独学プログラマーのその後
独学プログラマーのその後独学プログラマーのその後
独学プログラマーのその後Takayuki Shimizukawa
 
Introduction to Numpy (and Python) [JPN]
Introduction to Numpy (and Python) [JPN]Introduction to Numpy (and Python) [JPN]
Introduction to Numpy (and Python) [JPN]MasaruOinaga
 
第8回 社内プログラミングコンテスト 結果発表会
第8回社内プログラミングコンテスト 結果発表会第8回社内プログラミングコンテスト 結果発表会
第8回 社内プログラミングコンテスト 結果発表会Fixstars Corporation
 
教室にスーパーコンピュータを
教室にスーパーコンピュータを教室にスーパーコンピュータを
教室にスーパーコンピュータをkimio kosaka
 

Similar to Ultra piet (11)

量子プログラミング入門:TKET 編 スライド
量子プログラミング入門:TKET 編 スライド量子プログラミング入門:TKET 編 スライド
量子プログラミング入門:TKET 編 スライド
 
『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由
 
[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業
 
JavaScript でパックマン! 第2回
JavaScript でパックマン! 第2回JavaScript でパックマン! 第2回
JavaScript でパックマン! 第2回
 
190904FIT情報処理学会の量子コンピュータ
190904FIT情報処理学会の量子コンピュータ190904FIT情報処理学会の量子コンピュータ
190904FIT情報処理学会の量子コンピュータ
 
【portfolio】Shota Ichikawa .pdf
【portfolio】Shota Ichikawa .pdf【portfolio】Shota Ichikawa .pdf
【portfolio】Shota Ichikawa .pdf
 
独学プログラマーのその後
独学プログラマーのその後独学プログラマーのその後
独学プログラマーのその後
 
Introduction to Numpy (and Python) [JPN]
Introduction to Numpy (and Python) [JPN]Introduction to Numpy (and Python) [JPN]
Introduction to Numpy (and Python) [JPN]
 
第8回 社内プログラミングコンテスト 結果発表会
第8回社内プログラミングコンテスト 結果発表会第8回社内プログラミングコンテスト 結果発表会
第8回 社内プログラミングコンテスト 結果発表会
 
教室にスーパーコンピュータを
教室にスーパーコンピュータを教室にスーパーコンピュータを
教室にスーパーコンピュータを
 
10大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon201510大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon2015
 

More from 京大 マイコンクラブ

かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話京大 マイコンクラブ
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換京大 マイコンクラブ
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?京大 マイコンクラブ
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜京大 マイコンクラブ
 
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」京大 マイコンクラブ
 
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編京大 マイコンクラブ
 

More from 京大 マイコンクラブ (20)

テキストファイルを読む💪 第1回
テキストファイルを読む💪  第1回テキストファイルを読む💪  第1回
テキストファイルを読む💪 第1回
 
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
 
Common Lisp入門
Common Lisp入門Common Lisp入門
Common Lisp入門
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
 
Geometry with Unity
Geometry with UnityGeometry with Unity
Geometry with Unity
 
セミコロンレスc++
セミコロンレスc++セミコロンレスc++
セミコロンレスc++
 
エンジニアと健康
エンジニアと健康エンジニアと健康
エンジニアと健康
 
女の子になれなかった人のために
女の子になれなかった人のために女の子になれなかった人のために
女の子になれなかった人のために
 
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったらもし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
 
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
 
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
 
Altseed
AltseedAltseed
Altseed
 
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
 
C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回
 
C#でゲームを作る2016 第5回
C#でゲームを作る2016 第5回C#でゲームを作る2016 第5回
C#でゲームを作る2016 第5回
 
C#でゲームを作る2016 第3回
C#でゲームを作る2016 第3回C#でゲームを作る2016 第3回
C#でゲームを作る2016 第3回
 

Ultra piet