Mercurial > hg > Papers > 2017 > kazuma-thesis
changeset 13:7b39f43e4088
fix english description.
author | Kazuma Takeda |
---|---|
date | Wed, 15 Feb 2017 17:20:12 +0900 |
parents | 10a1f30eb748 |
children | b2f7835ac00e |
files | prepaper/finalPre.tex presen/slide.html presen/slide.md presen/slide.pdf.html |
diffstat | 4 files changed, 38 insertions(+), 496 deletions(-) [+] |
line wrap: on
line diff
--- a/prepaper/finalPre.tex Wed Feb 15 09:28:06 2017 +0900 +++ b/prepaper/finalPre.tex Wed Feb 15 17:20:12 2017 +0900 @@ -30,22 +30,19 @@ \twocolumn [ \maketitle \begin{onecolabstract} -There are some problems to Relational Databases and NoSQLs. +There are some problems to Relational Database and NoSQL. One of them as Impedance mismatch. This problem is cased by a difference between the first normal form of database and the programs. There is a problem that NoSQL is unfit for parallel processing. Laboratory proposes the database Jungle that solves those problems. -Jungle Jungle does not destroy the tree structure. Jungle develops as a scalable database. The structure of the game like the structure of the web. -in this thesis. - +This paper suggests a method to use as a database of game engine Unity. % way to use? how to use? -This paper suggests a method to use as a database of game engine Unity. -Jungle rewrite C\# programming language by written Java. +Jungle rewrite C\# programming language by written Java. % まだかけてない... \end{onecolabstract}]
--- a/presen/slide.html Wed Feb 15 09:28:06 2017 +0900 +++ b/presen/slide.html Wed Feb 15 17:20:12 2017 +0900 @@ -86,7 +86,7 @@ <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.3.3 (2016-11-21) [x86_64-darwin16] - on 2017-02-13 20:40:38 +0900 with Markdown engine kramdown (1.13.1) + on 2017-02-15 16:56:02 +0900 with Markdown engine kramdown (1.13.1) using options {} --> @@ -175,180 +175,19 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="jungleapi">JungleのAPI</h1> - -<p>前章ではJungleの概要を記述した。 -本章ではJungleの主なAPIについて紹介する。</p> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="jungle">Jungleの木</h1> - -<p>Jungleは複数の木を名前を利用して管理しており、名前により作成・編集を行う。</p> - -<pre lang="Java"><code>// Jungleに新しく木を生成する。木の名前が重複した場合、生成に失敗しnullを返す -JungleTree createNewTree(string treeName) - -// JungleからtreeNameと名前が一致するtreeを取得する。名前が一致するTreeがない場合取得は失敗しnullを返す -JungleTree getTreeByName(string treeName) - -</code></pre> - -<p>以下のコードは、Jungleの木を”TreeName”で生成し取得する。</p> - -<pre lang="Java"><code>JungleTree tree = jungle.createNewTree("GameTree"); -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="treenode">TreeNode</h1> - -<p>Jungleが保持している木は、複数のノードの集合で出来ている。 -ノードは、自身の子のListと属性名と属性値の組でデータを持つ。 -ノードに対するアクセスは、TreeNodeクラスに記述されているAPIを用いて行われる。</p> - -<pre lang="Java"><code>// ノードの子供を扱うChildrenオブジェクトを返す -Children getChildren() - -// ノードが保持しているデータを扱うAttribteオブジェクトを返す -Attribute getAttribute() -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="childrenattribute">ChildrenとAttribute</h1> - -<p>Childrenクラスを利用し、ノードの子どもにアクセスする。</p> - -<pre lang="Java"><code>// ノードが持っている子どもの個数を返す -int size() - -// ノードが持つ子どもの中から、 変数numで指定された位置にある子ノードを返す -Either<Error, TreeNode> at(int num) -</code></pre> - -<p>Attributeクラスを利用し、ノードの保持する値にアクセスする。</p> - -<pre lang="Java"><code>// ノードからKeyで管理されるValueをobject型で返す -object get(string key) - -// ノードからKeyで管理されるValueをstring型で返す -string getString(string key) -</code></pre> - +<h1 id="jungledatabase">JungleのDatabase</h1> -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="either">Eitherクラス</h1> - -<p>Jungleでは例外がある場合、Eitherクラスを用いて行う。</p> - -<ul> - <li>失敗時はA</li> - <li>成功時はB</li> -</ul> - -<p>を包んで返す。 -失敗した場合ははじめからやり直す。 -以下に例を記述する。</p> - -<pre lang="C"><code class="language-\#">Either<Error,TreeNode> either = children.at(2); -if (either.isA()) - return either.a(); -TreeNode child = either.b(); - -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="jungle-1">Jungleのサンプルコード</h1> - -<p>Jungleの例を記載する。</p> - -<p>以下のコードは、ルートノードの2番目の子どもから、属性名”name”とペアになっている属性値を取得する。</p> - -<pre lang="C"><code class="language-\#">JungleTree tree = jungle.getTreeByName("GameTree"); -TreeNode root = tree.getRootNode(); -Children children = root.getChildren(); -Either<Error,TreeNode> either = children.at(2); -if (either.isA()) - return either.a(); -TreeNode child = either.b(); -Attribute attribute = child.getAttribute(); -string value = attribute.getstring("name"); - -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="jungle-2">Jungleの木の編集</h1> - -<p>Jungleの木の編集はJungleTreeEditorクラスを用いて行われる。</p> - -<p>JungleTreeEditorクラスには編集を行うために、定義されているAPIを記述する。</p> - -<p>また、ノードを指定して編集を行う際にNodePathクラスを用いる。</p> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="nodepath">NodePath</h1> - -<p>Jungleでは、木のノードの位置をNodePathクラスを使って表す。</p> - -<p>NodePathクラスはルートノードからスタートし、対象のノードまでの経路を、数字を用いて指し示すことで対象のノードの場所を表す。</p> - -<p>また、ルートノードは例外として-1と表記される。</p> +<p>Jungleの構造としては以下の図のようになっている。</p> <div style="text-align: center;"> - <img src="./images/NodePath.pdf" alt="message" width="400" /> + <img src="./images/transaction.pdf" alt="message" width="700" /> </div> </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-2">ノードの追加</h1> - -<pre lang="C"><code class="language-\#">// 変数pathで指定した場所にある、ノードの子供の変数posで指定した位置子ノードを追加 -Either<Error, JungleTreeEditor> addNewChildAt( NodePath path, int pos) -// 変数pathで指定した場所にあるノードに、属性名 変数key 属性値 変数valueのペアで値を挿入 -Either<Error, JungleTreeEditor> putAttribute( NodePath path, string key, object value) - -// 変数pathで指定した場所にあるノードが持つ、属性名 変数keyとペアで保存されているデータを削除 -Either< Error, JungleTreeEditor> deleteAttribute( NodePath path, string key) - -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-3">コミット</h1> - -<p>編集の最後にTreeに対してコミットを行う。</p> - -<pre lang="C"><code class="language-\#">// 木へ行った変更をコミット。自分が編集を行っていた間に、他のJungleTreeEditorクラスによって木が更新されていた場合、コミットは失敗 -Either<Error, JungleTreeEditor> commit() -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-4">ゲームのデータ構造</h1> +<h1 id="section-2">ゲームのデータ構造</h1> <p>Jungleはもともと認証管理システムやWeb向けに作られたものである。 これらはすべて木構造をベースとしている。</p> @@ -456,7 +295,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="either-1">Eitherのチェック</h1> +<h1 id="either">Eitherのチェック</h1> <p>Haskellでは例外処理はモナド内部で行う設計になっている。 Eitherもその一つである。</p> @@ -517,7 +356,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-5">例題のゲーム</h1> +<h1 id="section-3">例題のゲーム</h1> <p>前章ではJungle-Sharpのどのように実装したかを述べた。</p> @@ -537,17 +376,17 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-6">ゲームデータの種類</h1> +<h1 id="section-4">ゲームデータの種類</h1> <p>ゲームのデータにはいくつかの種類が考えられる。</p> -<h2 id="section-7">オブジェクトが単体で持つデータ</h2> +<h2 id="section-5">オブジェクトが単体で持つデータ</h2> <p>シーン内に存在するオブジェクトが持つパラメータ。</p> <p>例えば、プレイヤーのHPや経験値、位置座標などを示す。</p> -<h2 id="section-8">オブジェクト1つで複数持つデータ</h2> +<h2 id="section-6">オブジェクト1つで複数持つデータ</h2> <p>プレイヤーが持つアイテムデータなどを示す。</p> @@ -561,7 +400,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-9">データのデータ設計</h1> +<h1 id="section-7">データのデータ設計</h1> <p>Jungleには複数の木を持つことができる。</p> @@ -599,7 +438,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="jungle-3">Jungleの改良</h1> +<h1 id="jungle">Jungleの改良</h1> <p>前章では例題となるゲームを作成した。 その上でJungleではデータ型について問題となった。</p> @@ -629,7 +468,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-10">データを取り出す</h1> +<h1 id="section-8">データを取り出す</h1> <p>データを取り出すにはGenericで型を指定する、もしくはas演算子を用いてキャストを行う。 以下に取り出す例を記述する。</p> @@ -647,7 +486,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-11">まとめ</h1> +<h1 id="section-9">まとめ</h1> <p>本研究の流れは</p> @@ -657,9 +496,9 @@ <li>問題点の改良</li> </ul> -<p>となった。</p> +<p>である。</p> -<p>Jungle-Sharpの実装ではそれほど難しくはなかった。 +<p>Jungle-Sharpの実装ではJavaと比較的似ている言語であるため、移行する方法を確立した。 C#版のJungleではJavaに劣らない、もしくはそれ以上のパフォーマンスを出すことが出来た。</p> <p>実際のゲームに合わせたJungleの拡張を行った。</p>
--- a/presen/slide.md Wed Feb 15 09:28:06 2017 +0900 +++ b/presen/slide.md Wed Feb 15 17:20:12 2017 +0900 @@ -67,147 +67,14 @@ Jungleはcommit logを持ち、それを他のノードやディスクに転送することにより、 分散構成と永続性を実現する。 -# JungleのAPI - -前章ではJungleの概要を記述した。 -本章ではJungleの主なAPIについて紹介する。 - - -# Jungleの木 - -Jungleは複数の木を名前を利用して管理しており、名前により作成・編集を行う。 - -``` Java -// Jungleに新しく木を生成する。木の名前が重複した場合、生成に失敗しnullを返す -JungleTree createNewTree(string treeName) - -// JungleからtreeNameと名前が一致するtreeを取得する。名前が一致するTreeがない場合取得は失敗しnullを返す -JungleTree getTreeByName(string treeName) - -``` - -以下のコードは、Jungleの木を"TreeName"で生成し取得する。 - -``` Java -JungleTree tree = jungle.createNewTree("GameTree"); -``` - -# TreeNode - -Jungleが保持している木は、複数のノードの集合で出来ている。 -ノードは、自身の子のListと属性名と属性値の組でデータを持つ。 -ノードに対するアクセスは、TreeNodeクラスに記述されているAPIを用いて行われる。 - -``` Java -// ノードの子供を扱うChildrenオブジェクトを返す -Children getChildren() - -// ノードが保持しているデータを扱うAttribteオブジェクトを返す -Attribute getAttribute() -``` - -# ChildrenとAttribute - -Childrenクラスを利用し、ノードの子どもにアクセスする。 - -``` Java -// ノードが持っている子どもの個数を返す -int size() - -// ノードが持つ子どもの中から、 変数numで指定された位置にある子ノードを返す -Either<Error, TreeNode> at(int num) -``` - -Attributeクラスを利用し、ノードの保持する値にアクセスする。 - -``` Java -// ノードからKeyで管理されるValueをobject型で返す -object get(string key) +# JungleのDatabase -// ノードからKeyで管理されるValueをstring型で返す -string getString(string key) -``` - -# Eitherクラス - -Jungleでは例外がある場合、Eitherクラスを用いて行う。 - -- 失敗時はA -- 成功時はB - -を包んで返す。 -失敗した場合ははじめからやり直す。 -以下に例を記述する。 - -``` C\# -Either<Error,TreeNode> either = children.at(2); -if (either.isA()) - return either.a(); -TreeNode child = either.b(); - -``` - -# Jungleのサンプルコード - -Jungleの例を記載する。 - -以下のコードは、ルートノードの2番目の子どもから、属性名"name"とペアになっている属性値を取得する。 - -``` C\# -JungleTree tree = jungle.getTreeByName("GameTree"); -TreeNode root = tree.getRootNode(); -Children children = root.getChildren(); -Either<Error,TreeNode> either = children.at(2); -if (either.isA()) - return either.a(); -TreeNode child = either.b(); -Attribute attribute = child.getAttribute(); -string value = attribute.getstring("name"); - -``` - -# Jungleの木の編集 - -Jungleの木の編集はJungleTreeEditorクラスを用いて行われる。 - -JungleTreeEditorクラスには編集を行うために、定義されているAPIを記述する。 - -また、ノードを指定して編集を行う際にNodePathクラスを用いる。 - -# NodePath - -Jungleでは、木のノードの位置をNodePathクラスを使って表す。 - -NodePathクラスはルートノードからスタートし、対象のノードまでの経路を、数字を用いて指し示すことで対象のノードの場所を表す。 - -また、ルートノードは例外として-1と表記される。 +Jungleの構造としては以下の図のようになっている。 <div style="text-align: center;"> - <img src="./images/NodePath.pdf" alt="message" width="400"> + <img src="./images/transaction.pdf" alt="message" width="700"> </div> -# ノードの追加 - -``` C\# -// 変数pathで指定した場所にある、ノードの子供の変数posで指定した位置子ノードを追加 -Either<Error, JungleTreeEditor> addNewChildAt( NodePath path, int pos) -// 変数pathで指定した場所にあるノードに、属性名 変数key 属性値 変数valueのペアで値を挿入 -Either<Error, JungleTreeEditor> putAttribute( NodePath path, string key, object value) - -// 変数pathで指定した場所にあるノードが持つ、属性名 変数keyとペアで保存されているデータを削除 -Either< Error, JungleTreeEditor> deleteAttribute( NodePath path, string key) - -``` - -# コミット - -編集の最後にTreeに対してコミットを行う。 - -``` C\# -// 木へ行った変更をコミット。自分が編集を行っていた間に、他のJungleTreeEditorクラスによって木が更新されていた場合、コミットは失敗 -Either<Error, JungleTreeEditor> commit() -``` - # ゲームのデータ構造 Jungleはもともと認証管理システムやWeb向けに作られたものである。
--- a/presen/slide.pdf.html Wed Feb 15 09:28:06 2017 +0900 +++ b/presen/slide.pdf.html Wed Feb 15 17:20:12 2017 +0900 @@ -70,7 +70,7 @@ <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.3.3 (2016-11-21) [x86_64-darwin16] - on 2017-02-13 20:40:38 +0900 with Markdown engine kramdown (1.13.1) + on 2017-02-15 16:56:02 +0900 with Markdown engine kramdown (1.13.1) using options {} --> @@ -159,180 +159,19 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="jungleapi">JungleのAPI</h1> - -<p>前章ではJungleの概要を記述した。 -本章ではJungleの主なAPIについて紹介する。</p> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="jungle">Jungleの木</h1> - -<p>Jungleは複数の木を名前を利用して管理しており、名前により作成・編集を行う。</p> - -<pre lang="Java"><code>// Jungleに新しく木を生成する。木の名前が重複した場合、生成に失敗しnullを返す -JungleTree createNewTree(string treeName) - -// JungleからtreeNameと名前が一致するtreeを取得する。名前が一致するTreeがない場合取得は失敗しnullを返す -JungleTree getTreeByName(string treeName) - -</code></pre> - -<p>以下のコードは、Jungleの木を”TreeName”で生成し取得する。</p> - -<pre lang="Java"><code>JungleTree tree = jungle.createNewTree("GameTree"); -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="treenode">TreeNode</h1> - -<p>Jungleが保持している木は、複数のノードの集合で出来ている。 -ノードは、自身の子のListと属性名と属性値の組でデータを持つ。 -ノードに対するアクセスは、TreeNodeクラスに記述されているAPIを用いて行われる。</p> - -<pre lang="Java"><code>// ノードの子供を扱うChildrenオブジェクトを返す -Children getChildren() - -// ノードが保持しているデータを扱うAttribteオブジェクトを返す -Attribute getAttribute() -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="childrenattribute">ChildrenとAttribute</h1> - -<p>Childrenクラスを利用し、ノードの子どもにアクセスする。</p> - -<pre lang="Java"><code>// ノードが持っている子どもの個数を返す -int size() - -// ノードが持つ子どもの中から、 変数numで指定された位置にある子ノードを返す -Either<Error, TreeNode> at(int num) -</code></pre> - -<p>Attributeクラスを利用し、ノードの保持する値にアクセスする。</p> - -<pre lang="Java"><code>// ノードからKeyで管理されるValueをobject型で返す -object get(string key) - -// ノードからKeyで管理されるValueをstring型で返す -string getString(string key) -</code></pre> - +<h1 id="jungledatabase">JungleのDatabase</h1> -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="either">Eitherクラス</h1> - -<p>Jungleでは例外がある場合、Eitherクラスを用いて行う。</p> - -<ul> - <li>失敗時はA</li> - <li>成功時はB</li> -</ul> - -<p>を包んで返す。 -失敗した場合ははじめからやり直す。 -以下に例を記述する。</p> - -<pre lang="C"><code class="language-\#">Either<Error,TreeNode> either = children.at(2); -if (either.isA()) - return either.a(); -TreeNode child = either.b(); - -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="jungle-1">Jungleのサンプルコード</h1> - -<p>Jungleの例を記載する。</p> - -<p>以下のコードは、ルートノードの2番目の子どもから、属性名”name”とペアになっている属性値を取得する。</p> - -<pre lang="C"><code class="language-\#">JungleTree tree = jungle.getTreeByName("GameTree"); -TreeNode root = tree.getRootNode(); -Children children = root.getChildren(); -Either<Error,TreeNode> either = children.at(2); -if (either.isA()) - return either.a(); -TreeNode child = either.b(); -Attribute attribute = child.getAttribute(); -string value = attribute.getstring("name"); - -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="jungle-2">Jungleの木の編集</h1> - -<p>Jungleの木の編集はJungleTreeEditorクラスを用いて行われる。</p> - -<p>JungleTreeEditorクラスには編集を行うために、定義されているAPIを記述する。</p> - -<p>また、ノードを指定して編集を行う際にNodePathクラスを用いる。</p> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="nodepath">NodePath</h1> - -<p>Jungleでは、木のノードの位置をNodePathクラスを使って表す。</p> - -<p>NodePathクラスはルートノードからスタートし、対象のノードまでの経路を、数字を用いて指し示すことで対象のノードの場所を表す。</p> - -<p>また、ルートノードは例外として-1と表記される。</p> +<p>Jungleの構造としては以下の図のようになっている。</p> <div style="text-align: center;"> - <img src="./images/NodePath.pdf" alt="message" width="400" /> + <img src="./images/transaction.pdf" alt="message" width="700" /> </div> </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-2">ノードの追加</h1> - -<pre lang="C"><code class="language-\#">// 変数pathで指定した場所にある、ノードの子供の変数posで指定した位置子ノードを追加 -Either<Error, JungleTreeEditor> addNewChildAt( NodePath path, int pos) -// 変数pathで指定した場所にあるノードに、属性名 変数key 属性値 変数valueのペアで値を挿入 -Either<Error, JungleTreeEditor> putAttribute( NodePath path, string key, object value) - -// 変数pathで指定した場所にあるノードが持つ、属性名 変数keyとペアで保存されているデータを削除 -Either< Error, JungleTreeEditor> deleteAttribute( NodePath path, string key) - -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-3">コミット</h1> - -<p>編集の最後にTreeに対してコミットを行う。</p> - -<pre lang="C"><code class="language-\#">// 木へ行った変更をコミット。自分が編集を行っていた間に、他のJungleTreeEditorクラスによって木が更新されていた場合、コミットは失敗 -Either<Error, JungleTreeEditor> commit() -</code></pre> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-4">ゲームのデータ構造</h1> +<h1 id="section-2">ゲームのデータ構造</h1> <p>Jungleはもともと認証管理システムやWeb向けに作られたものである。 これらはすべて木構造をベースとしている。</p> @@ -440,7 +279,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="either-1">Eitherのチェック</h1> +<h1 id="either">Eitherのチェック</h1> <p>Haskellでは例外処理はモナド内部で行う設計になっている。 Eitherもその一つである。</p> @@ -501,7 +340,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-5">例題のゲーム</h1> +<h1 id="section-3">例題のゲーム</h1> <p>前章ではJungle-Sharpのどのように実装したかを述べた。</p> @@ -521,17 +360,17 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-6">ゲームデータの種類</h1> +<h1 id="section-4">ゲームデータの種類</h1> <p>ゲームのデータにはいくつかの種類が考えられる。</p> -<h2 id="section-7">オブジェクトが単体で持つデータ</h2> +<h2 id="section-5">オブジェクトが単体で持つデータ</h2> <p>シーン内に存在するオブジェクトが持つパラメータ。</p> <p>例えば、プレイヤーのHPや経験値、位置座標などを示す。</p> -<h2 id="section-8">オブジェクト1つで複数持つデータ</h2> +<h2 id="section-6">オブジェクト1つで複数持つデータ</h2> <p>プレイヤーが持つアイテムデータなどを示す。</p> @@ -545,7 +384,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-9">データのデータ設計</h1> +<h1 id="section-7">データのデータ設計</h1> <p>Jungleには複数の木を持つことができる。</p> @@ -583,7 +422,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="jungle-3">Jungleの改良</h1> +<h1 id="jungle">Jungleの改良</h1> <p>前章では例題となるゲームを作成した。 その上でJungleではデータ型について問題となった。</p> @@ -613,7 +452,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-10">データを取り出す</h1> +<h1 id="section-8">データを取り出す</h1> <p>データを取り出すにはGenericで型を指定する、もしくはas演算子を用いてキャストを行う。 以下に取り出す例を記述する。</p> @@ -631,7 +470,7 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-11">まとめ</h1> +<h1 id="section-9">まとめ</h1> <p>本研究の流れは</p> @@ -641,9 +480,9 @@ <li>問題点の改良</li> </ul> -<p>となった。</p> +<p>である。</p> -<p>Jungle-Sharpの実装ではそれほど難しくはなかった。 +<p>Jungle-Sharpの実装ではJavaと比較的似ている言語であるため、移行する方法を確立した。 C#版のJungleではJavaに劣らない、もしくはそれ以上のパフォーマンスを出すことが出来た。</p> <p>実際のゲームに合わせたJungleの拡張を行った。</p>