基本情報で役に立った知識

ご覧になっている方、こんにちは。SHと申します。

今回は基本情報で役に立った知識について語りますヨイ。2025年くらいの基本情報の勉強をし始めた段階で本当に必要な知識なのぉ?みたいな愚痴を言っていたと思うんですが、割と役に立った知識があったんで適当に語ります。あ、因みに実務上ではなく趣味で、です。

喰らえ!連結リスト

役に立った知識というのが連結リストです。僕の理解の上で説明しますが、連結リストとは何かと言ったら要素自体が次にアクセスするアドレスを持っているリストのことです。図を使って説明しますと、下記のようなものがあるとします。

配列はインデックスという並びの順を示す番号で要素へのアクセスを管理しています。この画像で言うと、”あ”の次は”さ”です。配列の先頭が1番目として、”あ”が1番目、”さ”は2番目ですからね。5番目は”は”です。なので、インデックスがあれば好きな要素に素早くアクセスできるというのが配列のメリットです。
一方、連結リストは考え方が異なります。上記の図にある配列とは並びが違います。ただ、先頭から順にアクセスした場合、配列とアクセスする順番は変わりません。”あ”の次は”は”だろ!いい加減にしろ!となると思いますが、確かに配列だとそうなります。ここにポインタというものがあるんですが、これは連結リストにおける次にアクセスする場所の住所みたいなものです。”あ”のポインタは⑤となるので、5番目にある”さ”にアクセスします。”さ”のポインタは④となるので、”な”になります。”な”は③なので”か”、”か”は②なので、”は”。ここでアクセスした順に見てみると、[あ さ な か は] となり、配列の先頭からアクセスした順と変わらないことがわかります。だから何やねんって話なんですが、僕的にはこの考え方が役に立ちまして。

chatGPT、円グラフ作って

趣味のゲーム制作でアニメーションする円グラフを取り入れたくて、結構めんどくさい処理だと思ったのでChatGPTに投げました。こんな感じのやつ。

選択した項目によって上昇するステータスの増減が体感で分かるようにしたくて入れたかったんですよね。例えば攻撃系のステータスを上げると防御系のステータスが下がるみたいな、要素間にトレードオフの関係のある円グラフです。最初は良い感じにできたんですが、どうしても一方の値が上がるともう一方の値が下がるというアニメーションが上手くいかず、かなり苦戦してました。
javascriptではchart.jsというアニメーションする円グラフの作成を手軽にできる有名なライブラリがあるんですが、頻繁に使用するわけでもない円グラフのためにそこまでの労力をかけたくなかったので、自分自身で作ることにしました。作ってて気づいたんですが、ChatGPTのコードを見てみると、描画する際に、各要素の値を参照していたことに気づきました。つまり配列的な考えです。僕はここで連結リストを思い出しまして、各要素の前のアドレスにある要素の値を参照し、その値を元に描画するという処理をしたところ、無事に実装できました。

終わりに

後半は画像も無しに何いってだこいつみたいな感じになっていたと思うんですが、いつか気が向いたらコード付きで説明したいところ。ということで今回はここまで。皆さんも快適な円グラフ作成ライフをお過ごしください。

\ 最新情報をチェック /

PAGE TOP