« 2004年11月 | メイン | 2005年01月 »

2004年12月31日

ギガビート二日目

現実逃避だから書くんですよ。

フォルダによる再生管理は明らかに便利。
使ってみて、やはりそう思います。
他の機種でも搭載しているプレイヤーが多い機能だとは思いますが、比較対照はiPodなので。
一番普及している機種であると共に親が持っていて実際に触っているからなんですが。
そして、使いづらいと評判の操作板ですが、一日で慣れました。
タッチパッドだと思って使うから使いにくいのであって、普通の十字ボタン+αと思えば全く問題無いです。
ただ、何も見ないで操作する事が難しい。
リモコン(別売り)が欲しくなってきました。しばらく買えませんが。
他には、ブックマーク機能が便利そうで便利でなし。
転送ソフトでプレイリストに吸い上げられるんですが、そのプレイリストから別のプレイリストへの移動ができないのです。
まあ、これは転送ソフト側の問題であり、そちらが改善したら大幅に使い勝手が向上しそうですが。
その上、ホイップクリームプリンがおいしかったです。

投稿者 miff : 01:39 | コメント (0)

2004年12月30日

マゾプレイなのかどうか

つまりは、自分のやりたい事が量産型ではできないわけです。
あらゆる行動の基本にある、「人と違う事をやりたい」という欲求が影響していないとは言いません。
しかし、「人がやっている事」を見る前に既にやりたいと願っている事自体が王道から外れているのです。
もっとも、選択肢の中から「これは多くの人が選択しそうだな」と経験と直感から該当項目を除外している可能性も無きにしも非ずではありますが。
むしろ、人と違う事をやりたいってネットゲームでのキャラ方針では誰でも考える事でしょうしね。
どうせ意識的に王道を外してますよわたしゃ。
で、それはネットゲームの話であり、尚且つどうでもいい自分語りであります。
当然の事ながら、ここはどうでもいい自分語りをする場所なのですから遠慮する必要もありませんが、書きたい事はそんな事ではありません。

