recursal/Fanatic-Fandom huggingface dataset:
Infobox with tab-style navigation links

This styling incorporates a desktop article tabber design into a portable infobox.

```
.portable-infobox {
 background: none;
 clear: none;
 float: none;
 margin: 0;
 width: auto;
}
.portable-infobox > .pi-item,
.portable-infobox > .pi-image-collection {
 box-sizing: border-box;
 clear: right;
 display: inline-block;
 float: right;
 width: 270px;
}
.portable-infobox > .pi-item:not(.pi-header),
.portable-infobox > .pi-image-collection {
 background: #e6eff7;
}
.portable-infobox > .pi-navigation {
 background: none;
 clear: both;
 display: inline-flex;
 float: none;
 padding: 0;
 width: auto;
}
.portable-infobox > .pi-navigation ul {
 display: flex;
 align-items: center;
 margin: 0;
}
.portable-infobox > .pi-navigation li {
 display: flex;
 margin: 0;
 padding: 0;
}
.portable-infobox > .pi-navigation li:nth-child(n+2) {
 margin: 0;
 padding-left: 0.5em;
}

```
CSS central alignment meme

**Lawful good**

```
.parent {
    display: flex;
    justify-content: center;
}

```

**Neutral good**

```
.parent {
    display: table;
}
.parent {
    display: table-cell;
    vertical-align: middle;
}

```

**Chaotic good**

```
.parent {
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
}

```

**Lawful neutral**

```
.element {
    height: 100%;
    display: inline-block;
    vertical-align: middle;
}

```

**True neutral**

```
.element {
    line-height: 200px;
    height: 200px;
    display: inline-block;
    vertical-align: middle;
}

```

**Chaotic neutral**

```
.element {
    height: 200px;
    margin-top: calc(50% - 100px);
    margin-bottom: calc(50% - 100px);
}

```

**Lawful evil**

```
.parent {
    position: relative;
}
.element {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

```

**True evil**

```
.parent {
    position: relative;
}
.element {
    height: 200px;
    position: absolute;
    top: calc(50% - 100px);
}

```

**Chaotic evil**

```
.parent:before,
.parent:after {
    display: block;
}
.parent:before,
.parent:after {
    content: '';
    display: block;
    height: 100%;
    width: calc(50% - 100px);
}

```
Wikitext style tabber

## Wikitext-style tabber

* Tab 1
* Tab 2
* Tab 3

## Order

```
.portable-infobox .pi-image,
.portable-infobox .pi-image-thumbnail {
 width: 100%;
 height: auto;
}
.portable-infobox .pi-image {
 margin-top: 5px;
}
.portable-infobox .pi-image-collection .pi-image-collection-tabs {
 margin-top: 5px;
}
.portable-infobox .pi-image-collection .pi-image {
 border-top: 1px solid #666;
 margin-top: 0;
}
.portable-infobox .pi-image-collection-tabs .pi-tab-link {
 background: transparent;
 border-style: none;
 padding: 0 4px;
 margin: 0 2px;
 color: #222;
 border: 1px solid #666;
 font-weight: bold;
 font-size: small;
}
.portable-infobox .pi-image-collection-tabs .pi-tab-link:not(.current) {
 background: #25a8e0;
 color: #fff;
}

```
CodeEditorHooks.php

// <syntaxhighlight lang="php">
<?php
class CodeEditorHooks {
 /\*\*
 \* @param Title $title
 \* @param string $model
 \* @param string $format
 \* @return null|string
 \*/
 public static function getPageLanguage( Title $title, $model, $format ) {
 global $wgCodeEditorEnableCore;

 if ( $wgCodeEditorEnableCore ) {
 if ( $model === CONTENT\_MODEL\_JAVASCRIPT ) {
 return 'javascript';
 } elseif ( $model === CONTENT\_MODEL\_CSS ) {
 return 'css';
 } elseif ( $model === CONTENT\_MODEL\_JSON ) {
 return 'json';
 }
 }

 // Give extensions a chance
 // Note: $model and $format were added around the time of MediaWiki 1.28.
 $lang = null;
 Hooks::run( 'CodeEditorGetPageLanguage', [ $title, &$lang, $model, $format ] );

 return $lang;
 }

 /\*\*
 \* @param User $user
 \* @param array &$defaultPreferences
 \* @return true
 \*/
 public static function getPreferences( User $user, &$defaultPreferences ) {
 $defaultPreferences['usecodeeditor'] = [
 'type' => 'api',
 'default' => '1',
 ];
 return true;
 }

 /\*\*
 \* @param EditPage $editpage
 \* @param OutputPage $output
 \* @return true
 \*/
 public static function editPageShowEditFormInitial( EditPage $editpage, OutputPage $output ) {
 $title = $editpage->getContextTitle();
 $model = $editpage->contentModel;
 $format = $editpage->contentFormat;

 $lang = self::getPageLanguage( $title, $model, $format );
 if ( $lang && $output->getUser()->getOption( 'usebetatoolbar' ) ) {
 $output->addModules( 'ext.codeEditor' );
 $output->addJsConfigVars( 'wgCodeEditorCurrentLanguage', $lang );
 } elseif ( !ExtensionRegistry::getInstance()->isLoaded( "WikiEditor" ) ) {
 throw new ErrorPageError( "codeeditor-error-title", "codeeditor-error-message" );
 }
 return true;
 }
}
WDS tablinks

Wikitext style tabberInline tabber

```
.portable-tabber {
 display: flex;
 border-bottom: 1px solid #1a6e86
}
.portable-tabber .wds-button.portable-tabber\_\_tab {
 border-bottom: none;
 margin-right: 4px;
}
.portable-tabber a .wds-button.portable-tabber\_\_tab {
 color: #1a6e86;
 cursor: pointer;
 border-color: #1a6e86;
}
.portable-tabber a:hover .wds-button.portable-tabber\_\_tab {
 border-color: #2fb2d7;
 color: #2fb2d7;
}
.portable-tabber .selflink .wds-button.portable-tabber\_\_tab {
 color: #3a3a3a;
 border-color: #3a3a3a;
}

```
Fishing Cat

