ゲーム製作集会改めクリエイター集会。
目次 †
概要 †
毎週金曜に集まりゲーム製作会議を行い、ゲーム内容の向上、個人の意欲の向上を図る。
又、集団でパソコン関連の活動を行うことで、サークル活動の活性化、集団意識の向上を図る。
現在会の内容を調整中。
他の活動と違い参加者にはある程度物事を強制する場合がある。
それぞれがそれぞれを規制し合い、安定した定期的活動を行う為である。
具体的な内容としては、ゲームの内容を考える、分からん所を聞く、ソースを見せ合い改善する、素材の製作を依頼する、等。
プログラミング未経験者には課題を与え、ある程度ゲームを作れるレベルになるまでサポートする。
経緯 †
ゲームを作りたい、なんて需要が多いので実施を決意する。
事細かに内容を決めたのは、gdgd防止のため。
参加規約 †
参加する方は以下の規約を守って頂きます。
規約は必要に応じて増えたり減ったりするかもです。
参加者全員
- 基本毎週参加すること。
参加出来ない場合は会長、副会長に連絡すること。
- 集会中他事は慎み、活動に集中すること。
会長・副会長
- この集会が有意義であるように努める事。
- スムーズに会が進むよう司会進行を努める事。
- 会の活動内容に問題点がある場合、速やかに改善を試みる事。
課題製作者
- 課題製作を怠らないこと。
- 一人じゃしんどいので課題製作者と協力し合うこと。
活動内容 †
gdgd防止のためにガイドラインを設けることにする。
基本はこれに沿って会を行う。
「かいしのあいさつ」と「しゅうりょうのあいさつ」をしっかりと行いメリハリをつける事。
金曜午後3時に開始とする。
- かいしのあいさつ
「これから、げーむせいさくしゅうかいを、はじめます!」「はじめます!」を必須とする。
- プログラム課題
- プログラム課題提出
- プログラムの内容を皆で見直す。
ノートパソコンを1台中央テーブルに置けば皆が見やすいと思うので一台用意する。
- プログラム模範解答提示
- 次週課題発表
出来ていない場合、課題製作者は近いうちにwikiで発表すること。
- ゲーム製作報告
以下の事をゲーム製作者はそれぞれ発表する。
- 進度報告
機能の追加、改善等を報告する。出来れば参加者に見せる。
先週の予定に達していなければ、それも報告する。
- 次週予定
次週までに追加する予定の機能、改善点等を発表する。
自らを規制するため。
- お悩み相談
ここのプログラムが分からない、どうしたらスマートに組めるか等、悩みがあれば相談する。
無ければ無しでよい。
- 素材要望
ここの機能を誰か作ってほしい、絵や音楽を誰かに製作して欲しい等があれば報告する。
無ければ無しでよい。
- 意見があれば発表する
無ければ無しでよい。
- しゅうりょうのあいさつ
「これで、げーむせいさくしゅうかいをおわります!」「おわります!」を必須とする。
以上の活動内容に追加すべき内容、問題点がある場合、会長・副会長は活動内容の変更を考える事。
参加者名簿 †
参加者はここに役割、製作物、名前を書くこと。
参加の意思がある者は自由に書き加えてよい。
注:参加出来ない場合は会長、もしくは副会長に連絡する事。
副会長はそのうち決める。複数人いた方がいいと思ってる。
役割 | 製作 | 名前 |
会長・課題担当 | 合同ゲーム製作プログラマー | MARISHI |
副会長・課題担当 | 個人ゲーム | ユウメ |
課題担当 | 個人ゲーム | おかゆ |
課題担当 | 個人ゲーム | KOUJI |
一般 | 合同ゲーム製作ドット絵 | カーくん(遊戯王) |
一般 | 合同ゲーム製作音楽 | A. |
課題 †
プログラム未経験者の方に、ゲームを製作出来るレベルになるまで課題を提出したいと思います。
言語は問わない事にしておきますが、2回生はCかC++しか対応出来ません。ごめんなさい。
模範解答は用意します。こちらもなるべく綺麗に書く様には心がけます。心がけます。
が、こちらも実力不足な面は多々多々あります事を先にご了承くださいませ・・・
開発環境もネット環境も無い方 †
開発環境もネット環境も無い方の為に、VisualStudio2008ExpressEdition?をDVDに焼いて一部の方にお渡ししました。
無い方同士で連絡し、貸し借りしてインストールしてください。
連絡できねーよー、連絡面倒だよー、人見知り激しくて連絡したくねーよー、なんて人は連絡していただければDVDに焼いて渡します。
第1回目〜自己紹介〜 †
とりあえず部室で考えた問題。
この時期にいきなりこれを1週間で、っつーのもシンドイし、
つーかそもそもまだ入部とか確定してないじゃん、
っつー話なのでまぁとりあえずやりたい人だけ気楽に期限気にせずやってみてね〜な問題。
- 番号が割り振られた質問項目を表示する。
- 番号を入力すると、それに対応した質問の回答が表示される。
例:
(出力)
1:名前
2:HN
3:趣味
4:BWH
(入力)
2
(出力)
AGOHIGE+
何か分からない点があればどうぞ。
第2回目〜面積計算〜 †
図形の種類(正方形=1、長方形=2、円=3)を入力する。
図形の種類ごとに面積を求める関数を実行する。面積の表示はメイン関数で行う。
例
Square:1
PerfectSquare:2
Circle:3
入力:1
正方形の辺の長さ:3.3
面積:10.89
考え方
(1)図形の種類(shurui)を入力する。
(2)種類ごとに関数を実行し、面積(menseki)に値を返す。
?種類が1(正方形)のとき正方形の面積を求める関数(seihoukei)を実行する。
?種類が2(長方形)のとき長方形の面積を求める関数(chouhoukei)を実行する。
?種類が3(円)のとき円の面積を求める関数(en)を実行する。
(3)正方形の面積を求める関数(seihoukei)
?一辺の長さ(hen)を入力する。
?答え(kotae)=一辺の長さ×一辺の長さ
?答えを返す。「return (kotae)」
(4)長方形の面積を求める関数(chouhoukei)
?縦の長さ(tate)を入力する。
?横の長さ(yoko)を入力する。
?答え=縦の長さ×横の長さ
?答えを返す。
(5)円の面積を求める関数(en)
?半径(hankei)を入力する。
?答え=3.141592×半径×半径
?答えを返す。
(6)(main関数にて)面積を表示する。
※mainから各関数への引数はない(void)とする。
問題は以下のサイトから転載しました。
http://www.geocities.jp/kenji_y0328/
第3問目〜大人の階段のぼる〜 †
段数をmain関数内で入力する。
段数を引数に関数を実行し、関数内で段数ぶん階段を表示する。
例
階段を何段のぼるん?
-->5
*
**
***
****
*****
プログラムの流れ。
1.main関数内で段数を入力する。
2.段数を引数にとり、階段表示関数を実行する。
3.関数内で階段を表示する。
+α
暇だったらこんなんとか作ってみるとおもしろいんじゃね?
っていうのとかアイディアとか。
*****
****
***
**
*
**
***
****
*****
とか、
何の階段に登りますか?
-->大人
何段上りますか?
-->4
大人
大人大人
大人大人大人
大人大人大人大人
とか。
第4回目〜きっとドラクエのマップとかこんな感じなんだぜ〜 †
急に2次元配列。かなり無茶振り。反省。
急に作ろうとせずに、参考書を読んでもっとシンプルな問題を解いてから手をつけることをお勧めします。
char型の2次元配列に*、_を代入してループ表示。
「35」という文字を*と_で表現しなさい。(ほかに見やすい半角文字があったらそれ使ってね^^;
例:
***_***
__*_*__
***_***
__*___*
***_***
ヒント
配列の初期化をうまく2次元でやればそのままです。
あとはforの中にforですね。
第5回目〜ポインタギリギリ一歩手前まで〜 †
今までのまとめ問題みたいなの。
問題
0が入力されるまで整数を入力させ、その値を配列に格納します。(最後に入力された0を含む)
その配列と要素数を引数に取り、配列に含まれている整数の最大値を返す関数を作ります。
返された最大値をディスプレイに出力しなさい。
例
2
4
8
2
0
max->8
手順
main関数内
- int型の配列を宣言。
- 0が出るまでint型の配列に数字を代入
- 配列を関数に渡す
- 関数から返ってきた値を出力
GetMax?関数(int型の配列を引数にとる)
- 最大値を格納するint型の変数を宣言。
- 引数にとった配列の要素に0が出るまでループ
今までの最大値よりその要素が大きければ、最大値を更新する。
- 最大値を返す
ヒント:
配列を引数にとるGetMax?関数の宣言の仕方は
int GetMax( int x[] );
GetMax?関数にyという名の配列を渡すには
GetMax( y );
です。
第6回目〜ポインタ導入〜 †
初心者キラーポインタの登場です。
いきなり難しい問題もなんなので、改造から始めてもらいます。
ループや配列の扱いの部分をちょこっとポインタに変えるだけなのでそんなに難しくないです。
問題1
第5回目の問題をポインタ仕様に改造しなさい。
例
省略
ヒント
int x[5];
int *ptr = x;
kを添え字とすると、
x[k] を *(ptr + k) で置き換えたり
for(k = 0 ; k < 5 ; k++) x[k] += 10
を
for(k = 0 ; k < 5 ; k++) *(ptr++) += 10
などと置き換えることが出来ます。
こんなことして何になるんだ?とか言わないでください。
そりゃ確かに何にもなりませんが(オイ
ポインタがどういうものかに慣れる為の問題です。
この他にも書き換えられそうなところがあれば積極的に変えてみてください
ただし、定義してない領域を参照する
(例えば上のヒントであればk == 5で*(ptr++)が実行されるなど)
と色々と大変なことになることもありますので十分注意してくださいね。
プログラマの基礎能力を測る方法としてFizzBuzz問題というものがあります。
時間かければ誰でもできる問題だと思うので是非チャレンジしてみてください。
問題
自然数 n (n≦100)が入力されたとき、1〜nまでの数字を順に出力してください。
ただし、n が3の倍数ならば n の代わりに Fizz、n が5の倍数ならば n の代わりに Buzz、n が3の倍数でも5の倍数でもある場合は n の代わりに FizzBuzz と出力してください。
例(n が20の場合)
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
15分ほどあればできると思います。
FizzBuzz問題は有名なのでネットで探せばさまざまな解答が見つかりますが、最初は何も見ないで解いてみてください。
「こんなの簡単すぎるよ!」という人は次の発展問題をやってみましょう。
発展問題
自然数 n (n≦100)が入力されたとき、1〜nまでの数字を順に出力してください。
ただし、n が3の倍数のときと n のいずれかの桁が3のときには、n の代わりに n をひらがなで出力してください。
例(n が15の場合)
1
2
さん
4
5
ろく
7
8
く
10
11
じゅうに
じゅうさん
14
じゅうご
簡易掲示板 †
「こんなのやったらいいんじゃね?」「こうしたらgdgdにならないと思うよ!」「マリシきゅんかっこいい」
等ご意見がありましたらどうぞ。
文法や構文が終わってからでもいいんだけど †
formula (2008-06-07 (土) 04:30:02)
「標準ライブラリを使って〜の機能を作りなさい」みたいなのも標準ライブラリの勉強になっていいかも。