HandelC「スピード」プログラム

目次
1、
2、
3、
4、
5、
背景・目的
プログラム仕様
実現のための苦労した点
デモ
考察、まとめ
1、目的・背景
目的:高位システム記述言語Handel-C
とFPGA開発ボード(RC10)を用いて
ハードウェア設計の基礎を学ぶ。
FPGAとは?
・Field Programmable Gate Array の略称
・利用者が独自の論理回路を設計できるLSI
Handel-Cとは?
・一般的なC言語よりもハードウェアよりの言語。
・変数を設定するときにビット数を定義できる。
作成したプログラム説明
・作成したプログラム
トランプ「スピード」風ゲーム
・ルール
二人のプレーヤーがそれぞれ1~13の
カードを2組、計26枚のカードを中央の山
に出し合い先に26枚を出し切ったほうが
勝ちとなる。
2、作成したプログラムの仕様
プログラムを転送した時点でゲームスタート
中央にある二組の山の数字の+1もしくは-1の数字
を出すことができる。
指の形をしたポインタを場札に合わせ左右どちらかク
リックすると前述の条件を満たせた場合その方向の
山に手札を出すことができる。
プレーヤーは場札4枚あり、場札を出すと手札から出
した枚数を補充する。
先に手札を出し切った方にWIN、もう一方に LOST
また、同時に終了する場合にはともにDRAWを表示
する。
相手の場札
ゲ
ー
ム
の
簡
略
図
4
3
5
A
2
A
中央の山
5
2
3
自分の場札
4
3、実現のために苦労した点
場札から中央の山に出すときのアニメーション
それぞれのカードを出す判定と画像の表示
の同時処理。
手札のカードの交換。
Handel-Cでの擬似乱数関数の作成
コンパイルとインプリメントの時間的長さ。
5、考察
カードの表示がときおり1色になってしまうことがある。
これは複数のループで同時にアクセスしようとするの
で起こると思われる。ただ、どの関数でどのように起
こっているか理解できなかったため対処できなかった。
カードの情報を持った構造体を配列で使用してしまっ
たのでプログラムがわかりにくく、また時間がかかっ
た。これを線形リストで表示することでプログラム的に
も時間的にも簡単にすることができると思われる。
まとめ
いままでに使っていたC言語と異なるクロックサイクルと
いう概念と並列処理という点で最後までてこずった。
カードをシャッフルするための擬似乱数を作成したが時
間がなく搭載することができなかった。これを使用すると
もっとゲームとしておもしろくなったと思う。
表示がうまくいかずそれによりデバッグがなかなかできな
かった。
処理が簡単なゲームだと思って作成を始めたが、実際に
作成してみると処理、表示、通信の三要素のハードウェ
アよりのプログラムの難しさに驚いた。