**Fishing Cat** is a wild cat. Unlike the other characters, he does not come from the forest. He became the strongest named animal after defeating Boss Bear, who was the head of the forest. He is a calm and wise fellow whom Bonobono often looks up to him for advice. Fishing Cat often likes to either sleep or meditate.
Gallery portals

In 2016, I coded a portal template design common to big wikis, that styles Wikia galleries instead. It was one of the first things I wrote using CSS. I intend to document these at some time, but here is an example implementation for now.

AndroxusAshBarikBomb KingBuckCassieDrogozEvieFernandoGrohkGroverInaraKinessaLexLianMaeveMakoaMal'DambaPipRuckusSerisSha LinSkyeTorvaldTyraViktorWilloYingZhin
Raccoon

**Raccoon**, or **Araiguma** in Japanese media, is a friend of Bonobono's, whom he often plays with, and an often reoccurring character in the franchise.

## Personality

Raccoon is irritable and often mistreats others, including his friends. He is quick to kick anyone who annoys him. Despite this, he is still capable of being good friends with others and having fun with them.

## Appearances

### Bonobono 2016

#### Major

* The Sea is a Place to Play Alone.
* My Tooth Hurts, It Really Hurts.
* I Want to Climb a Tree.

## Voice Actors

Raccoon has been portrayed by multiple voice actors throughout the series:

* Yusaku Yara, also known as Susumu Kawabe (1993 film)
* Keiji Fujiwara (1995 film)
* Kappei Yamaguchi, also known as Mitsuo Yamaguchi (2002 film)
* Takono Shinpei (2016 series)

1. ↑ http://www.allcinema.net/prog/show\_p.php?num\_p=115583
2. ↑ http://www.air-agency.co.jp/talent/man/keiji\_fujiwara
3. ↑ http://www.allcinema.net/prog/show\_p.php?num\_p=122717
4. ↑ http://www.crunchyroll.com/anime-news/2016/03/04/cast-of-bono-bono-tv-anime-prepare-for-a-furry-woodland-life
Wikipedia style infoboxes

## Order

```
.pi-background {
 background: none;
}
.portable-infobox .pi-image,
.portable-infobox .pi-border-color,
.portable-infobox .pi-secondary-background {
 background: #f8f9fa;
 border: #a2a9b1 solid;
}
.portable-infobox .pi-title {
 font-size: 14px;
 font-weight: bold;
 padding: 0.2em;
 text-align: center;
 background: none;
}
.portable-infobox .pi-header {
 background: #ddd;
 text-align: center;
 box-shadow: inset 0 0 0px 4px #f8f9fa;
 margin: -2px 0;
 padding: 7px 10px;
}
.portable-infobox .pi-title ~ .pi-item,
.portable-infobox .pi-title ~ .pi-group .pi-item {
 border-width: 0 1px;
}
.portable-infobox .pi-group {
 border: none;
}
.portable-infobox .pi-title + .pi-item {
 border-width: 1px 1px 0;
}
.portable-infobox .pi-image {
 padding-top: 20px;
}
.portable-infobox .pi-image .image-thumbnail:only-child .pi-image-thumbnail {
 padding-bottom: 20px;
}
.portable-infobox .pi-image .pi-caption {
 font-style: normal;
 text-align: center;
}
.portable-infobox .pi-image .pi-image-thumbnail {
 max-width: calc(100% - 40px);
 height: auto;
}
.portable-infobox .pi-title ~ .pi-item:last-child {
 border-bottom: 1px #a2a9b1 solid;
}

```
Raccoon's father

**Raccoon's father**, or **Araiguma's father** in Japanese media, is Raccoon's parent and caretaker.

## Personality

Raccoon's father is short-tempered, much like his son. However, he is also wiser, and has more practical knowledge.

## Voice Actors

Throughout the franchise, Raccoon's father has been portrayed by multiple men.

* Chikao Ōtsuka (1993 film)
* Hideyuki Umezu (1995 TV series)
* Danshi Tatekawa (2002 film)

## Reference

1. ↑ http://www.allcinema.net/prog/show\_c.php?num\_c=152090
2. ↑ http://www.allcinema.net/prog/show\_c.php?num\_c=235541
3. ↑ http://www.allcinema.net/prog/show\_c.php?num\_c=239454
Bonobono (1995)

*Bonobono* is an 1995 anime series that was originally broadcast on TV Tokyo . It is based off of the manga created by Mikio Igarashi of the same name. *Bonobono* ran for forty-eight episodes that aired in a twelve-minute format.

## Home Media

On April 20, 2007, *Bonobono* was re-released on DVD. It was sold as both eight individual DVDs, and as two DVD-boxes that held four of the individual DVDs each.

1. ↑ http://www.allcinema.net/prog/show\_c.php?num\_c=235541
2. ↑ http://www.allcinema.net/prog/show\_c.php?num\_c=235541#7
3. ↑ いがらしみきお(原作) (出演), 難波日登志 (監督). "TVアニメシリーズ 『ぼのぼの』 DVD-BOX Vol.1." *Amazon*. N.p., n.d. Web. 27 Oct. 2016.
4. ↑ いがらしみきお(原作) (出演), 難波日登志 (監督). "TVアニメシリーズ 『ぼのぼの』 DVD-BOX Vol.2." *Amazon*. N.p., n.d. Web. 27 Oct. 2016.
Bonobono (character)

**Bonobono** is the protagonist of the multiple *Bonobono* anime and manga. He lives with his father on a beach bordering an expansive forest, where he often spends his days.

## Personality

Bonobono is kind, but is slow-witted and is often forgetful. He has an honest disposition and is easy to fool. He has a tendency to imagine the worst possible outcome for a situation he is not familiar with. He appears to know very little of the world around him and often asks questions on how something works, and it isn't an easy task for him to understand right away.

## Appearances

Bonobono appears in all official media related to the franchise, as he is the principal character.

## Voice Actors

Bonobono has been portrayed by multiple voice actors throughout the history of the franchise.

* Toshiko Fujita (1993 film).

* Watanabe Kumiko (1995 anime).

* Yuuto Uemura (2002 film).
* Fukuko Yukimiyama (2016 anime).

## References

1. ↑ http://www.aoni.co.jp/actress/ha/fujita-toshiko.html
2. ↑ http://www.usagi.org/doi/seiyuu/watanabe-kumiko/roles.html
3. ↑ https://www.animenewsnetwork.com/encyclopedia/people.php?id=91688
4. ↑ http://animeanime.jp/article/2016/03/04/27281.html
My Tooth Hurts, It Really Hurts.

