以前のブログの記事で、ライフゲームのアルゴリズムを紹介しました。 utthi-fumi.hatenablog.com utthi-fumi.hatenablog.com 今回はawkでライフゲームをリアルタイムで動くプログラムを作りたいと思います。 BEGIN{ # [2]定数を定義 FIELD_WIDTH = 12; # [2-…
ゲームでプログラミングとなると、大抵はjavascriptで作ることが多いと思います。 キーボード操作やマウス操作が絡んできますからね。 awkでも、リアルタイムでキーボード操作ができれば、ゲームを作ることができます。 キーボード操作そのものはシェルスク…
ライフゲーム 碁盤の目の上に、いくつかの石(生命体)を適当に配置する。これらの生命体は、以下に述べる簡単なルールに従って生き続ける。 それを見て楽しむという単純なゲームである。 盤面では、どの場所も縦・横・斜めに8個の場所と隣り合っているが、…
変数a,bの値を交換するには、 a = b;b = a; /* 駄目 */ では駄目である。余分な変数tempを使って temp = a;a = b; b = temp; とする。あるいはビットごとの排他的論理和を使って b ^= a; a ^= b; b ^= a; としてもよい。 #include<stdio.h> void swap(int *x, int *y)</stdio.h>…
table,blockquote{ display:none; } 10問ずつ掲載しております 末尾の答えを押すと、解答と解説が表示されます。 問題 1 土地100,000円を購入し、仲介手数料2,000円、登記料3,000円とともに小切手を振り出して支払った。 借方科目 金額 貸方科目 金額 土地…
キャンバス // { let canvas = document.getElementById("graph"); ctx = canvas.getContext("2d"); paint(); }); function drawLine(x0, y0, x1, y1) { ctx.beginPath(); ctx.moveTo(x0, y0); ctx.lineTo(x1, y1); ctx.stroke(); } function paint() { ctx.…
三角関数 中心角の移動に応じて、sin/cosカーブをアニメーションで描画してみました。 キャンバス // { let canvas = document.getElementById("graph"); ctx = canvas.getContext("2d"); ctx.font = "24px sans-serif"; setInterval(tick, 10); }); functio…
中心角とsin/cosの値を表示するアプリを作成 JavaScriptでは、Math.sin(),Math.cos()という関数が用意されているので、それを利用させてもらった。 中心角=0度 キャンバスの表示内容を説明する代替テキストです。 // 以下ソース <p><input id="theta" max="360" min="0" type="range" value="0" /> 中心角=<span id="degree">0</span>度<br /> <canvas id="graph" width="600" height="600">キャンバスの表</canvas></p>…
前回のjavascriptの重力加速度を参考にシンプルなゲームを作成しました。 マウスを押すと対象物が上に上がり、マウスを離すと対象物が下がるというシンプルなものです キャンバスの表示内容を説明する代替テキストです。 // down) { clearInterval(timer); }…
重力には逆らえない。 遠投した時の軌道を書いてみた。
加速度とは「単位時間あたりにどのくらい速度が変化するか」を表します。 加速度をjavascriptで実装してみます。
前回に引き続き、速度の計算をjavascriptで実装してみる。
canvasの知識やゲーム作成の勉強を兼ねて、ブログに残しておきます。 まずは速度から。 一定の速度で右方向へ移動する単純なアプリからはじめよう。
円周率をプログラミングで出してみます。 phpだと、
フィボナッチ数列とは「直前の2つの項を足し合わせてできる数列のことで 【1,1,2,3,5,8,13,21・・・】 と無限に続きます。(1+1=2、1+2=3,2+3=5,3+5=8,・・・) このフィボナッチ数列をプラグラムで求めてみましょ…
新たにlubuntu20.04をインストールしたので、ワシの.vimrcも再設定 防備録として 最低限の設定のみ "--------------------------------------------------------------------------- " 検索の挙動に関する設定: " " 検索時に大文字小文字を無視 (noignorecas…
素数は、1とその数以外に約数を持たない数のことです。 ある数が素数かどうかを判定するには、約数の個数を調べます。 約数は、その数以下の自然数で割って、割り切れるか調べると求められます。 「10」の約数を見つけるには、1から順に10まで割ってみればい…
私達人間は0〜9の10個の数字を使った10進数を使うことが一般的です。 それに対し、コンピュータは2進数で動いています。 2進数は0と1の2つの数字だけを使った表現する方法です。 つまり、0,1,10,11,100,101,110,111,1000,・・・のように桁が増えていきます。…
今回は、単純な自動販売機を考えてみます。 自動販売機は、投入した金額と購入したい商品の金額を比較して、投入した金額が商品の金額と同じ、または投入した金額のほうが多ければ商品を購入出来ます。 そして、投入した金額のほうが多かった場合はお釣りを…
企業がプログラマを採用する場面で「プログラムを書けるプログラマ」を見分けるためのテストとして知られる問題にFizzBuzzがあります。 これは、次のようなプログラムを作成する問題です。 1から100までの数を順に出力するプログラムを作成しなさい。 ただし…
ライフゲームです。 ルールは下記のウィキペディアをご参照下さい。 ja.wikipedia.org #!/usr/bin/awk -f BEGIN{ N = 22; # 縦方向 M = 78; # 横方向 a[N / 2][M / 2] = a[N / 2 - 1][M / 2] = a[N / 2 + 1][M / 2]\ = a[N / 2][M / 2 - 1] = a[N / 2 - 1][m…
小学校で学ぶ円周率。 無限に続く循環しない小数で、既約分数で表せないということはよく知られています。 一方で、ゆとり教育において「円周率を3として計算する?」といった事が話題になりました。 実際には「3.14」が多く使われていますが、古くから分数…
ハノイの塔でプログラミングするというのは、比較的よく見られますね。 最近ですと、FIzzBuzzでしょうか。 再帰の勉強になるということで、awk版を作成してみました。 #!/usr/bin/awk -f # ハノイの等 BEGIN{ ARGC == 2 ? n = ARGV[1] : n = 3; printf("円盤…
久々のperlネタ パソコンで電卓を叩く時、私は perl -de 0; とするのですが、残念ながらperlのデバッガにはデフォルトでヒストリー機能がついていない。 Term::ReadLine::Gnuをcpanから入れると、ヒストリー機能が使えるのだが、インストールするのに手間取…
司馬遼太郎著 「義経」読了。 義経 中学生の頃に、何となく社会で覚えたが全く覚えていないので、読んでみた 源義経の戦は天才。 しかし、政治力はまるで子供。 この両極端な性格ゆえに、兄者である頼朝から毛嫌いされ、その理由もわからずに最終的には自害…
竜馬がゆく 「竜馬がゆく」読了。 司馬遼太郎の小説は、割と気合を入れて読まなければいけない。 読了するのに、やたら時間がかかる。 スイスイとは読めませんね。 以前、高知に住んでいながら、全然坂本龍馬の事を知らなかった。 勉強がてら、この本を買っ…
久しぶりのawkネタ じゃんけんで出す手を使った多数決を考えます。 それぞれ出せる手は「グー」「チョキ」「パー」のいずれかです。 このとき、一番多くの人が出した手が勝つことになります。 例えば、6人で行うときは表1のように1回で勝者が決まる場合もあ…
志高く 孫正義正伝 新版 (実業之日本社文庫) 「志高く 孫正義正伝」読了。 孫正義、ご存知ソフトバンクの創業者であり、現会長。 彼がどのようにして、ソフトバンクを作ったのか。そしてどのようにしてソフトバンクを成長させたのかが分かる1冊。 志なくして…
awkネタ 以前どっかのサイトに載せられていたawkで作ったテトリス。 これでテトリスが出来るのだからすげー。 ぜひ遊んでみてください。 # $Id: awktris.awk,v 1.4 2006/01/31 23:14:42 tnn Exp $ # awktris - tetris in 19 lines of code, or 1516 bytes. #…
コンビニ人間 コンビニ人間読了。 何でも合理的に考える主人公。 世間とのギャップに戸惑いながらもコンビニでバイトすることで、自分と世間のギャップを埋めていく。 店長から自分が必要とされていることを感じ、コンビニでバイトを続ける。 コンビニでバイ…