で、なんでそんな事を書いたかと言いますと
gigabeat(http://www.gigabeat.net/mobileav/audio/index_j.html)買いましたっ
iPod言うな!
Gシリーズ(第一世代)はいい感じのデザインなのにFシリーズ(第二世代)はiPodのパクリになりそこなったようなデザインになっているのが残念です。
もっとも、iPodのシルエット自体はそう目新しい物ではないのですが。
あれです。Macがウィンドウシステムを採用したせいで最初に作られたウィンドウシステム搭載OSの事がすっかり忘れ去られ、
WindowsはMacからウィンドウシステムをパクった酷いOSだ!とか描く漫画家が出てくるような物なんですよ、うん。
とりあえず国産のプレイヤーかiPodのどちらにしようか迷っていまして、国産のプレイヤーと言いましてもFDS搭載ゲーム機を売り出すような某メーカーの製品は使いたくないですし、
それ以前にソニータイマーという都市伝説(ソニー製品が特に壊れやすいという部分)がありますし、
となるとほとんど東芝のこれしか選択肢が無かったわけですね。
で、iPodとこれを比べた時にまず目を惹くのが液晶画面です。
大画面で画質も良し、大量の音楽データを扱うHD型MP3プレイヤーはこの部分の視認性と操作性が命なわけですが、iPodPhotoと比べてもひけを取らない見栄えでした。
また、慣れ親しんだマウスジェスチャーが搭載!
数種類の機能しか割り振られていませんが、試しに触ってみたところなかなかこれが快適。
数分間格闘して慣れるまでが少々辛い操作部ですが、慣れればかなり便利そうです。
さらに、フォルダによる楽曲管理、これです。
iPodはiTunesのプレイリストをそのまま同期できるのが魅力なわけですが、肝心のiTunesがフォルダによる楽曲管理に対応していません。
ええ、もう、ファイルパスによる検索すらできないのです。
この事の不便さはあえて書くまでも無いでしょう。
とにかく、その機能が搭載されている事は非常に+のポイントです。

まとめると

これが良さそうな部分でした。
もっとも、中身のハードディスクは三星製らしいですが!
北朝鮮に送金してしまいましたか _no

気を取り直して、これはちょっと……という部分は

こんなところです。
実のところ、まだ楽曲を転送している段階なので操作性などは展示品を触ってみた感想ですが。
これからいじってみてまた色々書きたいです。試験勉強は?

投稿者 miff : 01:01 | コメント (1)

2004年12月26日

東京事変

やっぱり世の中は東京を中心として廻っていると思ふのですよ。
東京に進出したいです東京。
そんな事より初恋がまだなんですがおかしいですよね。
人を愛することを教えてくださいって誰ですか私。

投稿者 miff : 10:45 | コメント (2)

2004年12月24日

買い物リスト

必須品

できれば欲しい


#何様?
#http://members.jcom.home.ne.jp/pctips/Tondemo/100Tohoho.html

投稿者 miff : 14:02 | コメント (0)

2004年12月22日

HTMLいじり

http://nekoshiki.poke1.jp/guidline/

あなたはどれだけ守れていますか?
正直な話、細かい点はアンチMSなFireFox信者を彷彿とされ(自粛
もっとも、重要度4以上の物は確かに納得できる物が多いです。

視覚効果のみを考えてマークアップするのではなく、文書の構造を記述する事を目的とするべきなのですが、
なかなか面倒な作業でもあります。
別に読み上げソフトに対応してなくてもW3C基準に沿っていなくても細々やってる弱小サイトなんだしいいじゃなーいとか思いますが、
Web上に上がっている文書は公共財産なわけでして、例えそれがここに書けないようなリンク集でも気をつけないといけませんね。
手遅れですが

せめてデッドリンクの検出だけでもやる事にしました。ってもともと年に3回はやってるんですけど。

投稿者 miff : 11:56 | コメント (0)

ゆずゆ

冬至ですしね。私もバイト先でゆずをもらってきてやりましたよ。
タイトルに他意はありません :-)

ところで、今日自分に負けました。
何についてかは書けません。書けやしないよ
禁煙する人の気持ちがわかったかもしれませんね。しかし次は負けない

寝て起きたら部屋を大掃除して、年始の買い物リストを作成する予定です。
夕方からは中学校時代に参加していたクラブの同窓会。なつかしい

投稿者 miff : 04:07 | コメント (0)

2004年12月19日

冬休みにすべきこと

おぼえがき

=最重要=
試験勉強
優先順位:中国語≧経済学=認知科学≧言語学=行政学≧コンピュータの物理=情報処理=経営学=基礎数学≧情報社会論
優先度は現在の学習レベル、持込可不可、事前にあった範囲の説明などによる

=重要=
C言語の学習
目標:GUIを持つプログラムを何でもいいから一つ作ることと、もう少し標準ライブラリ付属関数について知識を深めたい

=時間があれば=
基本情報技術者試験の勉強
1月末から始まる春休みに集中して勉強する予定なので、ここでは「できるだけ」とする。

=(・み・`=
アルバイト
やめれと言われてもなかなかそうも行かないのは言い訳なのかそれとも言い訳なのか。
とはいえ日記には愚痴書きますぐちぐちぐち


=今やるべきこと=
たまりにたまった英単語230個暗記
理由:明日試験

投稿者 miff : 23:11 | コメント (2)

2004年12月17日

まるばつゲーム

数日後に作り始めます。とりあえず英語の試験と基礎体育のレポートが……。

で、とりあえず思いついた部分から書き連ねていきます。
今日はプレイヤーがプレイ盤のどこに駒を置くのかを指定するのに座標を使おうと考えています。

123
456
789

左上から0,0、一番右下が2,2というわけです。
入力は、標準入力から一バイトずつ取ってきます。多分getcharを使いそうな予感。
これで、わざわざ二桁の数値を割ったり引いたりして一の位と十の位を分離っとかやらなくてもOK!きっと……多分。
入力チェックは取り込む度にかけます。0~2、これで2バイト文字が入力されたりしていても大丈夫なはず。
もちろん、チェックでアウトになったら
while (getchar() != '\n') {}
これでっ
3回目の取り込みで\nが発見できなかった場合も
while (getchar() != '\n') {}
そして再入力を求める、と。

そんなイメージで。

投稿者 miff : 03:04 | コメント (0)

仕様書ってものがこの世にはあるらしい

いきなり作れって言われてもよくわかりませんよ。
あと、こんな仕様書じゃ作る意味無いですね。

=====================
図のような○×ゲームを人間対コンピュータ間で行なうプログラムを作成せよ。どちらが先手かは開始時に選べるようにせよ。コンピュータ側の指し手はでたらめではなく,一定の戦略に従うものとし,最低限,相手の王手を発見して阻止手を打つ機能を必須とする。
|X|
-+-+-
|O|O
-+-+-
| |

これの仕様書を作れって言われた。

プログラムの目的:一個目の駒を置いた時点で勝敗が決するゲームを作る事
実現すべき機能:先手と後手をプレイヤーが選択できる、既に勝敗は決しているぜ機能
プレイヤーが気の迷いで先攻をコンピュータにした場合において必ず勝つ機能

外部仕様
出力すべきデータ:
・場の情報(○なのか×なのか空白なのか)
入力すべきデータ:
・プレイヤーの先攻後攻決定(int型,一個,0か1,書式とか期待されても困る)
->入力エラーの条件:数字の0か1以外を入力するとかふざけた事やられた場合は本当なら無視してもいいんだけど仕方ないからエラーチェックしてあげようじゃないか
・駒を配置する場所(11,12などで書いてもらう……)
->入力エラーの(略:上記の数字以外を入力した場合は無条件でプレイヤーの負け。余計な事をするのが悪いんですよ。

内部仕様
データ構造

☆グローバル変数
int型の3*3な二次元配列を用いて場の状態を表す

0.メイン関数
int型の変数を一個用意し、プレイヤーのターンかCPUのターンかを判別

1.場の初期化
グローバル変数であるint型の二次元配列を0で塗りつぶす。ローカル変数は使わない

2.先攻後攻決定入力
char型の文字列格納配列を一個
int型の正しい入力がされているかのチェック用変数を一個。具体的にはsscanfの返り値を代入する
int型の入力された二桁の座標を表す数値を1の位と10の位に分割してそれぞれに代入するサイズが2の配列を一つ用意
あとはループカウンタなどにint型の変数を二個ほど用意しておけば足りるのかもしれない

3.プレイヤーの駒配置希望場所入力
2と同じ

4.コンピュータの駒配置希望場所決定
2と同じだが、一応駒を配置する場所を思考させるために必要な一時変数が数個いるかもしれない。
いくつ必要かわからないのでint型を5個くらい用意しておけば足りるかもしれない。

5.駒を配置
関数の引数で渡された値を元に処理をするので、とりあえず引数を受け取るためにint型を2個ほど用意

6.場を視覚的に表示
グローバル変数を利用する。ループカウンタとあわせてint型を3つ

7.勝ち負け決定
一応ループカウンタなどのために4つくらいint型を確保しておけば足りるのではないか

9.エラー処理
変数いらない

投稿者 miff : 00:35 | コメント (0)

2004年12月16日

オブジェクト指向2

・オブジェクト指向は特別にプログラミングだけに適用する物ではない
・オブジェクトは状態を表す属性(プロパティー)と可能な動作(メソッド)を持っている
→トランプの山札を例に取ると
  □属性:山札に残っている札、引かれた回数など
  ■動作:山札からカードを取り出す、山札をシャッフルするなど
・属性と動作を一つのオブジェクトとして固めることをカプセル化という

・オブジェクトは一つの事象の原型である
・そのオブジェクトと似ているが少し違う事象は、オブジェクトの中身を借用しつつ、新たに属性や動作を追加する
・クラス……は、オブジェクトの事?もしくは複数のオブジェクトを機能でまとめた物?
・オブジェクト(原型)にメッセージを送る事によってインスタンス(その場で求める事象)を作成する
・インスタンスはオブジェクトから作り出されたオブジェクトのようなものである(?)

それで、オブジェクトから発生したイベントを受け取って新たなイベントが発生して……と繋げていったりするらしい。
理解の間違いとか覚え違いとかもかなりありそう……。
関数化というのはオブジェクト指向をプログラミングにて実装する手段の中の一つとしても使える、といったところでしょうか。
C++とかをやろうと思ったらもう少し気合いれてオブジェクト指向について勉強しないといけないようなそんなイメージで。

投稿者 miff : 00:33 | コメント (1)

2004年12月15日

調べてみた

ANSI/Cでは、標準でそのような機能は搭載されていません(ごめんなさいっ)

な、なんだってー!

というわけで、C単体ではきついそうです。
どっかからファイルを拾ってきてincludeするか、DirectXを使ってみるとか、そんなところ。
でも、正直言ってCの理解も浅いのにそこまで駒を進めるべきかどうかがあれ。
しかし、コンソールプログラムだけだと面白味が足りないのも事実。

1.苦し紛れにC++に手を出してみる(こっちも望む機能は標準でなさそう)
2.VisualC++?というものを触ってみる(基本を理解していないのに手を出すとやけどしそう)
3.DirectXを使ったCプログラミング(当初の目的から外れている気がする)

無難なのは、とりあえずCでAPI呼び出してウィンドウズっぽいプログラムを作ってみることでしょうか。
でも、それで面白そうな事ができるかというと疑問なのですよね。
と言いつつ、とりあえずやってみようと思いました。
そのうちDirectXを使って動くプログラムを作ってみたいとも思っていますが。

その過程で
http://www.interq.or.jp/black/minami-m/game/game_idx.htm
こんなのが。
やらないけど。

投稿者 miff : 00:13 | コメント (0)

2004年12月14日

オブジェクト指向?

の本を借りてみました。
どのみち避けては通れない道なので、できるだけわかりやすそうな物を……。
しかし、読むと機能を細かく分割して関数化するのとどう違うのか今ひとつ違いがわかりづらいと思い。
同じなわけが無いので、理解が浅すぎるのです。
とはいえ、なんだかもどかしいやり方に見えるのは気のせいでは無いでしょう。
個人レベルでどうせ部品を使いまわさないプログラム相手では、従来のやり方の方がいい場合もあるようです。
……それじゃ勉強にならないので、この本をもう一周するなり違う本を借りるなりしてみようと思います。

&、こう、画面が動くようなゲームを作りたいという欲望。
やり方は色々考えられるけど、やり方がわからないといった感じです。
図書館にはやたらと入門書ばっかり置いてあるし。。

http://www.kumei.ne.jp/c_lang/intro/no_61.htm

描画→この無理矢理な方法で消去→再描画

……やってみるべか

あ、常時キー入力受付で例えば「→」キーを押したら割り込んで即プレイヤーを右に移動させるような方法が……っ
って、DOS窓じゃきついって事なんでしょうかそれとも……

投稿者 miff : 01:00 | コメント (0)

2004年12月13日

栄枯盛衰

一瞬にしてRO知り合いの多くがROをやめてしまいました……。
おかげで溜まり場が凄い過疎っぷり。
移住先はMoEやらROSEやら。
割と長く付き合ってる人々がMoEに移住したので、しばらくやめないと思います。
しかし、自分の好きなように育成方針を立てると必ずマゾプレイになるというのはいかがな物か。
ガンホー早くつぶれないかなー。

基本情報の勉強が進まないー。まだ2ページくらいしかやってないっ
それもこれもTales of Symphoniaのせいです。間違いない。
普通に面白いです、これ。
世間がDQ8をやっているときにToSをする、これこそ……これこそなんだろう。

投稿者 miff : 03:22 | コメント (0)

2004年12月11日

日記

ポインタの本を読む。
意味はわかるけれど使えるかとなるとまた別の話。

MoEは最近E鯖で調教使いのセカンドを作成してそちらに浮気気味。
言われたら肝臓渡します > 某氏
もちろんP鯖もちょこちょこやっていますが、ネクロマンサーは未だ遠いこと限りなし。

投稿者 miff : 01:02 | コメント (0)

2004年12月08日

はらたつわー

契約では週3、日曜日は13時-17時であったはずなのに働き出してから週4、日曜日は13時-21時30分にしろと言い出してくる時点であれな会社。 ← 一応生活計画みたいなのがあるわけですよ、後で言われても困ります。
別に契約が全てとは言いませんが、どうしてもそれでなければダメと言って無理矢理頷くようにさせるのならば、最初からそう言っておけと。 ← 辞めるという手段もありますが契約期間は我慢したいというのはプライド?
そりゃ、確かに完全に契約通りには行かない事もありますが、と最初に言ってましたけど、これは「完全に契約通りに行っていない」ですよね? ← 契約完全に守れといっておるわけではありません(守るべきですが)
なんか週5日以上働かせられる週もあるし、本気であんたたち何様ですかと。  ← 週6日とかなめすぎ
確かに私は雇われていますが、ちゃんと仕事していますよ? ← いやまじめなはなし
給料払ってるから会社の方が偉いってそりゃ一方的過ぎますよ。 ← ぱわーはらすめんと?
給料以上の仕事はやっていると私は思うんですけれどもね。 ← 給料安いし仕事はあれやらこれやら
てか、言われなくてもダンボールくらい捨てておけとか言いますけど、あんたたちこっちがちょっと考えて先回りした行動をして失敗したらこっぴどく怒るでしょうが。
そんな状態で言われなくても捨てておけって、もしそのダンボールが捨てたらダメな物だったらまたグチグチ言ってくるんでしょうが。
全く持って理解し難い。 ← 残業の八つ当たりってのはわかってるけど
私が主に働いている青果のセクションはまともな人が多いんですけどね……。 ← 割といい人が多い。仕事内容はしょぼーんだけど
会社自体がダメポなようで。 ← トヨタを見習えー少人化じゃなくて省人化しろー

とか書いたのは、年末年始はほとんど休めないと思え、1/1だけは休みね、とか言われたからなんですが。 ← 忙しいのはあんたんとこの会社だけじゃなくて個人としても用事があるんだよー(せめてその時期は給料上げれー(本音))
契約期間が終わったら絶対にヤメチャルー。 ← 3月下旬
お金は欲しいですけどこんな信用できない会社で働き続ける気がしない(。。; ← そもそも時給800ちょっと
給料振り込んでくるだけマシなんでしょうけど、それって最低限の話ですしねぇ。
バイトの数が足りないから週4でお願いとか言っておきながらこれ以上増やすつもりは無いとかありえないありえなさすぎる。 ← ひどい

最初から週4にするつもりだったんなら契約時に言っておくれよー ← これが全て

というわけで、上司とは全然合わないし契約切れたらこのアルバイトは辞めます絶対。
今度は空白期間ができないようにちゃんとバイトを探さないとねー。 ← 今回は空白長すぎて色々ピンチだった
コンビニ辺りは、契約守ってくれそうなんですがどうでしょう、やっぱり店によるんだろうけれども。 ← フランチャイズだし

ああ……明日は年末の予定で戦わないと……。

投稿者 miff : 23:49 | コメント (2)

2004年12月05日

ブラックジャック!

昨日は色々とテンパった事を書いていましたが、落ち着いて眺めるとなんとか突破口が見つかりました。
やはり頭を冷やすという行為は大切な事なのですね。

http://misp.s4.xrea.com/b/mydata/cardbj.c
http://misp.s4.xrea.com/b/mydata/cardbj.exe

基本的には&&とすべき所を||にしていたり12とすべき所を11としていたりと、単純な間違いが多かったです。
なんとか完成させたので、心置きなく次のステップへ行ける事が何よりも嬉しい。

今回の教訓は
・(しつこいようですが)scanfに気をつけろ!
・関数はできるだけ細かくした方が後で修正する時楽
・#defineって便利ですね
・do~whileってなんだか面倒そうと思っていたのにすっかりトリコ
・アスキーアート(?)を横に並べるのってちょっと面倒

ってところでしょうか。
関数で機能を追加していく過程が一番楽しかったかも知れません。
一番嫌だったのは、デバッグ作業です(・み・`
ポインタとか構造体とか全然使っていませんね。
ポインタは使いたいと思ったんですが使わなくても普通に作れるなら使わない事を選択してしまう進歩の無い事といったら。
構造体に至っては使い方以前にどんな物か今ひとつわかっていませんからっ切腹!

投稿者 miff : 01:13 | コメント (0)

2004年12月04日

Black_JACK

char buff[2]; //入力用
int input_judge; //入力判定用
int replay; //再プレイするかどうか

do{
printf("もう一度プレイしますか?[0:no/1:yes] > ");
fgets( buff, 2, stdin );
input_judge = sscanf( buff,"%d",buff);
} while(!(input_judge==1)&&!((buff[0]==0)||(buff[0]==1)));

0か1が入力されるまでループするよう。
が、このままではinput_judgeが1になった時点でなぜかループが終了されてしまう(&&以下が無視されている?)ので、

} while(!(input_judge==1));
replay = buff[0];
}while(!(replay==0||replay==1));