"**My Tooth Hurts, It Really Hurts."** is the second episode of Bonobono (2016).

## Synopsis

When Raccoon gets a toothache, he searches for creative ways to make it go away.

## Plot

Raccoon is sitting alone in the forest, whining in pain. Bonobono finds him and asks Raccoon what is troubling him. Raccoon reveals he has a cavity, and Bonobono suggests Raccoon put a heavy rock on his head to make the pain go away. He attempts this, but only ends up more frustrated than before. Bonobono suggests they ask Chipmunk for advice. On the way there, Bonobono attemps to discuss a conflict he had with his father, but this only annoys Raccoon more. When they find Chipmunk, he greets them with his catchphrase, "Are you going to bully me?" This makes Raccoon angry and causes him to kick Chipmunk. Regardless, Chipmunk suggests that Raccoon needs to quit being angry at his tooth and the pain will go away. Raccoon attempts to relax but finds that he is still in pain.

Chipmunk then advises Raccoon to attempt biting the bark of a Kamusarami tree, claiming that it has anesthetic properties. This fails to help Raccoon, who is pained even more. After this, Chipmunk tells Raccoon he should pull out the tooth that is inflicting pain on him. Raccoon is open to the idea, and Chipmunk decides to remove it by climbing inside of Raccoon's mouth himself. After one failed attempt, Chipmunk succeeds by having Raccoon laugh heartily while Bonobono stands by with a rope that is attached to Chipmunk's waist. Chipmunk pulls the tooth out mid-laugh, causing Raccoon to scream in agony.

Enraged, Raccoon throws his tooth far away. He soon rejoices, however, because he no longer has to deal with the pain. The next day, Bonobono remarks that Raccoon seemed bored, but doesn't speculate as to why.

## Characters

### Major

* Bonobono
* Raccoon
* Chipmunk

## Trivia

* This episode marks the first appearance of Chipmunk.
Spelunky

**Spelunky** is a roguelike game released in 2008. The goal of the game is to travel through 16 procedurally generated levels and defeat the main bosses. Because the levels are procedurally generated, each playthrough of the game is slightly different.

Here we will see a little bit of how the generating algorithm works.

## Level Generation

### Rooms

Each level in Spelunky is made of 16 "rooms" arranged in a 4x4 grid. There are four basic types of rooms:

* Type 0: Rooms not on the solution path (explained below).
* Type 1: Rooms with left and right exits.
* Type 2: Rooms with left, right, and bottom exits. If the room above this one is type 2, then this room will also have a top exit.
* Type 3: Rooms with left, right, and top exits.

### Room Creation and Placement

The aim of the algorithm is to create a **solution path**, which is a series of rooms through which the player can reach the exit.

* First, the start room is placed somewhere on the top row. It's either a Type 1 or Type 2 room.
Bonobono (2016)

***Bonobono*** is a 2016 anime series produced by the studio Eiken  and broadcast by Fuji TV . The series is a comedy based around the every-day life of the young sea otter, Bonobono, and his friends. Episodes are broadcast in a 5-minute format . The series is officially licensed for streaming with English-language subtitles on Crunchyroll .

## Production Crew

* **Original Creator:** Mikio Igarashi

* **Director**: Hidenori Yamaguchi
* **Series Composition:** Mitsutaka Hirota
* **Sound Director:** Chikako Yokata
* **Color Design:** Yuka Chiyoma
* **Art Director:** Noriko Kohinata
* **Sound Effects:** Yasuyuki Konno
* **Animation Director:** Machiko Negishi
* **Director of Photography:** Yuuichi Sakamoto
* **Character Design:** Yuuka Sekiguchi
* **Music:** Takatsugu Wakabayashi

## Cast

* **Bonobono:** Fukuko Yukimiyama
* **Chipmunk:** Aya Ogata
* **Raccoon:** Yuuki Kurofuji
* **Fishing Cat:** Shinpei Takano

## Home Media

see: Bonobono (2016) Home Media

*Bonobono* has been licensed for release on home video in Blu-ray and DVD formats. Two releases have been confirmed, each holding thirteen episodes.

## References

1. ↑ http://anidb.net/perl-bin/animedb.pl?show=creator&creatorid=775
2. ↑ http://anidb.net/perl-bin/animedb.pl?show=creator&creatorid=741
3. ↑ https://myanimelist.net/anime/32353/Bonobono\_2016
4. ↑ 4.0 4.1 http://www.allcinema.net/prog/show\_c.php?num\_c=355147#1
5. ↑ Beveridge, Chris. "First ‘Bonobono’ Anime DVD/BD Release Artwork Arrives ..." *The Fandom Post*. N.p., 28 Aug. 2016. Web. 27 Oct. 2016.
6. ↑ Beveridge, Chris. “
Second ‘Bonobono’ Anime DVD/BD Release Scheduled, Artwork Arrives .” The
 Fandom Post, 22 Oct. 2016. Web. 26 Oct. 2016.
Bonobono (2016) Home Media

## Releases

Format: Blu-ray and DVD
Release Date: September 23rd, 2016
* Blu-ray Limited Edition: 6480 yen
* Blu-ray Standard Edition: 5184 yen
* DVD Limited Edition: 5400 yen
* DVD Standard Edition: 4104 yen
* Contains episodes 1-13.
**Bonobono Volume 2**
**Format: Blu-ray and DVD**
**Release Date: December 24, 2016**
* **Blu-ray Limited Edition: 6480 yen**
* **Blu-ray Standard Edition: 5184 yen**
* **DVD Limited Edition: 5400 yen**
* **DVD Standard Edition: 4104 yen**
* **Contains episodes 14-26.**

1. ↑ Beveridge, Chris. "First ‘Bonobono’ Anime DVD/BD Release Artwork Arrives ..." *The Fandom Post*. N.p., 28 Aug. 2016. Web. 27 Oct. 2016.
2. ↑ “ ぼのぼの 1 ブルーレイ 特装版 [Blu-Ray] .” Amazon, n.d. Web. 26 Oct. 2016.
3. ↑ Beveridge, Chris. “
Second ‘Bonobono’ Anime DVD/BD Release Scheduled, Artwork Arrives .” The
 Fandom Post, 22 Oct. 2016. Web. 26 Oct. 2016.
