TEXTBOOK SECTION / AI LEARNING

人生のマスを作ってみよう

Flutterアプリケーション開発概論の「人生ゲームを作る。サイコロ処理・イベント分岐・プレイヤー管理・データ設計・アニメーション」より、人生のマスを作ってみようを解説。生成AI、AI活用、DX、業務改善を実践しながら学べるオンライン教材です。

7人生ゲームを作る。サイコロ処理・イベント分岐・プレイヤー管理・データ設計・アニメーションFlutter / iOS / Android / MacOS / Windows / 基礎から学ぶ / 開発 / アプリ開発

OVERVIEW

この節で学べること

概要を表示する
項目内容
教材名Flutterアプリケーション開発概論
人生ゲームを作る。サイコロ処理・イベント分岐・プレイヤー管理・データ設計・アニメーション
人生のマスを作ってみよう
カテゴリFlutter / iOS / Android / MacOS / Windows / 基礎から学ぶ / 開発 / アプリ開発
学習内容生成AI、AI活用、DX、業務改善を実践しながら理解するための教材です。

TABLE OF CONTENTS

目次

CONTENT

ここから

忙しい方はここだけ

この章で触る場所は、ここです。

List<BoardTile> _createTiles() {
  return const <BoardTile>[
    BoardTile(
      index: 0,
      age: 20,
      stage: 'スタート',
      label: '人生のはじまり',
      description: 'ここから人生ゲームが始まります。',
      type: TileType.start,
    ),
  ];
}

人生ゲームのマスは、BoardTile で作ります。

1マスには、次の情報があります。

index        何番目のマスか
age          何歳のマスか
stage        人生の時期
label        マスの名前
description  説明文
type         マスの種類
price        物件価格
rent         通行料

まずは、labeldescription を変えるだけでOKです。

label: '初めてのアルバイト',
description: '初めてアルバイトをして、少しだけお金を稼ぎました。',

文字を変えて保存し、アプリで表示が変われば成功です。


この章でやること

この章では、人生ゲームの「マス」を作る場所を見ていきます。

ゲームの中で、プレイヤーはサイコロを振ってマスを進みます。

そのマスには、いろいろな種類があります。

給料をもらうマス
イベントが起きるマス
物件を買えるマス
税金を払うマス
ゴールするマス

このマスを作っているのが、_createTiles() です。


今日のゴール

この章のゴールは、次の3つです。

1. _createTiles() が人生のマスを作る場所だと分かる
2. BoardTile の中身が少し分かる
3. マスの名前や説明文を自分で変えられる

全部を理解しようとしなくて大丈夫です。

まずは、文字を変えて画面に反映される体験をしましょう。


Step 1:_createTiles()を探す

lib/main.dart を開きます。

検索で、次の文字を探してください。

_createTiles

このようなコードがあります。

List<BoardTile> _createTiles() {
  return const <BoardTile>[
    BoardTile(
      index: 0,
      age: 20,
      stage: 'スタート',
      label: '人生のはじまり',
      description: 'ここから人生ゲームが始まります。サイコロを振って、仕事・お金・資産形成の道を進みます。',
      type: TileType.start,
    ),
    BoardTile(
      index: 1,
      age: 21,
      stage: '学生・準備期',
      label: '準備の日々',
      description: '大きな収支はありません。これからの人生に向けて、少しずつ経験を積みます。',
      type: TileType.normal,
    ),
  ];
}

ここに、人生ゲームのマスが並んでいます。


Step 2:BoardTileとは?

BoardTile は、人生ゲームの1マス分のデータです。

例えば、このマスを見てみます。

BoardTile(
  index: 4,
  age: 25,
  stage: '初任給・収入期',
  label: '初任給',
  description: '仕事の成果として給料を受け取ります。現金が増え、次の選択肢が広がります。',
  type: TileType.payday,
),

これは、こういう意味です。

4番目のマス
25歳のマス
初任給・収入期
マス名は「初任給」
給料マスなので、お金が増える

画面に表示される文字も、ここから作られています。


Step 3:BoardTileの中身を確認する

BoardTile には、次の情報があります。

項目意味
indexマスの番号0, 1, 2
age年齢20, 25, 65
stage時期学生・準備期
labelマスの名前初任給
description説明文現金が増えます
typeマスの種類TileType.payday
price物件価格300
rent通行料80

最初に変えるなら、labeldescription がおすすめです。


Step 4:マスの種類を確認する

マスの種類は、TileType で決めます。

enum TileType {
  start,
  normal,
  payday,
  event,
  property,
  tax,
  goal,
}

意味はこちらです。