緩衝材を入れます。
これが、何でこんな事になるかわからないシリーズ1。

input_judge = sscanf( buff,"%d",buff);
sscanfは文字列をコピーする関数……。
sprintfも文字列を……。
とりあえず、入力された物を値としてコピーできる?かどうか判定するためにsscanfは使わざるをえないとして、
buffのアドレスのところに入っている文字列を十進数としてbuffのアドレスに格納、
そもそもbuff[0]に入っているのは単なる数値のはずでは……。
ああでも数値は数値でも二進数として。

結局buff[0]には1バイトの数値が、buff[1]には\0が。
なので、直接比較しようとして

} while(!(buff[0]==0||buff[0]==1));

こうやってみるとうまくいかず。
replay = buff[0];
これは苦肉の策です。
buff[0]:char replay:int なのでキャストは不要ということで。

しかし、これを挟んでいるためにdo do-while whileと、汚い事に。
どうにかネスト(でしたっけ?)を浅くしたい物ですが、難しい。

if(!(A_flag==0)){
 if(A_flag==1){
  if(temp_point + 11 > 21){ temp_point = temp_point + 1; }
  else if(temp_point + 11 <= 21){ temp_point = temp_point + 11; }
  else { error(); }
 } else if(A_flag==2||turn==0) {
  switch(fuda_plr_maisu){
   case 2: temp_point = 12;
         break;
   case 3: if(temp_point + 11 > 20){ temp_point = temp_point + 1; }
        else if(temp_point + 11 <= 20){ temp_point = temp_point + 12; }
        else { error(); }
        break;
  }
 } else if(A_flag==2||turn==1) {
  switch(fuda_cpu_maisu){
   case 2: temp_point = 12;
        break;
   case 3: if(temp_point + 11 > 20){ temp_point = temp_point + 1; }
        else if(temp_point + 11 <= 20){ temp_point = temp_point + 12; }
        else { error(); }
        break;
   }
  } else if(A_flag==3) { temp_point = 13; }
  else { error(); }
}