4. ↑ “ ぼのぼの 2 ブルーレイ 特装版 [Blu-Ray] .” Amazon, n.d. Web. 26 Oct. 2016.
Bonobono (manga)

***Bonobono*** is a yonkomamanga series created by Mikio Igarashi. The series is published by Takeshobo, and has ran in their magazines since March 1986. The manga is centered around the every-day life of the sea otter Bonobono and his friends in their often comedic adventures in the forest where they live. The manga has been collected into 41 tankbon (standard-sized) volumes, and 15 bunkoban (extra-large sized volumes). The first three volumes of the manga were licensed for release in English by Jmanga, a digital manga distribution company, before the service was terminated in 2013.

## Volumes

* Volume 1 (March 1987)
* Volume 2 (December 1987)
* Volume 3 (September 1988)
* Volume 4 (August 1989)
* Volume 5 (September 1990)
* Volume 6 (June 1991)
* Volume 7 (November 1991)
* Volume 8 (May 1993)
* Volume 9 (October 1993)
* Volume 10 (November 1994)
* Volume 11 (August 1995)
* Volume 12 (January 1996)
* Volume 13 (September 1996)
* Volume 14 (March 1997)
* Volume 15 (December 1997)
* Volume 16 (September 1998)
* Volume 17 (August 1999)
* Volume 18 (December 1999)
* Volume 19 (August 2000)
* Volume 20 (January 2001)
* Volume 21 (May 2002)
* Volume 22 (February 2003)
* Volume 23 (July 2003)
* Volume 24 (January 2004)
* Volume 25 (January 2005)
* Volume 26 (July 2005)
* Volume 27 (October 2005)
* Volume 28 (July 2006)
* Volume 29 (April 2007)
* Volume 30 (March 2008)
* Volume 31 (July 2009)
* Volume 32 (August 2009)
* Volume 33 (December 2009)
* Volume 34 (August 2010)
* Volume 35 (July 2011)
* Volume 36 (May 2012)
* Volume 37 (July 2013)
* Volume 38 (February 2014)
* Volume 39 (July 2014)
* Volume 40 (June 2015)
* Volume 41 (March 2016)

Note: since the Bunkoban volumes are not known to add unique content, they are not considered notable enough for their own individual articles. However, a gallery of their covers and publication dates can be seen here: Bonobono (bunkoban)

## Accolades

In 1987, Bonobono tied for winning the Kodansha Manga Awards in the Young Adults/General category, the manga it tied with having been Be-Bop High School.

## References

1. ↑ "TVアニメぼのぼの｜vol.1." *TVアニメぼのぼの｜vol.1*. Takeshobo, n.d. Web. 27 Oct. 2016.
2. ↑ https://web.archive.org/web/20130318021544/http://www.jmanga.com/urgent\_message
3. ↑ http://web.archive.org/web/20070816031310/http://www.hahnlibrary.net/comics/awards/kodansha.shtml
Plan Space

A **plan space** algorithm represents a quest as a graph (see Generative Grammars for explanation of graphs) where nodes are partial or complete *plans* for what happens in the quest, and edges are *operations* like "walk" or "fight" that take you closer to a complete plan from start to end.

## Plan Space Algorithm

###  Plan Space Algorithm

This algorithm is also presented in pseudocode, and will be implemented in a code example. Plan space algorithms are more elaborate than state space, and is also considered more akin to how humans naturally think. The starting point, the root node, has the initial state *and* the goal state. Each step along the graph goes closer to an end state, and tries to fix a *flaw* in the plan, which is one of two things:

* An *open precondition*, a precondition for a solution that has not yet been met.
* A *threat*, a condition that could undo an established step.

```
1: Construct the root node as the planning problem

2: Select a non-terminal node, based on a heuristic value

3: Select a flaw in the node
   If there is no flaw, the node is a full plan from initial state to end, return it as a solution

4: Create children by repairing the flaw
   If the flaw is an open precondition
      a) Establish a causal link from an existing plan step, or
      b) Add a plan step that satisfies the open precondition
   If the flaw is a threat
      a) Add a temporal ordering constraint so that the causal link is not disrupted, or
      b) Add a binding constraint to separate the threatening step from steps involved in the threatened casual link
   If the flaw is not repairable, this node is terminal and cannot lead to a solution. Go to step 2.
   If the number of nodes created exceeds the amount of nodes allowed, mark this node as a failure and try another one.

5: Otherwise go to step 2 and repeat

```

### Plan Space Algorithm Explained

This more complicated algorithm begins with knowledge of both the start *and* end states. For each state being checked, it analyzes it with a heuristic algorithm to see which one is the most likely to reach a solution the quickest. Whichever one is the best is selected. The algorithm then looks for either unmet conditions or cases that might undo existing conditions. If the flaw can't be repaired, the node is discarded and the next best one is picked. This continues until either the amount of nodes is too big, or a node with no flaws is found. The path from the starting node, to the one with no flaws, is the desired path.

## Citations

* Noor Shaker, Julian Togelius, and Mark J. Nelson (2016). “Planning with applications to quests and story” *Procedural Content Generation in Games: A Textbook and an Overview of Current Research*. Springer. ISBN 978-3-319-42714-0.
Bonobono Wiki

Welcome to the Bonobono wiki! Anyone is free to edit and contribute to the knowledge base.

 An easy way to help out is to improve an article marked as a stub, or create a page marked as a wanted page.

 Guidelines to consider to avoid violating copyright are here.

 The wiki's bureaucrat can be found here.

## The World of Bonobono!

### Anime

* Bonobono (1993 film)
* Bonobono (1995 television series)
* Bonobono: Kumomo no Ki no Koto (2002 film)
* Bonobono (2016 television series)

### Manga

#### Bonobono (manga)

##### Tankobon

