DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
クボタとシノブ

DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

#1

投稿記事 by クボタとシノブ » 8年前

とりあえず、最初に夢を語ります。

<作りたい物>
ノベル&タイピングゲーム
ミニゲームのクイズタイピングの正解率や連続正解数、回答時間などで、
条件分岐が変わる、マルチストーリー&マルチエンディング。
クイズのイメージとしては、アンサーアンサーの早押しやテクニカル、ビジュアルあたりを想像して頂ければ。
これを、パソコンでやるからには、タイピングさせるということで。
キー入力が始まった時点で、問題読み上げがストップすれば、十分早押し要素は満喫できる予定。

<必要?なスキル>
音、絵、文字表示
文字を1つずつ表示させるためのもの
エフェクト・・・大ざっぱすぎる表現だけど
いろんなコンフィグと、それに関わる入力系
キーボード入力
別ファイル(odtファイルとか)の読み込み。時として、問題文のまとめ方
半角全角の英数を同じ文字扱い、場合によっては大文字小文字、ひらがなカタカナを同じ文字扱いするための正規表現?
表記揺れ対策のための答え複数用意
時間の計測
インストーラー
画面デザインの最適な方法
すべてのパソコンで同じ早さに動くように調整する方法(FPS?)
機能的に、重くなりすぎないようにするには・・・?
できるのなら、相手のIPアドレスを聞き出さなくても、勝手に対戦相手を探すオンライン対戦の方法
素早く大量に絵や文や音を作る才能(重要)


問題は、実装の技術もそうなんだけど、
実装させるための技術の集め方なんです。
ほぼ、初心者以前の能力しかないので、
たとえソースが存在していても、理解できない状態です。
存在にすら気づかないことのほうが大半ですけども。

しばらくCから遠ざかると、いっさいがっさい忘れてしまいますね。
5ヶ月かけて、苦CやロベールのC++入門教室を勉強しても、
1週間で忘れてしまう恐ろしさ。
5ヶ月かけて覚えたつもりになっていたCの知識でも、
たぶん関数全体の10分の1も触っていないと思います。
本当の意味では、さわりに触れた程度で、覚えていないかもしれません。

結論からいって、DXライブラリ以外の何かも必要でしょうか?
もしあるとしたら、その答え・・・に、本当は用があるんだけど、
それを見つけやすくする方法が、本当は確実に知りたいのでした。

もしかしたら、バカ丸出しの質問かもしれませんが、
すみません、よろしくお願いいたします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

#2

投稿記事 by softya(ソフト屋) » 8年前

それは表面を撫でただけで真に理解していないからだと思います。
一週間程度で忘れるはずありません。

基本的なことを言えば、C言語とDXライブラリがちゃんと使えれば作ることができます。
絵と音楽は別に用意しての話ですけどね。
夢は壮大なので、まずC言語で簡単なプログラムを作れるようになってからにしましょう。
少しづつステップアップがクボタとシノブさんが望む方法を実現する方法だと思います。

現状の力を把握したいと思いますので次の問題をやってみてください。
カンニングNGでC言語でもC++でもかまいません。
プログラマとしての基本的な実力をみるFizzBuzzの問題です。作るのにかかった時間も書いてくださいね。
「1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。」
出来上がったコードはcodeタグを使って、ここに貼りつけてください。

[追記]
ついでに言うとプログラムのアルゴリズムは自分で構築するもので、どこかにあるのを見つけて来て継ぎ接ぎするものではないです。
基本的なアルゴリズムやベーシックなテクニックは、あちこちのサイトで見ることができますが何でもかんでも有るわけではありません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

クボタとシノブ

Re: DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

#3

投稿記事 by クボタとシノブ » 8年前

実際には、MSVC++2008Expressを、立ち上げる、
問題文の内容を忘れないように/**/でくくる、
の、ラグはあるけど、
27分ぐらいかかりました。
悔しいです。
1~100までずらずら表示されるように作ってから、
その中にif文織り交ぜながら作りました。
組み立て方としては、正しいのでしょうか?

で、勘違いしているかもしれない部分。
プリントとは、「紙に印刷」という意味だったのでしょうか?
紙がないから、画面にプリントしてしまいました。

コード:

#include<stdio.h>
/*
プログラマとしての基本的な実力をみるFizzBuzzの問題です。
作るのにかかった時間も書いてくださいね。
「1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、
5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。」
*/
void main(){
	short count;

	for(count=0;count<=100;count++){
		if(count%3==0 && count%5==0){
			printf("BuzzFizz\n");
		}
		else if(count%3==0){
			printf("Fizz\n");
		}
		else if(count%5==0){
			printf("Buzz\n");
		}else{
			printf("%d\n",count);
		}
	}
}
//8:35 - 8:07 = 0:27 およそ27分もかかった。頭の筋肉が衰えている。
//しかもfor文の使い方をしっかり忘れていた悔しい。

クボタとシノブ

Re: DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

#4

投稿記事 by クボタとシノブ » 8年前

バグが発見されてしまいましたので修正します。

コード:

#include<stdio.h>
/*
プログラマとしての基本的な実力をみるFizzBuzzの問題です。
作るのにかかった時間も書いてくださいね。
「1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、
5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。」
*/
void main(){
	short count;

	for(count=0;count<=100;count++){
		if(count%3==0 && count%5==0){
			printf("FizzBuzz\n");
		}
		else if(count%3==0){
			printf("Fizz\n");
		}
		else if(count%5==0){
			printf("Buzz\n");
		}else{
			printf("%d\n",count);
		}
	}
}
//8:49 - 8:46 = 0:03
//バグが発見されてからの修正時間
//FizzBuzzと表示されなきゃいけないのに、BuzzFizzになっていたのを修正。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

