タグ

*programmingとtetrisに関するhowalunarのブックマーク (6)

  • わーい、テトリス言語 Tetrlang 完成したよー\(^o^)/ - Homoiconic Days

    これはなに? Tetrlang は、研究の中間発表を1週間後に控えた大学院生の現実逃避によって作り出された言語テトリスにインスパイアされた言語です。 Tetrlang は以下のような特徴をもつ言語です。 各命令がテトリスのブロック(テトラミノ)によって表される 他のブロックとの境界が分かる限り、(ほとんど)どんな文字でも使うことができる 各命令は Brainf*ck の命令と同様の動作する 言語の説明 Tetrlang では、テトラミノによって命令を表します。テトラミノは隣接する4つの同じ文字から構成されます。テトラミノを構成する文字には空白文字以外の任意の文字が許されます。ソースコードを左から右、上から下という順にスキャンして、テトラミノの現れた順番で命令が実行されます。基的に、テトラミノの(回転による)向きの違いはありません。ただし、後述するIテトラミノだけは、テトラミノの向きによっ

    わーい、テトリス言語 Tetrlang 完成したよー\(^o^)/ - Homoiconic Days
  • perlでテトリス! - download_takeshi’s diary

    偶然おもしろいモノを発見しました。コンソールで遊べるperlテトリスです。 スクリーンショットとってみました。 なんと、macbookのターミナル上でカラフルなテトリスが元気よく動いてます! それにしても、俺テトリス下手だな。。。 ってのはおいといて、ソースを見てみましょう。難読化されてます。 #!/usr/bin/perl $_='A=15; B=30; select(stdin); $|=1; select(stdout);$|=1; system "stty -echo -icanon eol \001"; for C(split(/\s/,"010.010.010.010 77.77 022.020.020 330.030.030 440.044.000 055.550.000 666.060.". "000")){D=0;for E(split(/\./,C)){F=0;for

    perlでテトリス! - download_takeshi’s diary
  • HTML5のcanvasでテトリス - 素人がプログラミングを勉強していたブログ

    canvas thisに置いた。 JavaScriptの部分は下記の通りで、テトリスの画面の二次元配列とブロックの二次元配列を保存して、画面の上にブロックを重ねるように描画するというごく普通の実装。 画面の端を壁にしておくことで、はみだしチェックなどを省くことができる。番兵と呼ばれるテクニックで、よく使われる。 だいたいの部分の作成は1時間くらいで終わって、ブロックが落ちてくる+ブロックを動かせる/回転させられるようにするところまでで1時間30分。 あとは、描画まわりのバグ取りとブロックに色をつけるところ、次のブロックを左上に表示、ブロックの回転の調整(最初はブロックの左上を軸に回転していたが中央に軸をもってくるように+回転済みのブロックを保持しておく)を、リファクタリングをしつつやった。 全体で3時間くらいかかった。 どこかの動画で1時間でテトリスを作っていたのを見たので、自分でも作って

    HTML5のcanvasでテトリス - 素人がプログラミングを勉強していたブログ
  • 「テト鬼」の独り言 : 全消し解を求めるプログラミング(2) - livedoor Blog(ブログ)

    テトリス(主にTGMシリーズ)とソニックとjubeatと愛媛FCとアルフィー好きの、 自称「テトリスの鬼」ことコーリャンの雑記です。 とりあえずブロックの接地時に、配置可能かどうかの判定(配置場所から、上・左・右移動、および逆回転でフィールド上部へ抜けられるかどうか)を組み込んだ。 ちなみに、順回転探索(→ブロック配置時に逆回転になる)が入ってないのは、新セガテトの片回転ボーナスが前提のため。 再帰処理で組んだんだが、左右往復など無限ループを生じてStackOverflowErrorになって参った(笑) チェックを入れるようにして、何とか組み込み完了。 ただ、新セガテトの場合はフィールド端のみで壁けり補正があるので(赤は除く)、元祖セガテトでは不可能だった全消しも可能になったりするので、まだ完全では無いのだが。 ---- さて、これで正確な解が求まるようになり、探索時間も半分くらいになった

  • 【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)

    ■今回は、Win32API + C言語でテトリスを作る様子を実況してみました。■徐々にテトリスが出来ていく様を楽しんで頂けましたら幸いです。■一発撮りです。バグやミスを頻発させております。申し訳ありません。■gcc、ペイントブラシ、EmEditor、電卓での制作です。■randomのシードを入れていないのは、バグではなくて仕様です。キリッ■次回作の要望などは、Twitterの「tkihira」宛にメッセージをもらえると、確実に読めるのでうれしいです。■今までの作品はこちらで見ることができます→http://void-main.org/niconicoprogram/■(おまけ)ゲッダン→sm8543534■週刊ニコニコランキングで、#128という記念すべき回にてランクインしました!→sm8561979■マイリスト→mylist/16170739

    【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)
  • わずか565バイトテトリスのプログラミング解説

    「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか40キロバイト」に載っていたわずか565バイトのテトリス。文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。 以下のソースコードをメモ帳に貼り付けて、htmlで保存すればテトリスが動きます。 <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){fo

    わずか565バイトテトリスのプログラミング解説
  • 1