* Volume 1 (March 1987)
* Volume 2 (December 1987)
* Volume 3 (September 1988)
* Volume 4 (August 1989)
* Volume 5 (September 1990)
* Volume 6 (June 1991)
* Volume 7 (November 1991)
* Volume 8 (May 1993)
* Volume 9 (October 1993)
* Volume 10 (November 1994)
* Volume 11 (August 1995)
* Volume 12 (January 1996)
* Volume 13 (September 1996)
* Volume 14 (March 1997)
* Volume 15 (December 1997)
* Volume 16 (September 1998)
* Volume 17 (August 1999)
* Volume 18 (December 1999)
* Volume 19 (August 2000)
* Volume 20 (January 2001)
* Volume 21 (May 2002)
* Volume 22 (February 2003)
* Volume 23 (July 2003)
* Volume 24 (January 2004)
* Volume 25 (January 2005)
* Volume 26 (July 2005)
* Volume 27 (October 2005)
* Volume 28 (July 2006)
* Volume 29 (April 2007)
* Volume 30 (March 2008)
* Volume 31 (July 2009)
* Volume 32 (August 2009)
* Volume 33 (December 2009)
* Volume 34 (August 2010)
* Volume 35 (July 2011)
* Volume 36 (May 2012)
* Volume 37 (July 2013)
* Volume 38 (February 2014)
* Volume 39 (July 2014)
* Volume 40 (June 2015)
* Volume 41 (March 2016)

### Picture Books

* Kawaisō no Koto (December 1987)
* Shimarisu-kun Daikatsuyaku!! Gō (December 1987)
* Ōkii no Koto Chiisai no Koto (June 1988)
* Megane Yamane-kun no Koto (May 1989)
* Minna Omoide na no Darō: Bonobono no Kagashū (November 1993)
* Bonobono (December 1993)
* Kurisumasu no Koto (November 1998)
* Tsuwaio no Koto (July 2006)

### Misc. Books

#### Film Comics

* Volume 1 (December 1993)
* Volume 2 (December 1993)
* Volume 3 (January 1994)
* Volume 4 (January 1994)

### Video Games

* Bonogurashi (April 1995)
* Bonogurashi: Kore de Kanpeki Disu (June 1996)
State Space

A **state space** algorithm represents a quest as a graph (see Generative Grammars for explanation of graphs) where nodes are *states* of the game, and edges are *actions* between states. It starts with the initial game state, then repeatedly applies actions like "walk" or "fight" to create new game states. The algorithm continues doing this until a desired ending game state is found, then returns the path from start to end.

## State Space Algorithm

###  State Space Algorithm

Because this algorithm is so general, it's better to present it in pseudocode. A Python implementation is shown in the code examples. An *operator* here is simply something that causes a change in state: traveling to a new area, defeating a boss, finding an item, etc. You can also define a maximum number of nodes permitted in the graph. This prevents quests from being too long, and also stops the algorithm for running too long.

```
1: Construct the node representing the initial state

2: If every node is a terminal node, mark this node as a failure and try on another node.

   If this node is the goal state, return the path form the initial state to this one

3: Select an applicable operator

4: Create child nodes by applying the operator
   If the number of nodes created exceeds the amount of nodes allowed,
   mark this node as a failure and try another one.
   Otherwise go to step 2 and repeat

```

### State Space Algorithm Explained

The algorithm begins with the initial state. This could mean something like the player being in the starting town of the game, with no items. The desired end state of the game involves having a particular weapon and using it to defeat the final boss. Taking examples from the typical RPG, there are many steps that can happen in between those two points: moving to other locations, fighting enemies, retrieving items, and so on.

The state space algorithm simply goes through the possible actions the player could do from the start. It builds a path, one step at a time, seeing what happens if a certain action is performed. If a state is reached that is not the desired ending, but no more actions can be applied, then that course of actions is rejected. Similarly if a list of actions becomes too long, it's rejected. The algorithm continues doing this until a successful path from start to end is found.

## Citations

* Noor Shaker, Julian Togelius, and Mark J. Nelson (2016). “Planning with applications to quests and story” *Procedural Content Generation in Games: A Textbook and an Overview of Current Research*. Springer. ISBN 978-3-319-42714-0.
Personagens de Jogadores

Apesar dos pesares, a história das Guerras do Cálice de Duwang é feita por seus jogadores. Aqui, listaremos os personagens que foram controlados por cada jogador em seu respectivo RPG.

## **Best**

* Giusev de Sardenha (1º Destino)
* Ceasar McNair (2º Destino)
* Luthari Silvas e Silva (3º Destino)
* Douglas Silvas e Silva (4º Destino)
* Douglas Silvas e Silva (5º Destino)

## **Esteves**

* Mio Kalar (1º Destino)
* Narrador (2º Destino)
* Narrador (3º Destino)
* Narrador (4º Destino)
* Narrador (5º Destino)

## **Migliole**

* Narrador (1º Destino)
* Magali Carileiro (2º Destino)
* Guto de Melo (3º Destino)
* Magali Carileiro (4º Destino)
* Zorro (5º Destino)

## **Lake**

* Camila Eldan (1º Destino)
* Nathan Flamel Abeno (2º Destino)
* Aurelius Vayne (3º Destino)
* Rouna Gittan (4º Destino)
* Rouna Gittan (5º Destino)

## **Lost**

* Charles Wood (1º Destino)
* Takuan Musou (2º Destino)
* Josef Plissken (4º Destino)

## **Shadow**

* Kazuki Akiyama (1º Destino)
* Cassius Vayne (2º Destino)
* Klaus Leonhardt (3º Destino)
* Arthur Dent (5º Destino)

## **Jinrou**

* Erick Crest (2º Destino)
* Gladious Rockfeller (4º Destino)
* Luna Fang (5º Destino)

## **Droko**

* Alexander Rockfeller (2º Destino)
* Simon Kalar (3º Destino)
* Nicholas Grisham (4º Destino)

## **Gilgamesh**

* Sebastian Izayoi (2º Destino)
* Snake SROLSAYKACY (3º Destino)
* Sebastian Izayoi (4º Destino)
* Gladious Rockfeller (5º Destino)

## **Dunia**

* Ataris Rockfeller (3º Destino)
* Josephine Vayne (4º Destino)
* Josephine Vayne (5º Destino)

## **Zet**

* Simon Kalar (3º Destino)
* Simon Kalar (4º Destino)
* Jonathan Sins (5º Destino)

## **Husky**

* Rick Seymour (4º Destino)
* Vhuehue Sins (5º Destino)

## **Jota**