昨日よりは少し見易く。
が、なぜか、

┏━┓┏━┓
┃ク┃┃ス┃
┃1┃┃7┃
┗━┛┗━┛
もう一枚引きますか?
プレイヤーの点数:11

こんな事に。

for(i=0; i  if(fuda_plr[1][i] == 1){
  i++;
  A_flag++;
  continue;
 }
 else if(fuda_plr[1][i] >= 11){ temp_point = temp_point + 10; }
 else { temp_point = temp_point + fuda_plr[1][i]; }
}

つまり、1が先に来るとだめなんですが、多分これはcontinue文の使い方が整合性の取れないやり方になっている……のかなあ。
ほんとに考えれば考えるほどショボーン
もうちょっと様子を見るとつまり、fuda_plr[1][i]=1の時にきちんとi++してcontinueする時と、しない時があります。
かなり脳が枯渇状態なので、続きは時間を置いてからもう一度見てみる事にします。

こんな単純なコードで悩んでいるようでは先が思いやられる(・み・`

投稿者 miff : 15:13 | コメント (0)

BlackJack2

最初にやろうと思ってたことが完成したら急激に冷めたので、これはこの辺にして次行こうと思います。
飽きっぽいですね(。。;
まだ、いろいろやろうとすると技術的(?)な壁にぶつかってしまうのです。
もっと勉強してもう少しスマートなソースを書けるようにしたい。

http://misp.s4.xrea.com/b/mydata/cardb.c
http://misp.s4.xrea.com/b/mydata/cardb.exe

恥ずかしい部分も多々ありますが、これから少しずつでも改善していけたらな、と思っています。

追記:
と思ったら、繰り返しプレイと1を11として扱う事を実装しる!と言われたのでそれもやりました。
ついでにエラー対策がおかしい!と言われたのでそれも入れておきました。

追記2:
その後、エラー処理がおかしくてどうしようもなくなって、最終的にscanfを放棄しました。
今回の事でわかりました。
s c a n f に 気 を つ け ろ !

エラー処理付近が特に気色悪いコードになっているのは眠たいからです。他意はありません。多分

追記3:
そうこう言ってる間に1の扱い、特に1が複数枚出てきたときの処理が問題になり、私の取った対策は
放 棄
もういいです眠いです寝る予定0時でしたよ?今4:30ですよ?なんですかこれは?
仕方ないので力技でスイッチで分岐させましたよ?もう物凄い勢いで分岐させましたよ?
最低な行為とわかっていても、どうしても完成させてから寝たかったんです。
そしてできたものは製作者にすら意味がほとんどわからないようなブロック(というのかももうどうでもいいです)

/*---------------*/
if(!(A_flag==0)){
switch(A_flag){
case 1: if(temp_point + 11 > 21){ temp_point = temp_point + 1; }
else if(temp_point + 11 <= 21){ temp_point = temp_point + 11; }
else { error(); }
break;
case 2: switch(turn){
case 0:
printf("ウアアアア:%d",A_flag);
switch(fuda_plr_maisu){
case 2: temp_point = 12;
break;
case 3: if(temp_point + 11 > 20){ temp_point = temp_point + 1; }
else if(temp_point + 11 <= 20){ temp_point = temp_point + 12; }
else { error(); }
break;
}
break;
case 1:
switch(fuda_cpu_maisu){
case 2: temp_point = 12;
break;
case 3: if(temp_point + 11 > 20){ temp_point = temp_point + 1; }
else if(temp_point + 11 <= 20){ temp_point = temp_point + 12; }
else { error(); }
break;
}
break;

}
case 3: temp_point = 13;
break;
}
}
/*-----------------------------*/
一部デバッグ用の見苦しいのが入ってますが、どうでもいいです。
作ってきたものが一瞬で崩れる瞬間……。
それは睡眠を取りたい脳が思考を放棄しているからです。
このままじゃ終わらせれない。
終わらせれないのでもう見たくもないですがなんとか綺麗な最後を飾りたいので何とか考えます。
ああもう、早寝したいのに。
自分への戒めとしてソースを公開。
途中までは順風満帆だったんだけどなあ。
scanfの最低さ(少なくとも自分を含めた素人にはお薦めできない)を存分に味わっただけでも良しとしましょうか。
入力関数でまともなものはないんですかまともなものは……。
こう、入力値のチェックと入力を兼ねていてお手軽かつ堅実な普通に使えるような物は……。

・基本情報
後で基本情報も取れば結局両方取ったって事で一緒ですよ。うん。
ドキュアドでごめんなさいですよ。うわーん。

投稿者 miff : 04:37 | コメント (2)

2004年12月03日

Black Jack

山札を用意する、手札を空にする、山札から指定枚数カードを引く、といった基本的な動作を関数にして、
それを繋げてカードゲームを作ろうと思いました。
どうせテキストを返却してしまったのなら、いっそのことという事で。
一応、今日で「プレイヤーとCPUに二枚ずつ配布、プレイヤーは後一枚引くか選択、21に近い方の勝ち、21を超えれば負け」というところまで着ました。
残りは、グラフィカルな画面!(とはいえ罫線と数字と符号の頭文字だけでしか構成できませんが……)
それと細かいルールの実装ですね。
正直、後はどうとでも完成させられる気はするんですが、細かいルールがややこしいんですよね。

これが完成したら、以前教えてもらった
http://www.kumei.ne.jp/c_lang/
ここを参考にして色々やってみるつもりです。
特にCによるCGIなど、あこがれてしまいますね。

投稿者 miff : 02:31 | コメント (0)



XREAAD