種類役割
TileType.startスタート地点
TileType.normal何も起きない通常マス
TileType.payday給料が入るマス
TileType.eventランダムイベントが起きるマス
TileType.property物件を買えるマス
TileType.taxお金を支払うマス
TileType.goalゴール地点

マスの動きは、この type で変わります。


Step 5:まず文字だけ変えてみよう

最初は、安全に文字だけ変えます。

変更前です。

BoardTile(
  index: 1,
  age: 21,
  stage: '学生・準備期',
  label: '準備の日々',
  description: '大きな収支はありません。これからの人生に向けて、少しずつ経験を積みます。',
  type: TileType.normal,
),

変更後です。

BoardTile(
  index: 1,
  age: 21,
  stage: '学生・準備期',
  label: 'はじめての挑戦',
  description: '小さな挑戦を始めました。まだ大きな成果はありませんが、確実に前へ進んでいます。',
  type: TileType.normal,
),

type は変えずに、labeldescription だけ変えています。

これなら壊れにくいです。


Step 6:保存して確認する

変更したら保存します。

Macの場合です。

command + S

Windowsの場合です。

Ctrl + S

アプリが起動中なら、ターミナルで r を押します。

r

変わらない場合は、R を押します。

R

画面のマス名が変わっていれば成功です。


Step 7:年齢を変えてみよう

マスの年齢も変えられます。

変更前です。

age: 21,

変更後です。

age: 22,

すると、画面上の年齢表示が変わります。

ただし、年齢は順番に増えるようにしておくと自然です。

20歳
22歳
24歳
25歳
30歳

のように、だいたい上から増えていればOKです。


Step 8:物件マスを見てみよう

物件マスには、pricerent があります。

BoardTile(
  index: 2,
  age: 23,
  stage: '社会人スタート期',
  label: '小さなカフェ',
  description: '小さなカフェに投資できます。',
  type: TileType.property,
  price: 300,
  rent: 80,
),

意味はこちらです。

項目意味
price購入価格
rent他のプレイヤーが止まったときの通行料

例えば、もっと高い物件にしたい場合です。

price: 500,
rent: 150,

ただし、最初は大きく変えすぎなくてOKです。


Step 9:物件名を変えてみよう

例えば、「小さなカフェ」を「小さな本屋」に変えてみます。

変更前です。

label: '小さなカフェ',
description: '小さなカフェに投資できます。所有すると、他のプレイヤーが止まった時に通行料を得られます。',

変更後です。

label: '小さな本屋',
description: '小さな本屋に投資できます。所有すると、他のプレイヤーが止まった時に通行料を得られます。',

まずはこのくらいの変更で大丈夫です。

文字が変わるだけでも、自分のゲームらしくなります。


Step 10:イベントマスを見てみよう

イベントマスは、このように作られています。

BoardTile(
  index: 3,
  age: 24,
  stage: '変化の時期',
  label: 'ライフイベント',
  description: '人生には予想外の出来事がつきものです。',
  type: TileType.event,
),

typeTileType.event なので、このマスに止まるとランダムイベントが起きます。

具体的なイベント内容は、別の場所にあります。

_createEventPool()

この章では、イベントマスの名前や説明だけ分かればOKです。


Step 11:給料マスを見てみよう

給料マスは、TileType.payday です。

BoardTile(
  index: 4,
  age: 25,
  stage: '初任給・収入期',
  label: '初任給',
  description: '仕事の成果として給料を受け取ります。現金が増え、次の選択肢が広がります。',
  type: TileType.payday,
),

このマスに止まると、現金が増えます。

実際にいくら増えるかは、別の処理で決まっています。

_handleTileEffect()

この章では、

TileType.payday = 給料マス

と覚えれば大丈夫です。


Step 12:税金マスを見てみよう

税金マスは、TileType.tax です。

BoardTile(
  index: 6,
  age: 28,
  stage: '社会の現実期',
  label: '税金・支払い',
  description: '収入が増えると、税金や固定費も発生します。現金が減ります。',
  type: TileType.tax,
),

このマスに止まると、現金が減ります。

これも、実際にいくら減るかは別の処理で決まっています。

まずは、

TileType.tax = 支払いマス

と覚えればOKです。


Step 13:ゴールマスを見てみよう

最後のマスは、TileType.goal です。

BoardTile(
  index: 19,
  age: 65,
  stage: 'ゴール',
  label: '人生の集計',
  description: 'ゴールです。現金と所有資産を合計し、最終順位を決定します。',
  type: TileType.goal,
),

このマスに着くと、プレイヤーはゴールします。

全員がゴールすると、最終順位が決まります。

ゴールマスは、基本的に最後に置きます。


Step 14:マスを増やすときの注意

マスを増やすこともできます。

ただし、初心者のうちは注意が必要です。

大事なのは、index の番号です。

0
1
2
3
4