* Nico SROLSAYKACY (4º Destino)
* Nico SROLSAYKACY (5º Destino)
Generative Grammars

**Generative grammars** are a class of techniques used to create dungeons based on what actions the player needs to perform to win the game level. They are similar to L-systems in that there are production rules and rewriting, however generative grammars work on graphs instead of strings.

## Generative Grammar

There are many ways to implement generative grammars in detail, so a general form of the algorithm is shown here. The algorithm works on *graphs*, which are composed of *nodes* and *edges*. It also uses *production rules*, which are key-value pairs used to find subgraphs in the main graph and expand it.

### Generative Grammar Algorithm

```
create a set of production rules

create the start of the main graph

for a desired number of iterations:

    create a temporary graph that matches the main graph

    for each production rule:

        find each instance of the production rule's key in the temporary graph

        replace the instances of that production rule's key with its value

        set the main graph to match the temporary graph

```

### Generative Grammar Algorithm Explained

First it is important to understand what production rules look like. These are phrases or symbols representing actions the player has to do, such as "finish level," "fight main boss," "pick up key," and so on. The key of the production rule is a more general phrase, such as "finish level," and the value that is put into the main graph are the needed steps: "pick up key, fight an orc, drink potion, unlock door." Branching is allowed: the player may have more than one option: "fight the bridge troll" versus "swim across the river." The more iterations used to generate the graph, the longer and more complex the graph becomes.

The main loop of the algorithm is relatively simple. Go through the production rules and wherever it is found in the graph, replace it with the actions associated with it. Coming up with a good starting graph and good production rules is the most challenging part of generative grammars. This can be done manually or be created using other procedural generation methods.

It is important to note this algorithm says nothing about actual layout of dungeons or their visual properties. It just creates an abstract "to do" list. Dungeons may be rendered as plain square rooms in a line, placed in a spiral, or even made using procedural generation methods like Simplex noise or cellular automata.

## Citations

* R. van der Linden, R. Lopes and R. Bidarra, "Procedural Generation of Dungeons," in *IEEE Transactions on Computational Intelligence and AI in Games*, vol. 6, no. 1, pp. 78-89, March 2014.
* Noor Shaker, Julian Togelius, and Mark J. Nelson (2016). *Procedural Content Generation in Games: A Textbook and an Overview of Current Research*. Springer. ISBN 978-3-319-42714-0.
Chipmunk

> *"Are you going to bully me?"*
>
>

**Chipmunk,** or **Shimarisu** in Japanese media, is a friend of Bonobono's. He lives alone in a tree with the forest, although he is occasionally visited by his two sisters, Shou and Dai.

## Personality

Chipmunk is very energetic, but also anxious. He frequently asks others if they intend to bully him, but most of the time he is confident. He has also been demonstrated to have a mischevious side.

## Voice Actors

Although Chipmunk is male, he has been portrayed exclusively by women throughout the multiple Bonobono anime.

* Sumie Baba (1993 film).
* Konami Yoshida (1995 series and 2002 film).
* Aya Ogata (2016 series).

## Trivia

* In the first volume of the manga, the character index speculates that Chipmunk may be bullied because of his noisy eating habits and feminine way of speaking.

## References

1. ↑ http://www.allcinema.net/prog/show\_c.php?num\_c=152090
2. ↑ http://www.allcinema.net/prog/show\_c.php?num\_c=235541
3. ↑ http://www.allcinema.net/prog/show\_c.php?num\_c=239454
4. ↑ http://animeanime.jp/article/2016/03/04/27281.html
5. ↑ Igarashi, Mikio. *Bonobono Volume 1*. Takeshobo, 1987. Print.
The Sea is a Place to Play Alone.

**"The Sea is a Place to Play Alone."** is the first episode of Bonobono (2016).

## Synopsis

Bonobono has fun riding the waves with Raccoon.

## Plot

Bonobono is riding the waves by himself. He remarks that his father thinks he looks odd while surfing, and has a flashback where his father attempts to surf. However, he becomes tired and wipes out. In the present, Bonobono is waiting for the waves to knock him down. They do so, and he crashes into the sand. He then floats through the water holding onto a stick, when he notices a splash near him. Raccoon had threw a rock into the water to get Bonobono's attention.

Raccoon angrily greets Bonobono due to him believing that Bonobono had wasted time by looking for the rock underwater. Bonobono is unfazed, however, and cheerfully greets Raccoon. In response, Raccoon asks him if he knows what a "cornus controversa paperplant" is. Raccoon walks away after Bonobono responds that he does not, but Bonobono reveals that this is what they often say before playing together.

Bonobono asks Raccoon if he wants to play in the water, but Raccoon is reluctant. He changes his mind, however, when he notices a log in the water, and he decides to float with it. The two try to come up with an idea for what they can play in the water, and Bonobono suggests rock-paper-scissors. This angers Raccoon, so instead Bonobono proposes they ride on the waves. Raccoon agrees to this, and Bonobono demonstrates the game. Raccoon then tries, and decides that crashing through the sand is his favorite part, while Bonobono's favorite part is being at the top of the waves. The two try variations of the game, including using a log and seaweed.

The waves having died down, Raccoon decides to leave. He says that he had fun, and Bonobono agrees. Bonobono, reflecting on the day, decides that riding the waves is not about playing with yourself, but playing with the ocean.

## Characters

### Major Characters

* Bonobono
* Raccoon

## Trivia

* This episode marks the first appearance of Bonobono, Raccoon, and Bonobono's dad.
I Want to Climb a Tree.

**"I Want to Climb a Tree."** is the third episode of Bonobono (2016).

## Synopsis

Bonobono attempts to climb a tree, and receives advice from an unlikely source.

## Plot

Bonobono is standing on a path in the forest, observing a large tree. He considers what it would be like to climb it, and recalls a time in which he tried to climb a tree in the past, but wasn't sure what to do. He says that he could start climbing the tree, but that he needs to be able to follow through on it.

Bonobono starts to climb the tree, but panics and freezes partway up. He forces himself to continue, but before he can climb further, Raccoon comes up to him and mocks Bonobono's way of climbing trees.

Raccoon brings Bonobono to a tree that is outfitted with many branches, making it optimal for climbing. He decides that it still needs more branches, however, and gets his father to do so. Bonobono trips as he approaches the tree, causing Raccoon to mock him again. The two begin to climb the tree together, and manage to reach the top.

