はてなキーワード: ASCIIとは
まだ、例がそこまで集まっていないが、二つ手に入れたので記入
ゲームブックは昔隆盛したが衰退している。
オープンワールドは現在盛り上がっているが、将来下火になるだろうという自分の予測。
・オープンワールド(https://dic.nicovideo.jp/a/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%83%AF%E3%83%BC%E3%83%AB%E3%83%89)
いわゆるステージ制のような一方通行あるいは限定的な経路や、ゲームプレイが中断されるロード画面を繰り返し挟んだ構成などから成るのではなく、シームレスで自由な移動や行動が可能な単一の広い空間が中心のレベルデザインや、それを採用しているゲームのことをオープンワールドと呼ぶ。有名な例を挙げると、GTAシリーズやTESシリーズなどをイメージすると分かりやすいだろう。
つまるところ、オープンワールドという概念と呼び方はGTA3以降に定着したもの(先のシェンムーは「FREE」というジャンルを称していた)ではあるが、それと同様のレベルデザインは古くから様々なゲームタイトルで用いられており、概念が定着した現在では過去のゲーム作品のレベルデザインを指して呼ぶことも一般的である。ただし、過去のゲーム作品は当時オープンワールドと名乗っていた(意識して製作された)わけではなく、あくまでプレイヤー側の解釈なので若干曖昧な部分も含まれている。
こうした理由からオープンワールドという概念は厳密には2D/3Dを問わないものであり、3Dで構築されたワールドに限定されているわけではないが、3Dのオープンワールドの普及とともに広まった概念であり、その定義において3Dに限定して考える者も少なからずおり、2Dも含める者との間で解釈に違いが生じていることもある。(後述)
・ゲームブック(https://ja.wikipedia.org/wiki/%E3%82%B2%E3%83%BC%E3%83%A0%E3%83%96%E3%83%83%E3%82%AF)
本文は数十から数百個のパラグラフ(段落)に分けられており、各パラグラフには順に番号が付いている。読者はそれらのパラグラフを頭から順番に読むのではなく、パラグラフの末尾で指定された番号のパラグラフを次に読む。パラグラフ番号の代わりにページ数をそのまま利用し、1ページを1パラグラフとして扱うゲームブックもある。いずれも次に読むべきパラグラフは1つに限らず、多くは複数の行き先が存在する。それらはプレイヤーによる任意選択ができたり、後述するランダム要素によって決められたり、以前に行った選択や判定の結果が影響して決まる。このような方法によって、多様に変化するストーリーを実現している。
と、あるが
一方、当時の日本は任天堂のファミリーコンピュータ(ファミコン)をはじめとする家庭用ゲーム機が爆発的に普及していった時期であり、そのため日本ではコンピューターゲームをベースとしたゲームブックが多数発行された。特に双葉社の「ファミコン冒険ゲームブック」はコンピューターゲームを主体とした低年齢向けのゲームブックを多数だしており、最終的に130以上のタイトルが刊行された[1]。他にはケイブンシャから「アドベンチャーヒーローブックス」シリーズが刊行されるなど、数多くのゲームブックが発売されている。中には全て漫画で描かれた作品も存在した。ゲームメーカー自らが制作する例もありコナミからは双葉社を意識した装丁で、自社ブランドの『コナミワイワイワールド』、『メタルギア』や『魂斗羅』、『ドラゴンスクロール』などが発売されている。エニックス(現スクウェア・エニックス)からも「エニックスオリジナルゲームブック」として、同社が発売したコンピュータRPGの人気作ドラゴンクエストシリーズ(ゲームブックドラゴンクエストの項参照)などのゲームブック化作品が発行されている。 「所さんのまもるもせめるも」は所ジョージ自身が書いた。
さらに
本の形式ではないためゲームブックとは異なるが電話を使用したテレホンアドベンチャーと呼ばれる作品も存在する。これは決められた電話番号にかけると音声ドラマが流れ、選択肢番号の代わりに電話番号が示される形式であった。正しい選択肢を選ぶと少ない電話代で最後にまで辿り着くことができ、そこでのメッセージを送ると抽籤で賞品が当たるようになっていた。『地層階級王国』や『次元からくり漂流記』『魔界横断ドラゴンラリー』など双葉社の作品があった。
後にCDが普及すると各トラックが選択肢番号になっている作品も存在する。選択肢の代わりに指示されたトラックを選択すると音声ドラマが流れるという形式である。ゲームブック原作からは『地層階級王国』と『次元からくり漂流記』の二作品がCDゲーム化されている。
コンピュータゲームの一ジャンルであるサウンドノベル(またはビジュアルノベル)は、ゲームブックの影響を受けたものであり、画像や音楽による演出やゲームブックでは難しいマルチストーリーやエンディングを盛り込んだものとなっている。[2]
ここで、私がよいと思う定義の発展性をみよう
・ローグライト(新しい方)
・ローグライク(https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%82%B0%E3%83%A9%E3%82%A4%E3%82%AF%E3%82%B2%E3%83%BC%E3%83%A0)
「International Roguelike Development Conference 2008」において議論された、ローグライクの持つ要素[2]。 厳密な定義ではなく、いくつかの要素を無視しても構わない。
ランダムな環境生成 ― マップ構造やアイテム配置がランダムで、リプレイ性が高い。
恒久的な死 ― 一度死んでしまえば最初からやり直しになる。ランダムな環境生成と合わさることでゲームが面白くなる。
ターン制 ― 一つのコマンドが一つの動作に対応する。じっくりと考えながらプレイできる。
グリッドベース ― ゲーム世界がタイル(マス目)で構成されている。
ノンモーダル ― 移動も戦闘も一つの画面で完結しており、画面変遷を伴わない。AngbandやCrawlの「店」等、しばしば無視される。
複雑さ ― 豊富なアイテムやモンスターが用意されており、ゲームの解法が一つではない
リソース管理 ― 限られたリソース(食料やポーション)を管理し、その用途を考える。
ハックアンドスラッシュ ― 多くのモンスターを次々に倒していく。
探索と発見 ― マップを慎重に調査し、未知のアイテムの使用法を発見する。
1人のプレイヤーキャラクター ― プレイヤーは1人のキャラクターのみを操作し、そのキャラクターの死をもってゲームオーバーとなる。
プレイヤーに似たモンスター ― プレイヤーとモンスターに同じルールを適用する。モンスターもアイテムや装備を持ち、魔法を使う。
戦術的な挑戦 ― ゲームの難易度が高く、何度もプレイすることで戦術を学び、プレイヤー自身が成長していく。
数値 ― ヒットポイント等の数値が明示されている。
・ローグライト(https://minorgame.syowp.com/archives/roguelike-roguelite.html)
有名なSFゲーム『FTL: Faster Than Light』。ランダム生成された星系マップを進んでいき、そのさきざきでランダムイベントが起こります。
つまり厳密にはローグライクではないけど、「死んだら終わり」「ランダムマップ」という『ローグ』の要素があるものです。
ゲーム評論家のTotalBiscuit(John Peter Bain)氏は、それらを「ローグライト(Rogue-lite)」という概念で位置付けました。
(追記)
ttps://agk.saloon.jp/how-to-jp-series
結論をいうと対象のソフトが下記を満たすかどうかで難易度がかなり変わる。
1. 表示テキストが外部ファイルになっている or exe内部のリソースファイルから読み取られる ↔ プログラム埋め込み
2. 内部のテキストエンコード方式がUTF-8 or 16 or 32 ↔ ASCIIなど
3. フォントはシステムにあるのが使われる ↔ 外部ファイルになった画像フォントが使われる
すべてのソースが公開されていない限り、この条件を満たさないものは基本的に日本語にできない。
例えば、自分でC言語でprintfだけのHello world!プログラムを作ってみて、それをソース無しで、外からテキストを変更できるかためしてみればいい。
これは1に反するから多分簡単には出来ない。よしんば出来たとしても、Hello world!より文字数が多いテキストに変えるのはそれなりに面倒である。
こういう表示をさせるやり方としてはprintfに渡すデータを実行時にすげ替えればいい。具体的にはprintfの直前で別の箇所にジャンプさせて引数のレジスタに書き換えたいアドレスを渡して、またprintfまで戻ってくればいい。
これ以上に面倒なのが、2と3が合わさったもので、欧米はアルファベットしか使わないため、ソフトの内部コードがASCIIやCP12XXだったりする。さらにそのソフトに用意されているフォントの文字はその範囲しか存在しない。これらはどう頑張っても普通には日本語を表示することは出来ないので、かなり強引に改造するしか無い。俗に中華パッチと呼ばれているものがそれである。
具体的にはソフトのどこかで、表示させるテキスト配列から文字を1文字取得、1文字からコードポイントに変換、フォントファイルからそのコードポイントのグリフデータを取得、グリフデータを画面に表示させる処理があるため、そこに割り込む。1バイト取得している箇所を2,3バイト一気に取得して、それをなんとかしてコードポイントにして、そのコードポイントをグリフ取得の処理に回せばいい。
ごめんね、わかりづらかったね。
ここで殴り書きしているのはそんな話。
ついでに言えば、地元から身一つで出てきている人たち尊敬している。
本来持っている能力を皆が発揮できるような世界に少しでも近づけていけたらいいな、と心から思っている。
【追記ここまで】
私は裕福でない家庭に生まれ、横浜の片隅にある ちょっとお上品な町で育った。
都心近くに育った私から見ても、やはり地方出身(と貧乏人)は不利だと思う。
一般的に身近に大学出身者がいないことは、その人の人生に不利に働くもの。
だが、横浜の片隅にあり、比較的裕福な家庭の多く住む新興住宅地で幼少期を過ごしたことは、明らかに私の人生に良い影響を与えた。
そのうち、上位5名ほどは中学受験をする人たちで、彼らは周りからもちょっと浮いた存在だった。
クラスの上位ではあるものの学年トップグループというわけでもない、少し勉強のできる目立たないグループに私は所属していた。
ずば抜けて勉強ができたわけでもない私が、この町から受けた良い影響を列挙してみる。
◎習い事
◎学習教材
※当時はマイコンと呼ばれていた。
熱心なコンピュータファンの小学生はお年玉をはたいてエントリーモデル(7~8万円)を買い、
裕福な家の小学生は親にビジネスにも使える標準機(一式で50~60万円)がプレゼントされた。
※アスキーに載っていた先駆者たちの話に影響を受けた。AppleやMicrosoft、ASCIIの創業の話など。
プログラムをかいて、大学を中退して、会社を興すような人生にあこがれていた
私は特別優秀な人間ではなかったが、町の人、家族、友人に恵まれていた。
家庭を作らない人生を選んだこともあり、今は親族の子どもたちの進学や就職を支援している。
- 技術は優秀だが、アピールが下手なITエンジニアたちの支援
といったことに精を出している。
うちのITエンジニアが「この会社にいてよかった」と思ってくれるような場所を作ることが、私の生きがいとなりそう。
プログラミングができるわけでもない一般人だが書かれている内容はだいたい分かった。
なぜ「数字」にこだわるのかも分からないし唐突に現れたサンプルプログラムも意図が分からない。
ドレミファソラシは「261、293、329、349、391、440、493」
可視光の波長
コンピュータのディスプレイは波長ではなくRGBで表現されるので分かりづらい。
そんなよく分からないLEDを使わずともフルカラーLEDがある。
たとえにマイナーな電子部品(?)が登場すると逆に分かりづらい。
それから縦30x横30のLEDから縦70x横70のLEDまでに内接する円の内部(x^2+y^2≦40)がすべて色001であれば、赤い円ができる。
このあたりはよく分からない。
(「点と円の当たり判定」を各座標ごとに実行)
めちゃくちゃ強い電気
なんかすごそう(小並感)。
ハイレベルとローレベルでなくアナログ値になるということなのだろうか?
それはたぶん現代人ならみんな知ってると思う。
どの文字コードのことを言っているのか分からないので集中できない。
(ためしにASCIIコードを調べてみたがAは65だった。また小文字にするとき足す値は32)
かなりシンプルになることが多い。
一般的には適当なrandomモジュールのようなものを利用するのではないか?
(ついでに実用的かを考えるなら曲数が60以上あったときのことが気になる)
今の仕事でも、既存のマクロでエラー出たときに原因箇所を調べたりするのは出来るけど、そこから何を直したら直るのかわかんない。
フローチャートを作れるのなら元増田に必要なのは「ポケットリファレンス」とか「逆引き~」とかいう類の本ではないだろうか?
(普通に考えればさすがに知っているだろうが念のため)
https://qiita.com/yumetodo/items/54e1a8230dbf513ea85b]
https://b.hatena.ne.jp/entry/s/qiita.com/yumetodo/items/54e1a8230dbf513ea85b]
https://togetter.com/li/1301253]
https://naruse.hateblo.jp/entry/2018/12/24/013446]
文字コードを多少かじった人間としては、また人類が文字コードで混乱している。と思っていて議論が深まるのかなと思ったりします。
ただ、この話、見ててもやもやする所が一つありまして、UTF-8の1コードポイント=uint8_t=unsigned charでええんかいな。という点です。
文字コードを少しでも知っている人はUTF-8は1つのコードポイントを可変長のバイト列で表します。
よく言われるようにASCIIは1バイト、大体のCJKV文字は3バイト以上で表します((久々にWikipediaのUTF-8見たら、UTF-8にサロゲートペアってあるんだねー。罪深いわOrale〜))。最大6バイトで1つのコードポイントを表します。
つまりですね、char16_tとかchar32_tとかがUTF-16やUTF-32にマッピングされるのは分かるんですよ。サロゲートペアは脇に置いておいて、コードポイントを表すのにはこの型(っつーか、データ長)を使うよってのが分かるので。
サロゲートペアを考えたときのUTF16も同じ考え方になるんですけど、UTF-8みたいな可変長のバイト長を取るエンコード方式は、結局、1「文字」を表す型(データ長)が定まらないんですよ。
char8_tをunsigned charの子クラスにしたとしてもそれって、UTF-8にとっては「1文字を表す型」ではないんですよ。「1文字を表すバイト列の単位の1つ」でしかないんですよ。(サロゲートペアを考慮したときのchar16_tも同様)。
意味論で言っちゃえばUTF-32に対してchar8_tを使っても意味は同じになるんですよ。UTF-32って8ビット×4で構成されるだけなんで。
なので、UTF-8で表される1文字を型で使いたかったらuint64_tの子クラス(本当は最大6バイトなので48でいいんだけど)にしなきゃダメなんじゃねぇの?もしくは最少8ビットで48ビットを保証する型。とC++界隈ではない自分は思うわけです。
キーボード入力は常にディスプレイに入力した内容がリフレクションされるので、目を使ってその入力された内容を確認しなければいけない。
これは結果コンピューターボーイ達の視力を悪化させることとなり、メガネ好き女子たちを喜ばせる結果としかならない。
入力された結果を確認するために、必ずしも目を使わなければいけない理由はない。
例えば音。音には0オクターブから18オクターブくらいまで,(7+5)*18=216パターンの符号化が可能である。
この216パターンは大体ASCIIコードの総数と同じであるからして、音を符号化したリフレクションというものは実際可能であろう。
音域だけではなく音色でも符号化は可能な訳だから、実際の符号化できる音パターンはもっとたくさんになる。
ここはひとつ、音声入力の結果を音で出力するというのはどうだろう?
誰かやってみてください。おながいします!