見出し画像

仕入れて売る!経営シミュレーションゲームを作ろう!クミタテ式プログラミングドリル(p5JavaScript / Processing)

-お金儲けは楽しい

今回作るのは経営シミュレーションゲームです。商品を仕入れて売ってお金を稼いでいきます。
経営シミュレーションゲームは複雑ではありますが、ゲームとして成立するギリギリまで削ぎ落として簡易的なシステムに落とし込みました。

デモアプリはこちらから。https://openprocessing.org/sketch/1522944
Unityroom版はこちらから。https://unityroom.com/games/vendingman

- クミタテ式プログラミングドリルとは?

クミタテ式は英語のコードを、日本語で書かれた図解(通称、図解くん)を使って解説し、プラモデルのように図解通りにコードを組み立てていきながら学習する、プログラミング教材です。プログラミング的思考を学ぶよりも、コードの書き方を優先的に学習することを目的としています。

(基本プログラムの図解くん)

- 動画を見ながら学習する

動画と並行しながら学習するとより効率的に学習できるようになっています。たくさんのゲームジャンルのプログラミング方法をお伝えしているのでチャンネル登録もよろしくお願いします。

- 開発環境

OpenProcessingを使ったp5js、Processingを環境を前提としています。

- ハートを押す

この記事にいいね(ハート)をお願いします。
押すと何か良いことが起きます。


■[ここからスタート!]画面のサイズを決める

画面サイズを600x400の固定サイズにしましょう。


■背景を黄色で塗りつぶし続ける

drawの中で背景を黄色で塗りつぶし続けましょう。drawの中で毎回背景を塗りつぶすことでアニメーションが実現できます。


■商品棚として四角形を、とりあえず1つ表示する

商品の陳列棚は5つ作っていきますが、まずは1つだけ表示していきます。


■商品棚を5つ作る

商品の陳列棚を5つ作っていきましょう。


■繰り返し処理を使って商品棚を5つ作る

5つの四角形の座標には法則性がありました。法則性が導き出せたなら繰り返し処理のチャンスです。
繰り返し処理forを使って5回四角形を表示させます。


■四角形の座標をローカル変数にする

繰り返し処理forの枠組みの中だけで使い捨てされる変数「x」と変数「y」を用意します。
枠組みの中で定義された変数は、その枠組みの中でしか生きられない使い捨ての変数です。これをローカル変数と呼び、生きていられる枠組みの範囲をスコープと呼びます。


■商品棚に商品情報を記載する

商品名、値段、在庫数を、それぞれの商品棚に記載していきましょう。
今は5つの商品棚に同じ商品情報を記載していきます。


■商品情報の配列を用意する

商品名を管理した配列「titleList」、値段を管理した配列「priceList」、そして在庫数を管理した配列「stockList」を用意します。

// p5.js
let titleList = [
  "水", "お茶", "コーラ", "コーヒー", "タピオカ",
];
let priceList = [
  100, 150, 250, 400, 1000,
];
let stockList = [
  0, 0, 0, 0, 0,
];


// Processing Java
String[] titleList = new String[]{
  "水", "お茶", "コーラ", "コーヒー", "タピオカ",
};
int[] priceList = new int[]{
  100, 150, 250, 400, 1000,
};
int[] stockList = new int[]{
  0, 0, 0, 0, 0,
};

■配列の情報をもとに商品棚を表示する

配列の情報を表示に利用していきましょう。


■仕入れボタンを表示する

各商品を仕入れるボタンを表示します。


■仕入れボタンをクリックで仕入れを実行する

仕入れボタンを押したら、その商品を1つ仕入れて在庫に保存してあげましょう。


■1秒ごとに来客させて、商品が1個売れるようにしよう

時間を管理する変数「t」を用意し、毎drawカウントアップさせます。
drawは1秒間に60回実行されるため、変数tが60で割り切れたときに1秒経過として処理しましょう。


クミタテ式の設計図はここまでです。
以下の応用課題は自分で考えてプログラミングしてみましょう。

課題1. 現在の所持金を表示しよう

所持金を1,000円とし、どこかに所持金を表示しましょう。

課題2. 仕入れ時に仕入れ代金として販売価格の50%を所持金から支払おう

仕入れを実行したとき、所持金から仕入れ代金を支払うようにします。
また、このとき、所持金がマイナスにならないよう制御してください。

課題3. 販売時に所持金を増やそう

商品が1つ売れるたびに、その商品の代金を所持金に足してあげましょう。

課題4. 客が購入するか、ランダムにしよう

いまは1秒ごとに来客があり、毎秒必ず購入してもらえています。
そこで購入率を設定し、ランダムで購入するかどうかを決めさせましょう。
商品ごとに購入率を定めても、全て同じ購入率でも構いません。

課題5. オリジナルの経営ゲームに仕上げよう

ゲームシステムとしては、人気度に応じて購入率が決まったり、利益が大きいものはリスクもあるようなリスク&リターンの関係を考えよう。

演出面としては、お金の増減がわかりやすいように、在庫の増減がわかりやすいように、伝わる&リッチな演出に仕上げよう。

世界観としては、自分が好きなものを販売するお店でも良いし、ファンタジーRPGの武器屋のようなキャッチーな世界観に寄せても良いでしょう。

(有料)完成コード

ここから先は

1,397字

¥ 100

この記事が気に入ったらサポートをしてみませんか?