Bonobono marvels at the scenery he can see from his high vantage point. He considers the difference in what he was able to see before, when he was on the ground, compared to where he is now. Raccoon points out that a bird can see much more, and that a worm can never hope to see much at all. This makes Bonobono consider the different views of the world, and wishes that he could experience the way other animals see the world.

Raccoon's father gives Bonobono a speech about how he shouldn't worry about his limitations. Bonobono's continued questions frustrates him and causes him to descend from the tree, however. He parts with the remark that a life spent trying many things may not be so bad. Bonobono agrees, looking thoughtfully at the tree.

## Characters

### Major

* Bonobono
* Raccoon
* Raccoon's dad

## Trivia

* This episode features the first appearance of Raccoon's father.
Servos

**Servos** são Espíritos Heroicos e Espíritos Divinos, evocados pelo Cálice Sagrado com o propósito de competir com seus Mestres na Guerra do Cálice de Duwang.

## Lista de Servos

### **Saber**

*Cavaleiro da Espada e o Espírito Heroico da Espada. Um guerreiro versátil, ágil e poderoso em combates de curta distância; um exímio espadachim.*

### **Lancer**

—*Cavaleiros da Lança e Espíritos Heroicos da Lança. Dotados de extrema agilidade e proficiência em armas brancas de longo alcance.*—

### **Archer**

—*Cavaleiro do Arco e Espírito Heroico do Arco. Excelentes sentinelas que se sobressaem por possuir poderosos Fantasmas Nobres. Mestres da guerra à longa distância.*—

### **Rider**

—*Cavaleiros montados e Espíritos Heroicos da Montaria. Especialistas capazes de domar qualquer fera, seja ela mitológica ou mecânica.*—

### **Caster**

—*Magos e Espíritos Heroicos da feitiçaria. Adeptos da magia, sendo um dos poucos capazes de usar feitiços do mais alto calibre.*—

### **Assassin**

—*Assassinos silenciosos e Espíritos Heroicos do assassinato. Extremamente habilidosos em operações secretas, subversiva e de trabalhar sem deixar rastros.*—

### **Berserker**

—*Guerreiros enlouquecidos e Espíritos Heroicos da Fúria. Soldados instáveis que perderam quase todos os traços de sua sanidade em troca de grandes poderes.*—

### **Avenger**

—*Vigilantes e Espíritos Heroicos da Vingança. Guerreiros rancorosos que suportaram enorme asco no passado, o próprio ódio encarnado. O lado negro do Cálice Sagrado, que é o verdadeiro conteúdo da taça.*—

### **Ruler**

—*Porta-bandeiras que guiam as Guerras do Cálice pelo caminho correto. Virtuosos Guerreiros evocados pelo próprio Cálice Sagrado, com o dever de governar os rituais das Guerras do Cálice.*—

### **Shielder**

—*Mestres da Defesa e Servos do Escudo. Guerreiros únicos que possuem guarda quase indestrutíveis.*—

Nenhum servo da classe Shielder é conhecido até o momento.
Bezier Curves

**Bezier curves** are a technique for drawing curved lines around specific points. While not technically a method for procedurally generating content, it is quite useful in displaying such content.

## Bezier Curve Algorithm

Two algorithms are presented here: the original version, with a simple but inefficient implementation, and a version known as de Casteljau's algorithm.

### Bezier Curve Algorithm

Given a list of x-y coordinates of length **n**, do the following:

```
for a series of numbers t from 0 to 1:
    set final x and final y to 0
    for coord in position k in the list of coordinates:
        add to final x coordinate the result of this equation: coord x*(n!/k!*(n-k)!)*(1-t)^k
        add to final y coordinate the result of this equation: coord y*(n!/k!*(n-k)!)*(1-t)^k
    draw a point at coordinate of (final x, final y) and connect it to the previous point

```

### Bezier Curve Algorithm Explained

The algorithm takes a series of points on the x-y graph. This version of the algorithm displays it as a bunch of line segments, the exact number determined by the number of subdivision the coder chooses. For each iteration of **t**, the weight of each coordinate is added to find the point.

The most complicated part of the algorithm is this:

```
 (n!/i!*(n-i)!)

```

This is called a *binomial* and usually expressed as (n k) where n is located above the k. It is usually read out loud as "n choose k," and often appears in the branch of math known as combinatorics or discrete math.

When all the sums are finished, the final coordinate is the next point along the line. Draw this point, then connect it to the previous point (if there are any).

### de Casteljau's Algorithm

```
connect the each point of the curve with a normal, straight line to the next point

choose a number t between 0 and 1

on each line, mark a point at distance t along that line. For example if t = .2, then the point is placed .2 or 20% along the line.

draw lines between the newly created points

repeat the process of creating points and connecting lines until there is only one line left.

```

### de Casteljau's Algorithm Explained

The algorithm repeatedly places points along existing lines, then connects those points with new lines. Each iteration, there is one fewer lines and one fewer point, until eventually there is only one point. By repeatedly using this algorithm with different, perhaps incrementing, values of **t**, a series of points along the Bezier curve is created. A smoother curve is created by using a larger number of points.

## Code Examples

The code examples are available in the bezier folder in the repository.

### Bezier Curve Demo

This demo simply shows a Bezier curve of four points arranged in a roughly W-shaped arrangement.

## Citations

* Kamermans, Mike. "A Primer on Bezier Curves." *Pomax.github.io*. Mike Kamermans. n.d. Web. 24 Nov., 2016. https://pomax.github.io/bezierinfo/
Procedural Content Generation Wiki

## Welcome to the Procedural Content Generation Wiki

Welcome to the Procedural Content Generation wiki! Here you will find pages explaining the uses and algorithms behind **procedural content generation** (PCG). Also included are case studies of actual games and programs that use PCG, as well as code snippets in Python that you can download and test for yourself.

PCG is widely used in video games to add unique content, meaning no two players will have the exact same experience. It is also used for simulations, ranging from plants to cities. PCG is becoming more commonplace, and is a topic of interest for many.

This wiki is intended for those who want to learn procedural content generation, and know how to program, but are new to the topic and thus don't understand the math and algorithms behind it.