#5

投稿記事 by softya(ソフト屋) » 8年前

ほぼOKなのですが、早とちりのクセがあるようですね。
まだ早とちりが残っています。よ~く見なおしてみてください。

ちなみに、プリントは画面で良いですよ。

【追記】
まず、体で覚えるまで練習問題をするのが良いかなぁと感じました。
練習問題サイトを紹介しますので、やってみてください。
答えのカンニングNGで、C言語の入門サイトを見るのはOKです。

「苦しんで覚えるC言語」 入門サイト 兼 練習問題。
http://9cguide.appspot.com/
「C言語 練習問題集」
http://akabas.net/(S(taliry45fkng1j55hx ... eSupport=1
「C言語実力診断クイズ」
http://www.curiocube.com/mikata/cquiz/index.php

最後にゲーム的なものをコンソールで作ってみましょう。
「C言語 練習プログラム集」
http://akabas.net/(S(mlrkxl451pmm1z45zl ... CTask.aspx
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

hss12
記事: 40
登録日時: 8年前

Re: DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

#6

投稿記事 by hss12 » 8年前

まだミスがありますが、きれいな回答だと思います。
気になる点では、ミスではないですが
void main() よりは int main(void) として最後にreturn 0; としたほうが無難でしょう。
場合によっては int main(int argc, char *argv[])

またshortは特にメリットがあるわけでもないので整数はintで統一したほうが良いかも。
クボタとシノブ さんが書きました: 1~100までずらずら表示されるように作ってから、
その中にif文織り交ぜながら作りました。
組み立て方としては、正しいのでしょうか?
それで良いと思います。まずミスがないものを作ってから変更していったほうがミスが減ると思います。
この程度ならいきなり完成形を書く人もいそうですが。

ゲームについてですが、そのくらいならがんばれば何とかいけると思います。
オンラインはサーバが必要かな。

急がば回れじゃないですが、このサイトのシューティングゲームを
一通り理解できれば違うジャンルでも書けるようになると思います。
その前に何が書いてあるのか理解できないと先に進みませんので
まずはC言語の勉強ですね。

FizzBuzz問題、私も書いてみました。

コード:

#include <stdio.h>

int main(void){
	int i;
	for(i=1; i<=100; i++){
		if(i%3==0) printf("Fizz");
		if(i%5==0) printf("Buzz");
		if(i%3 && i%5) printf("%d", i);
		puts("");
	}
	return 0;
}

クボタとシノブ

Re: DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

#7

投稿記事 by クボタとシノブ » 8年前

ソフト屋さんも、hss12さんも、ありがとうございます。

うわぁ! 本当にミスがありますね。
0から始まっているなんて。
なぜ気づかなかったのでしょう。

shortを使ったのは、intの半分のメモリしか使わないから、
上限がわかっていれば、これで済むか? というケチケチ思想。
charでもよかったかな? とすら、思っていました。

int main(int argc, char *argv[])
って、ドラッグ&ドロップに対応するためのもの?
程度の認識だし、その認識すら間違ってる可能性すらありますので、
・・・どこかに書いてあったはずなんですけども、
思い出せませんでした。

実は、龍神録のコーナーで、
「このプログラムは、どういう仕掛けで動いている?」
が、なかなか理解できなくて、いったん挫折していました。
解析する時間も、なかなかなか。
まだ実力の問題で、理解できていない部分が、たくさんありました。
シューティングゲームで作りたいエロゲーも、
あることはあるのですけども。

ある意味「鍛えてくれ」な質問内容だったので、
練習問題のサイトは、ありがたいですよ。
C言語実力診断クイズは、今の私には難問すぎて、
問題文が理解できないレベルでした。

関数も覚えなければいけないけど、
それ以上に、構文の組み立て方の修練が必要ですね。
構造体が・・・苦手です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: DxLibだけで作れるのでしょうか?(特殊クイズとノベルゲームの合体もの)

#8

投稿記事 by softya(ソフト屋) » 8年前

クボタとシノブ さんが書きました:shortを使ったのは、intの半分のメモリしか使わないから、
上限がわかっていれば、これで済むか? というケチケチ思想。
charでもよかったかな? とすら、思っていました。
スーパーファミコン時代ならケチる必要がありましたが、今の時代はintを使った方が処理時間の無駄がありません。
昔との互換性等の問題が無い限りintをお使いください。
クボタとシノブ さんが書きました:int main(int argc, char *argv[])
って、ドラッグ&ドロップに対応するためのもの?
DOS時代には起動パラメータとして便利に使ったのですが。
今はショートカットのファイル名取得用という認識でも良いと思います。
ウィンドウズアプリでも起動パラメータとして使っている人はたくさんいますけどね。
クボタとシノブ さんが書きました:実は、龍神録のコーナーで、
「このプログラムは、どういう仕掛けで動いている?」
が、なかなか理解できなくて、いったん挫折していました。
解析する時間も、なかなかなか。
そこを解析しないと先に進めないんですよね。
分かってらっしゃると思いますが。
hss12 さんが書きました:関数も覚えなければいけないけど、
それ以上に、構文の組み立て方の修練が必要ですね。
構造体が・・・苦手です。
そうですね。
龍神録を全部理解するには苦Cの内容は、ほぼ頭に入っている必要はあると思います。
苦Cの問題も解ける必要はあるでしょうね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る