ホールドはとりあえず完成した。
ただし、ホールドした時にバグで一部のブロックの破片が表示されたまま(ゲームに支障はない)が残る。
引数を増やしたがあまり意味はない(?)かもしれない
ホールドしたブロックの表示はできないまま
次回からの課題
・ホールドの破片バグの解消
・ホールドブロックの表示
・今回作ったソースコードの関数化
6/5
ホールドの表示の完成、ただし、前の表示がのこる。
腰がイキました
6/12
ホールドをブロックが落ちるまでに一度のみの使用に変更
7/3 ヘッダファイルの追加(佐藤浩との共同開発にシフトチェンジした。)
https://svn.cis.iwate-u.ac.jp/svn/csd/15/g08/proj/game/battle_mod/tetris.h
7/10タイトルを作った。かっちょいい。
7/31画面表示モジュールをやった。キャラを選択画面の上に表示できた。
・講義の感想
テトリス自体はネットにあったのだが、それを改良していくのはなかなか苦労した。
例えばホールド機能を付け加えるのでさえ4-5週かけてやっと完成したし、動作の設定をするのにも苦労した。
オープニングの画像を作るのは楽しかった。
みんな予想以上に凄いものを作っていたし、完成が速かったので、とてもよかった。
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity DECODER4TO16 is
port ( A : in std_logic_vector(3 downto 0);
X : out std_logic_vector(15 downto 0));
end DECODER4TO16;
architecture RTL of DECODER4TO16 is
begin
process(A) begin
case A is
when "0000" => X <= "1111111111111110";
when "0001" => X <= "1011111111111111";
when "0010" => X <= "1101111111111111";
when "0011" => X <= "1111111111110111";
when "0100" => X <= "1111011111111111";
when "0101" => X <= "1111111111011111";
when "0110" => X <= "1111111110111111";
when "0111" => X <= "1111111011111111";
when "1000" => X <= "1111111101111111";
when "1001" => X <= "1111110111111111";
when "1010" => X <= "1111101111111111";
when "1011" => X <= "1111111111101111";
when "1100" => X <= "1110111111111111";
when "1101" => X <= "1111111111111011";
when "1110" => X <= "1111111111111101";
when "1111" => X <= "0111111111111111";
end case;
end process;
end RTL;