今年が初の小学校運動会なのでノウハウがものすごく気になります!w
サーバー屋の中でも何故GMOは胡散臭さが抜けないのか
GMOって何かいつも胡散臭いよなって思ってるのボクだけじゃないと思うw
https://www.nikkei.com/article/DGXZQOUB10CK50Q3A011C2000000/
むしろプログラミングスキルレベルというのはこれら切り分けの上手下手なんだよね
もちろん問題解決や優れた機能へ対する発想力も重要っちゃ重要なのだけれど、優れたプログラマ、何なら優れたチームマネジメントもできるプログラマは切り分けがメチャクチャ上手く、更にキャリアを積んだプログラマは経験則上で感覚的に現在と将来遭遇するであろう問題を解決するための切り分けこそがそのキャリアの中で培った能力と言って良い
プログラミングの中で生成AIを活用するってことはそれをキャリア負担なく今直ぐに得られる、これは非常にスゴイことだし危機感をちょっと覚えてしまうね
プログラミング初心者ながら作りたいものが頭の中である程度固まっていて、データ型、条件分岐、関数の呼び出しをおおまかで良いから理解できているというプログラミングスキルレベルという要件に達しているならば、おそらくきっと生成AIでプログラミングスキルレベルを上げる(ブーストする)ことが出来るという結論に達した
この要件のプログラミングスキルレベルでぶち当たるのが「切り分け」だ、A機能とB機能を一体としてプログラミングすべきなのか?A機能とB機能を分離してプログラミングすべきなのか?がこの要件のプログラミングスキルレベルでは理解できていない
その結果としてスパゲッティコードになるわけだけど、生成AIはClass定義ができるのでプログラミングコードの切り分けが可能になる
モーダルシフト論!ボクが海事学生になる前(20年以上前)からずっと提唱されてるやつ!w
提唱から効果が出始めるのに20年あまり、目に見えての効果に10年か、ロジスティクスの変化は本当に長いな
https://www3.nhk.or.jp/news/html/20231010/k10014220071000.html
**Block**クラス
* ブロックの種類
* ブロックの形状(四角形、三角形など)を定義する
* 色
* ブロックの色を定義する
* サイズ
* ブロックのサイズを定義する
**Player**クラス
* プレイヤーの操作
* ブロックを左右に移動させる操作、ブロックを回転させる操作を行う
* スコアの管理
* ブロックを消去した数でスコアを管理する
**Score**クラス
* プレイヤーのスコア
* プレイヤーの現在のスコアを保持する
* 最高スコア
* プレイヤーの最高スコアを保持する
これらのClassを組み合わせることで、シンプルな落ち物パズルゲームを開発することができます。より複雑なゲームを開発する場合は、必要に応じて追加のClassを追加したり、Classの機能を拡張したりする必要があります。
以下に、それぞれのClassの具体的な機能の例を挙げます。
**Game**クラス
* ゲームの開始
* ゲームの準備(盤面の生成、ブロックの配置など)を行う
* プレイヤーの操作を待ち受けるようになる
* ゲームの終了
* ゲームオーバーの判定を行う
* スコアの計算を行う
* スコアの計算
* ブロックを消去した数でスコアを計算する
* ゲームオーバーの判定
* 盤面にブロックが埋まってしまったらゲームオーバーとする
**Board**クラス
* 盤面のサイズ
* 盤面の横幅と縦幅を定義する
* ブロックの配置
* ブロックをランダムに配置する
* ブロックの動き
* プレイヤーの操作に合わせてブロックを動かす
これらのClassの機能を解説します。
**Game**クラスは、ゲームの全体的な制御を行うクラスです。ゲームの開始、終了、スコアの計算、ゲームオーバーの判定などを行います。
**Board**クラスは、パズルの盤面を表すクラスです。盤面のサイズ、ブロックの配置、ブロックの動きなどを制御します。
**Block**クラスは、パズルのブロックを表すクラスです。ブロックの種類、色、サイズなどを定義します。
**Player**クラスは、プレイヤーを表すクラスです。プレイヤーの操作、スコアの管理などを行います。
**Score**クラスは、スコアを管理するクラスです。プレイヤーのスコア、最高スコアなどを管理します。
これらのClassに加えて、必要に応じて追加のClassを追加することもできます。例えば、ブロックの移動を制御する**Move**クラス、ブロックの消去を制御する**Clear**クラスなどを追加することができます。
落ち物パズルゲームをオブジェクト指向プログラミング言語で開発する場合に必要なすべてのClassは、以下のとおりです。
**Game**クラス
* ゲームの全体的な制御を行うクラスです。
* ゲームの開始、終了、スコアの計算、ゲームオーバーの判定などを行います。
* **Board**クラス
* パズルの盤面を表すクラスです。
* 盤面のサイズ、ブロックの配置、ブロックの動きなどを制御します。
**Block**クラス
* パズルのブロックを表すクラスです。
* ブロックの種類、色、サイズなどを定義します。
**Player**クラス
* プレイヤーを表すクラスです。
* プレイヤーの操作、スコアの管理などを行います।
**Score**クラス
* スコアを管理するクラスです।
* プレイヤーのスコア、最高スコアなどを管理します。