のように、上から順番になるようにします。

悪い例です。

0
1
2
5
6

途中が飛んでいると、分かりにくくなります。

最初は、既存のマスの文字を変えるだけで十分です。


Step 15:おすすめのカスタマイズ例

慣れてきたら、ゲームのテーマを変えられます。

学校生活ゲーム

入学式
部活動
テスト
文化祭
受験
卒業

仕事・キャリアゲーム

初出勤
副業開始
転職
昇進
独立
大型案件

投資ゲーム

少額投資
株式投資
不動産購入
税金
暴落イベント
資産形成

店舗経営ゲーム

開業
初売上
広告出稿
スタッフ採用
設備投資
2店舗目出店

マスを変えるだけで、別のゲームになります。


触ってみよう

今回は、1つだけマスを変更してみましょう。

探す場所はこちらです。

BoardTile(
  index: 1,
  age: 21,
  stage: '学生・準備期',
  label: '準備の日々',
  description: '大きな収支はありません。これからの人生に向けて、少しずつ経験を積みます。',
  type: TileType.normal,
),

これを、次のように変えてみます。

BoardTile(
  index: 1,
  age: 21,
  stage: '挑戦のはじまり',
  label: 'はじめての挑戦',
  description: '小さな挑戦を始めました。すぐに結果は出ませんが、未来の自分を少しだけ助けてくれます。',
  type: TileType.normal,
),

保存して、画面の表示が変われば成功です。


よくあるエラーと直し方

1. カンマを消してしまった

悪い例です。

label: 'はじめての挑戦'
description: '小さな挑戦を始めました。',

正しくはこちらです。

label: 'はじめての挑戦',
description: '小さな挑戦を始めました。',

各行の最後にカンマが必要です。


2. 文字のクォーテーションを消した

悪い例です。

label: はじめての挑戦,

正しくはこちらです。

label: 'はじめての挑戦',

文字は ' で囲みます。


3. typeの書き方を間違えた

悪い例です。

type: event,

正しくはこちらです。

type: TileType.event,

TileType. を忘れないようにします。


4. priceやrentを文字にしてしまった

悪い例です。

price: '300',
rent: '80',

正しくはこちらです。

price: 300,
rent: 80,

数字は ' で囲みません。


5. indexが重なっている

悪い例です。

BoardTile(index: 2, ...)
BoardTile(index: 2, ...)

同じ番号が2つあると、分かりにくくなります。

基本は、上から順番にします。

0, 1, 2, 3, 4...

この章で覚えること

この章で覚えることは、3つだけです。

1. _createTiles() が人生のマスを作る場所
2. BoardTile が1マス分のデータ
3. 最初は label と description だけ変えると安全

これだけで十分です。


やる気を維持するコツ

人生ゲームは、マスの名前を変えるだけで一気に自分の作品になります。

難しいコードを書かなくても、

初任給
副業
税金
投資
ゴール

を、

入学式
部活動
テスト
文化祭
卒業

に変えれば、学校生活ゲームになります。

まずは小さく変える。

そして、動いたら喜ぶ。

この積み重ねで、自然とコードに慣れていきます。


チェックリスト

□ _createTiles() を見つけた
□ BoardTile が1マス分のデータだと分かった
□ index の意味を確認した
□ age の意味を確認した
□ label の意味を確認した
□ description の意味を確認した
□ type の意味を確認した
□ TileType の種類を確認した
□ label を1つ変更した
□ description を1つ変更した
□ 保存して画面で確認した

まとめ

この章では、人生ゲームのマスを作る場所を確認しました。

マスは _createTiles() の中で、BoardTile として作られています。

label を変えるとマスの名前が変わり、description を変えると説明文が変わります。

最初は、typeindex を大きく変えずに、文字だけ変更するのがおすすめです。

次の章では、プレイヤーを作って、名前・色・所持金・現在地を確認していきます。

FAQ

よくある質問

人生のマスを作ってみようは医療関係者向けだけの内容ですか。
医療分野の例が含まれる場合もありますが、医療関係者だけに限定した内容ではありません。生成AI、AI活用、DX、業務改善、プロトタイプ開発など、一般的なAI学習の事例として読める内容です。
AI初心者でも読めますか。
はい。AIをこれから学ぶ方、数学が苦手な方、仕事でAIを使いたい方にも読み進めやすいように、教材の章と節の流れに沿って整理しています。
サムネイル画像は必ず表示されますか。
はい。教材にcoverUrlが設定されている場合はその画像を表示し、未設定の場合は代替サムネイル画像を表示します。
Flutterアプリケーション開発概論のほかの章も読めますか。
はい。教材トップから章立てを確認でき、前後の節へもページ下部のナビゲーションから移動できます。