The pages are generally organized by the purpose of the algorithms.

* Terrain/Galaxy Generation
	+ Perlin Noise
	+ Simplex Noise
* Cities
	+ L-Systems
	+ Bezier Curves
* Roguelikes
	+ Cellular Automata
	+ Generative Grammars
* Quests and Gameplay
	+ State Space
	+ Plan Space

The code demos are written in Python 3.5, and uses Pygame 1.9.2 for graphics. To view the demos, download and run them. Their source code is available in the GitHub repository.
Genetic Algorithms

**Genetic algorithms** are a technique for improving content by repeatedly creating groups of items, checking to see which ones best score on a certain ranking, then mixing some of the top items together. It mimics natural selection, in that that the best performers are able to pass along attributes to later generations.

## Genetic Algorithm

In the case of dungeon generation, genetic algorithms are used for creating a dungeon layout that best fits various properties. The map is represented as a tree and evaluated with a **fitness function**, which looks at the properties the map has (such as room count, average room size, number of enemies, number of treasure chests, or practically anything else) and returns a value.

Because genetic algorithms can be implemented in so many different ways, a very general version is presented here.

### Algorithm

```
1: create a group of one-room maps

```
Sakura SROLSAYKACY I

A Princesa Sakura Song Ramia Orihara Laurentino Solid Aino Yazawa Kuroki Akemi Chiyo Ylisse I de apenas 4 anos de idade é filha de Duwang II e uma das possíveis herdeiras do trono. Como seu Tio ainda não tem filhos, após a morte de seu pai e seu tio Sakura seria a próxima governante de Duwang por direito. Ela ainda não possui idade para entender os conflitos internos da família e é muito apegada ao seu Tio. Por ser a primeira filha de seu pai herdou a Sorcery Trait do Rei Original.
Thunderball (1965)

Film
Obsazení
Tvůrci
Zajímavosti
Související

***Thunderball*** je britsko-americký akční film z roku 1965 režiséra Terence Younga. Snímek vznikl na motivy stejnojmenné knihy od spisovatele Iana Fleminga a je součástí Bondovské série. V hlavních rolích se představili Sean Connery, Claudine Auger, Adolfo Celi a Luciana Paluzzi. O scénář se postarali Richard Maibaum a John Hopkins, kteří vycházeli z původního scénáře od Jacka Whittinghama.

## Odkazy

### Související

* Soundtrack k filmu
* Postavy ze světa Jamese Bonda

### Externí

* *Thunderball* na ČSFD.cz
* *Thunderball* na IMDb.com
* *Thunderball* na Rottentomatoes.com
Laura Izayoi

Participações

**Laura Izayoi** é filha adotiva de Sebastian Izayoi, e foi uma peça importante para o desfecho da 7ª Guerra do Cálice de Duwang.

## Descrição Física

Laura não possui o braço esquerdo em sua totalidade, que foi perdido no passado. Na mesma situação, ela adquiriu diversas marcas de queimadura por todo o corpo.

Também gosta de se vestir com roupas de Lolita Gótica.

## Background

Laura se tornou órfã aos 4 anos após um incêndio que matou ambos seus pais e queimou parte de seu corpo e a fez perder o braço esquerdo.
Mesmo ainda criança demonstrava alta afinidade mágica e possuía habilidades especiais, provavelmente adquiridas pela sua linhagem. Estas habilidades não passaram despercebidas por Sebastian Izayoi que a adotou pensando em utilizar este poder ao seu favor no futuro.
Sua verdadeira linhagem é mantida em segredo e as informações sobre o que ela é capaz de fazer são escassas.

No ano de 2000, Sebastian descobriu sobre Johan Crest, e suspeitando que ele pudesse ter memórias da Realidade ♂, enviou Laura para acompanhar o louco a partir do pressuposto de que ela é uma enfermeira e que cuidaria dele.

## Escola de Magia: Auto-Didata [Voo com Vassoura]

Não se sabe qual ou quais são as escolas de magia possuídas por ela ou por sua linhagem.

## Sorcery Trait: Mystic Eyes of Petrification

Sabe-se que Laura possui um Sorcery Trait, mas não há informações sobre qual é a sua capacidade.

## Participações

### Pré-7ª Guerra do Cálice de Duwang

Laura foi enviada para a Alemanha, para ser enfermeira de Rohan Crest, a pedido de seu pai adotivo, Sebastian Izayoi.

### *7ª Guerra do Cálice de Duwang*

A pedido de seu pai, ela voltou para Duwang junto de sua guarda pessoal, Os Homens de Preto. A viagem foi feita de Iate.

Quando finalmente chegou à cidade, Laura participou diretamente do confronto entre Sebastian Izayoi e Ceasar McNair. Durante a batalha, ela utilizou de algum artifício para tentar limitar a movimentação do servo inimigo, Saber.
Připoutejte se, prosím! (1980)/Obsazení

Film
Obsazení
Tvůrci
Zajímavosti
Související

Robert Hays
 Ted Striker
Julie Hagerty
 Elaine Dickinsonová
Leslie Nielsen
 doktor Rumack
Kareem Abdul-Jabbar
 Roger Murdock
Lloyd Bridges
 Steve McCroskey
Peter Graves
 Clarence Oveur
Lorna Patterson
 Randy
Robert Stack
 Rex Kramer
Stephen Stucker
 Johnny Henshaw-Jacobs
Frank Ashmore
 Victor Basta
Jonathan Banks
 Gunderson
Lee Bryant
 paní Hammenová
Joyce Bulifant
 paní Davisová
Craig Berenson
 Paul Carey
Jim Abrahams
 náboženský fanatik
Iwan Musou

## Background

Sir Iwan Musou é um veterano de guerra e atual Marechal das forças armadas de Duwang. Foi um amigo e servo fiel do Rei George IV e continuou cumprindo seus deveres diligentemente sob o comando do Rei Duwang II.

Apesar de ser subordinado a família SROLSAYKACY, Iwan por si só pertence a uma das mais nobres famílias da cidade e apenas chegou a posição máxima no exército por possuir capacidades mágicas acima do comum. Recebeu o título de "Sir" pelas mãos do Rei George IV durante seu período de gloria e foi o professor de Snake nas artes das Magias Elementais.