【初心者】課題をクリアしていくスレ【講習会】

■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
垢版 |
04/06/10 18:05ID:VshiFFV8
ゲームに必要な要素を先生が出してくれます

その課題をクリアしていく講習会です
2007/03/23(金) 01:18:56ID:GKwkgx4A
なるほど。自機が○で弾は点かと思ってた。自機四角か。

画像処理はあんまり詳しくないので
他の先生の登場を待ってください。ごめんなさいね。
2007/04/04(水) 09:47:03ID:BbjO+U02
javaでslg作りたいキチガイです。
課題1
http://gamdev.org/up/img/9260.zip
buttonとかlayoutとかさっぱり…疲れた
2007/04/04(水) 09:56:18ID:BbjO+U02
>>655
0〜9までの数になってたorz
修正
http://gamdev.org/up/img/9261.zip
2007/04/05(木) 03:22:08ID:juxaiBkl
HSPを勉強中なので、素数問題に挑戦してみた。
素数の出し方がよくわからないから総当り&最初いんちき。

screen 0,450,400 : font "MS ゴシック",12 : objmode 2
so = "" : max = 10000 : maxs = 1000 : a = 2
mesbox so,450,320
pos 12,333 : mes "try" : pos 50,330 : input max,100,20,5
pos 220,330 : button gosub "start",*gogo
pos 12,358 : mes "get" : pos 50,355 : input maxs,100,20,5
stop
*gogo
if btn : a = max + 1 : btn = 0 : return
sdim so,max*4
objprm 2,"stop" : objprm 0,so : btn = 1 : so = "" : a = 2 : s = 0 : d = 0 : len = 0
repeat max
repeat a,1
c = a\cnt : if c = 0 : s++ : if s > 2 : break
loop
if s < 3{
d++ : sa = strf("%5d",a)
poke so,len,sa : len += strsize
if d \ 10 = 0{
poke so,len,"\n" : len += strsize
title "" + cnt
}else{ poke so,len,", " : len += strsize }
}
s = 0 : a++ : if (a > max) or (d >= maxs) : break
wait 0
loop
objprm 0,so : objprm 2,"start" : btn = 0 : title " get = " + d
return
2007/04/05(木) 09:48:52ID:F5eNq3r+
同じHsp初心者なはずなのに、なにがどうなってるのか解読できん。
俺の素数プログラムは偉くシンプルなのにな。
こういう見やすい感じのつくれるようになりたいけど、さっぱりなんだよな。
最近はやる気起きないし。
2007/04/07(土) 15:27:26ID:7tS8COUW
http://gamdev.org/up/img/9276.zip
Delphiで数当て作りました
2007/04/11(水) 23:27:29ID:hGtX8W0q
課題の1〜11までやったんで段階的学習に移ろうと思うんだが

15
インベーダー
テトリス
ブロックくずし
オセロ
ぷよぷよ
パックマン
マリオ
ギャラガ

この順番でおk?
2007/04/13(金) 03:50:36ID:DE3aw73g
最終的に何が作りたいかにもよるけど、だいだいOK
2007/04/13(金) 07:00:29ID:ePt0UiZ0
>>661thanks!
申し遅れました>>655です
javaでSLG作ろうと思ってるdqnです

以前に、基本だけ勉強してSLG作成に突撃したことがあるんだけど、
クラス数が多くなって管理しきれなくなって玉砕w

あせらず、ゲーム作りってのを学んで、それから再挑戦するつもり
じゃあ15から行ってくるノシ
663名前は開発中のものです。
垢版 |
2007/04/13(金) 07:11:48ID:HSdmSo3i
2007/04/15(日) 20:45:16ID:/fPrY/bJ
>>660
テトリスとブロックくずしは逆でもいいかもな
って遅いか
2007/04/15(日) 22:21:11ID:XmVefahd
俺もDXライブラリ使って660に書いてある
課題やってみるかな。
2007/04/16(月) 18:38:23ID:DHmGTth8
>>664
遅くない
テトリスで詰まってるorz
下、左右への移動可能判定ワケワカメ
レスサンクス

気分転換にブロック崩しから先にやってみるノシ
2007/04/17(火) 03:31:39ID:xnJXx47A
移動先にブロックや壁があるかどうか、だと駄目なのか?
668名前は開発中のものです。
垢版 |
2007/04/17(火) 20:27:52ID:DgPcYp5y
僕はテトリスの方が簡単だと思いますが、どうだろうか。
2007/04/18(水) 06:25:53ID:H53kNm7B
一番簡単なのはRPGだったりするけどなw
2007/04/18(水) 12:42:11ID:4KCSkIQC
fcのdqは何とかなりそうだけど
sfcのffとかrsとか死にそう
2007/04/18(水) 22:32:17ID:v99y4oaM
フラグ管理だけじゃねーの?
2007/04/19(木) 08:29:12ID:3lC0Cy6I
>>670
まぁ、ドラクエタイプのRPGは典型的な小中学生向けプログラムだね。
むかーし昔、80年代のパソコン少年たちはまずドラクエもどきを作って遊んだものだ。
2007/04/19(木) 08:35:34ID:wm8Zzz6B
シューティングはゲームプログラムの基礎がいっぱい詰まってるぞ
2007/04/21(土) 04:29:18ID:4gr+tzZx
マインスイーパもいいよ
サンプルは誰でも持ってるし、イベントドリブン型のアプリ設計とか
再帰を使ったアルゴリズムとかもあるし、初心者の実力アップにはいい教材。
queueを使って再帰をやめるとどうなるか、とか凝りだしたらおもしろい。

>>672
俺も昔、N**-BASICで、IFとGOTOだけでアドベンチャーゲーム作った事がある。
紙とペンでフラグ管理をちゃんとして、あとは移動と戦闘を作れば
dqタイプは楽かもね。
2007/05/05(土) 17:14:02ID:D2oIcwh+
>>667
亀だが…
左に移動するときならブロックの左端と、既に固定されたブロックや壁との衝突判定を行おうとしていた
その左端をどう導出したらいいのかで詰まってた

4x4のブロックのフィールド全部で判定すればいいんだねーorz
アホでした。
今はオセロに挑戦中…
2007/06/20(水) 13:42:19ID:8K3dmP9x
オセロ難しくはないがめんどい
2007/07/12(木) 19:01:47ID:BNvwAZPq
wikiの段階的学習をやろうと思うんだけど
ゴリゴリ作って晒すのはこのスレでおk?
678名前は開発中のものです。
垢版 |
2007/07/12(木) 19:02:55ID:kvp3cKLa
晒しage
2007/07/24(火) 02:22:27ID:sikuFIAE
>>677
おk
2007/07/27(金) 00:08:19ID:CWSFY+9/
横スクロールのアクションゲームを作れるようになるには
どれくらいかかる?
2007/07/27(金) 00:12:36ID:Zd3sdNnp
今どれくらい出来るかにもよるよ。
1週間あればとりあえずシステムだけなら出来ると思う。
2007/07/27(金) 00:55:18ID:1ly+L1dQ
早い段階で作れるようになる
2007/07/28(土) 13:23:39ID:PcfzSmjm
画面出入力
キー入力
ファイル読み書き
演算
これを(どれか一つもしくは複数)満たすように簡単なお題を出していけば、基本何でも作れそうだが
2007/07/28(土) 21:16:20ID:VUtYyNMw
もっと整理してみた

画面表示(キャラと背景)
入力(キーかマウス)
演算(当たり判定)

ファイル読み書きは少し後でいいんでない?
685683
垢版 |
2007/07/28(土) 21:40:46ID:UeZm28Yq
上の講義のサンプル見ると、テトリスの得点を保存させるとか、オセロの盤面を保存させるとか
ちょっとした事だけでも分かると夢が膨らむかなぁと思って。
直ぐに必要になるものでもないから後でもいいね
2007/07/30(月) 11:28:11ID:6LwwN6qr
夢がひろがりんぐ


すたれたなこれも・・・
2007/07/31(火) 02:25:43ID:DUqyrB+j
ぷよぷよはくっつきまで表示できるようになれば合格かなぁ
2007/07/31(火) 14:07:18ID:OcT/rTQJ
ぷよの場合は、何個くっついてるか?の判定ができれば合格じゃね?
2007/08/22(水) 21:17:36ID:ZVS3wfyE
はっきり言ってくっつくとかさっぱり分からないまま放置。
ライフゲームまではやったんだがなぁ。
2007/11/26(月) 00:11:38ID:0u+2SUoR
過疎ってるので使わせてもらおうかな・・。
とりあえず
http://gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D
段階的学習!

を参考にしてテトリスを作ってみようかと思います。
2008/03/31(月) 01:57:42ID:gUB5EALr
プログラミングの知識ほぼゼロですがC言語に挑戦してみようと思います。
690の「段階的学習!」のコメント欄によると
>一番の最初には数当てゲーム。その次にマスターマインドとか。この辺から始めないとな -- 2005-11-25 (金) 02:10:27
とあるので、まず数当てゲームの作成に取り組んでみます。
692名前は開発中のものです。
垢版 |
2008/03/31(月) 06:10:02ID:6Xmv80aV
雑魚晒しage
693名前は開発中のものです。
垢版 |
2008/04/06(日) 03:23:16ID:3FIXnopP
>>691じゃないけど数当てゲーム作った
scnafで%cを使うと無限ループになるけどなんで?
//数当てゲーム
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int gameover = 0;
    int seikai = 0;
    int kaitou = 0;
    char replay = 'y';
    char buf[2];

    while(replay=='y')
    {
        printf("1-9の数を直感で当てます。\n");
    
        seikai = rand() % 9 + 1;
        while(kaitou != seikai)
        {
            printf("1-9の値を入力して[ENTER]を入力:");
            scanf("%d", &kaitou);
        }
        printf("正解です!!\nもう一度プレイしますか?[y/n]\n");
        scanf("%s", &buf);
        replay=buf[0];
    }

    return 0;
}
2008/04/06(日) 04:47:09ID:6iQTQxIz
>>693
とりあえず、

・srand()を使わないと答えのパターンが毎回同じになること
・rand()のような線形合同法が用いられている(と推測できる)関数の
 返り値の余りを採るやり方は、数値が偏りやすくなる可能性があること

を覚えるべき。2番目はわからなければ今は無視してもいいけど
1番目だけは絶対に理解しておくべき。
2008/04/06(日) 05:32:21ID:pZ63dDRm
%cで1〜9を入力すると数字の'1'(0x30)〜'9'(0x39)になる。
%dで1〜9を入力すると数値の1(0x0)〜9(0x9)になる。
この場合欲しいのは数値なので%dで正解だと思う。
2008/04/12(土) 16:41:42ID:wUyPJZn0
>数値が偏りやすくなる可能性があること
気になったので実験。
下記プログラムにて偏りを目視で確認してみた。
(実行結果:http://gamdev.org/up/img/11312.phps

67と68を境に出現頻度が変わってる。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    long int hit[100]={0};
    long int i;

    srand((unsigned)time(NULL));

    for (i=0 ; i<1000000000 ; i++)
    {
        hit[rand()%100]++;
    }

    for (i=0 ; i<100 ; i++)
    {
        printf("%d\t%d\n", i, hit[i]);
    }

    return 0;
}
2008/04/12(土) 16:46:13ID:u1ebOeKL
>>696
(整数演算で)「乱数範囲÷100×100」以上は再試行しないと…
2008/04/12(土) 16:56:10ID:wUyPJZn0
仮説をたててみた

乱数の元になる数が0-9の10種類で出現する可能性は同じ

  乱数の元:0 1 2 3 4 5 6 7 8 9

0〜2の乱数出力時の式

  式:rand() % 3

乱数の元から0〜9が1回ずつ登場した場合

  出力数:乱数の元

    0 : 0 3 6 9
    1 : 1 4 7
    2 : 2 5 8

だから、>>696の実行結果はある値を境に出力頻度が変わった

これで正解?ちょっとググってくる

>>697
「乱数範囲÷100×100」って「乱数範囲」では?
乱数範囲%100を100セットってことかな
2008/04/12(土) 17:04:10ID:u1ebOeKL
例えば乱数範囲が0〜65535なら
65535÷100×100=65500になる。
65500〜65535は%100すると
結果のバラツキに繋がるので捨てるのが基本。
2008/04/12(土) 17:37:14ID:VRvbtz8m
乱数範囲による偏りに加えて、
線形合同法による乱数の下位nビットの周期が
高々2^nという点にも気をつけないといけない。
つまり、下位1ビットの周期は高々2^1 = 2。
偶数しか生成しないか、奇数しか生成しないか、
偶数と奇数が交互に生成されるかの3パターンしかない。
よって、線形合同法による疑似乱数生成関数randでサイコロを作ろうとして
rand()%6+1とかやっちゃうと、2人で遊んだ時に
片方のプレイヤーが偶数の目だけ、もう片方が奇数だけという状況が生まれる
(これをやっちゃった有名な例がカルドセプトサーガ)。

今でもCのrand関数は線形合同法のような形で実装されていることが多いけど、
下位kビットを捨て、k+1ビット目からを1ビット目と見なすことで
周期性の問題を解決しているものもある。
2008/04/17(木) 23:00:01ID:xfcPWlW/
1〜100までの数が書かれた玉が1個ずつ入った箱から、玉を取り出す場合は、どの数が出てくる確率も同じだけど、
1〜100までの数が書かれた玉が1個ずつ入っていて、さらに1〜10の玉を箱の中に追加したら確率が変わる。
そういうことだな。
で、余分に入れちゃった1〜10を取り除く処理が必要というわけだ。

  rand()から得られる乱数範囲 : 0〜65535
  取得したい乱数範囲      : 0〜99

の場合、0〜99が同じ確率で得られるように

  65535 - (65535 % 100) = 65500

を超えた部分は捨てる

つまり、rand()の戻り値が65500より大きかった場合は、無効な範囲から取得したとして
rand()による乱数取得をもう一度やりなおす。

プログラムの流れをまとめてみた
  1. rand()を実行
  2. もし、rand()の戻り値が65500より大きいなら1.へもどる
  3. rand()の戻り値を100で割った余りを得る
  4. おわり
2008/06/04(水) 08:04:37ID:PZn8j6Ch
新Gamedevできたのでかきかき

TopPage - game-develop.com wiki
http://wiki.game-develop.com/

GameDevWikiを何とかするスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1156117275/
703名前は開発中のものです。
垢版 |
2008/06/14(土) 23:31:21ID:nnavq8hB
数当てゲームはこんなので良いですかね

1.ウィンドウを表示する
2.ランダムに1〜10までの数字を一つ表示する
3.数字を入力して、その数字を表示する
4.2の数字と3の数字を比べて、入力された数よりも大きかったらBig
小さかったらSmallと表示させる
5.3と4を3回繰り返させる
もし正解したらそこでゲームを終わりにする
2008/11/06(木) 02:05:29ID:5LSMjBOf
>>702
間違っています。
以上。
↓次の方どうぞ
2008/11/06(木) 23:24:20ID:oz8drcUW
はい、次の人です。
お前の安価が間違ってるぞ、と。
2008/11/24(月) 20:57:35ID:qPCWYPAF
過疎ってるけれどお邪魔しますよっと
いきなりパックマン作ろうと思って挫折したので、
一からこちらで勉強しにきました
数当てゲームから挑戦していきたいと思います
2008/11/24(月) 21:26:57ID:qPCWYPAF
1.数当てゲーム 
Level1 ウィンドウを表示する
ttp://www.geocities.jp/shobo_dankaiteki/
2008/11/24(月) 21:55:12ID:qPCWYPAF
1.数当てゲーム 
Level2 ランダムに1〜10までの数字を一つ発生させ、表示する
ttp://www.geocities.jp/shobo_dankaiteki/
2008/11/25(火) 21:39:13ID:GdvnSEyE
1.数当てゲーム 
level3 数字を入力して、その数字を表示する
ttp://www.geocities.jp/shobo_dankaiteki/
2008/11/26(水) 21:45:19ID:Wb2d5d5f
1.数当てゲーム 
Level4 Level2の数字とLevel3の数字を比べて入力された数よりも大きかったらBig。小さかったらSmall。同じならHitと表示させる。
ttp://www.geocities.jp/shobo_dankaiteki/
711名前は開発中のものです。
垢版 |
2009/01/05(月) 19:13:02ID:F8IEg8lA
int main()
{
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH|GLUT_ALPHA);
glutInitWindowSize(800,600);
glutInitWindowPosition(0,0);
glutCreateWindow("ロボット");
init();
glutReshapeFunc(reshape);
glutKeyboardFunc(key_press);
glutDisplayFunc(draw);
glutMainLoop();
return 0;
}
712名前は開発中のものです。
垢版 |
2009/01/06(火) 21:32:51ID:c5JPjzC/
いまから参加したいけど何すればいい?
2009/01/06(火) 21:59:13ID:364hVwSo
>>712
現在地も目的地もわからなければ道案内はできない
とりあえずプログラミング暦(スクリプト、ツールを含む)と最終的な目的(RPGが作りたいとか
Cをマスターしたいとか)を書いてくれ
2009/01/06(火) 23:29:33ID:UozvWyya
基礎からと言うならまずは英語かな。
英語を読むことができれば海外の情報をゲットできるよ。

これとか教材にすると面白いかも。
http://wiki.gamedev.net/index.php/Tools:Programming
715名前は開発中のものです。
垢版 |
2009/01/14(水) 00:58:33ID:uviUrAzN
自分の位置をみつける目安は?
2009/01/14(水) 01:16:39ID:yw67XO87
プログラミングスキル:
Lv.1 テトリス
Lv.2 インベーダー
Lv.3 グラディウス

グラフィックスキル:
Lv.1 デッサン一年目
Lv.2 デッサン二年目
Lv.3 デッサン三年目

サウンドスキル:
Lv.1 MP3/OGGのエンコード方法がわかる
Lv.2 DTMがわかる/楽器を演奏できる
Lv.3 オリジナルアルバムをリリースする

ライタースキル:
Lv.1 10000文字以上の作品を書いて公開したことがある
Lv.2 100000文字以上の作品を書いて公開したことがある
Lv.3 1000000文字以上の作品を書いて公開したことがある

PMスキル:
Lv.1 2chで企画を出したことがある
Lv.2 2chで出した企画に肯定的なレスが3つ以上つく
Lv.3 2chで出した企画が成功する

センス:
Lv.1 ぐにゃぐにゃ
Lv.2 へろへろ
Lv.3 ぴきーん
2009/01/14(水) 03:18:01ID:7SW263aP
テトリスとインベーダーなら難易度はほぼ同じで
どちらかというとテトリスのほうが難しい
シューティングで並べるなら
Lv1インベーダ
Lv2ギャラガ
Lv3グラディウス
2009/01/14(水) 22:36:11ID:GiBTcIUW
プログラムスキルCUI編
Lv.0 Hello,World(環境設定、表示)
Lv.1 四則算(入力、変数)
Lv.2 Big & Small(乱数、制御文)
Lv.3 石取り(関数,AI)
Lv.4 Hit & Brow(配列)
Lv.5 タイピング(タイマー,ファイル読込)
Lv.6 クイズ(データ構造,文字列操作,構造体)
Lv.7 しりとり(ファイル読書込,検索,クラス)
Lv.8 ノベル(これまでのまとめ)
Lv.9 アドベンチャー、育成シミュ、経営シミュ(それぞれのアルゴリズム)
Lv.99 ローグ風RPG
2009/01/14(水) 23:15:49ID:GiBTcIUW
プログラムスキルWindow編共通
Lv.0 Window表示
Lv.1 パラパラアニメ(画像表示,タイマー)
Lv.2 もぐら叩き(マウス入力,点の当たり判定)
Lv.3 1画面STG、ドットイート(キー入力、当たり判定)
インベーダーは3.5くらい

パズル(+落ちもの)
Lv.1 スライドパズル(配列)
Lv.2 ブロック崩し(反射)
Lv.3 テトリス(回転)
Lv.4 ぷよぷよ、さめがめ、マインスイーパー(シードフィル)
Lv.5 Qix(マスクなどの画像処理)

アクションシューティング
Lv.1 スクロールSTG(スクロール)
Lv.2 横スクロールアクション(重力)
Lv.3 ベルトスクロール(奥行きつき当たり判定)
Lv.4 格闘(キー履歴)

RPG他
Lv.1 ノベル(メッセージ)
Lv.2 アドベンチャー(メニュー)
Lv.3 ドラクエ風RPG、シミュレーションRPG(2Dマップ)
Lv.4 アクションRPG(アクション)、クオータービューRPG(擬似3D)

ちなみにどれもネットワーク対応や3Dにするとレベルが上がる
2009/02/14(土) 21:54:59ID:O8g6aplU
数当てゲーム完成
次15パズル挑戦してみたいと思います
level5
ttp://www.geocities.jp/shobo_dankaiteki/
2009/02/14(土) 23:13:09ID:O8g6aplU
15パズル level2
ttp://www.geocities.jp/shobo_dankaiteki/
2009/02/15(日) 10:57:23ID:TTfM6L/J
>>720
頑張ってるなあと賞賛しつつ、DXライブラリの挙動を理解してないなあという感想。
テキストの表示がおかしいとか感じないのかな?

そこは譲っても、正解してしまったときの処理がやばい。
DxLib_Endで開放してから正解の表示、これがどこで処理されるのか不定。
さらにここでループ抜けないので事態は悪化。
終了時にDxLib_Endで再解放・多重開放してしまうは致命的。
少なくとも、DxLib_Endはプログラムの最後にひとつだけ書くようにしたほうがいい。


15パズルはソース無いんで何もいえないけど、何ひとつできてない。
終了してウインドウが消えてから、ちらっと@って表示されてるあたり、
また根本的なとこでやらかしてる予想。
2009/02/15(日) 11:23:10ID:TTfM6L/J
ちょっと試してみたけど、DxLib_End();の時点でアプリ終了するのな。
exit(0);とかabort();の感覚で使える。開放忘れの80倍はマシだけど、それはそれで怖い。
2009/02/15(日) 12:57:16ID:Wi9+QSGh
>>722
アドバイスありがとうございます。

・数当てゲーム(レベル5について)

>そこは譲っても、正解してしまったときの処理がやばい。
>DxLib_Endで開放してから正解の表示
今見直してみたら、おっしゃる通りでした。
正解の表示を行った後ループを抜けるよう修正してみました。

ただ、
>DXライブラリの挙動を理解してないなあという感想。
>テキストの表示がおかしいとか感じないのかな?
ここの部分がまだ理解できません・・。
もしまだこのスレ見てらっしゃったら
ヒントいただけないでしょうか?

geocitiesに上手くアップロードできないので
うpろだお借りしました
修正した数当てゲーム(レベル5)です
http://www3.uploda.org/uporg2018927.lzh.html
2009/02/15(日) 13:05:33ID:Wi9+QSGh
http://www.uploda.org/uporg2018937.lzh.html
15パズル(レベル2)ソース添付

今のところ画像表示命令を入れただけになってます
2009/02/15(日) 14:00:58ID:TTfM6L/J
みなぎってきたんで15パズル作ってみた。
1時間ほど昼飯と息抜きしてたんで、2時間でLevel4あたり。
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0388zip.html
ひとのこと言えるようなソースじゃないね。今んとこ行き当たりばったりラジバンダリ。


DXライブラリの挙動関連は、まあ次でつまずくからいいや。
軽く直してやろうと思ったけど、ほとんど作り直しになったんで断念したw
ここを修正すればいいって話にもっていけなかった。
本サイトのサンプルプログラム「6.サウンドノベル風文字列描画基本」を参考に。

基本的に、画面が書き換わるたびに毎回すべて書き直さないといけない。
弾幕シューで何万の弾が飛び交ってても。
現状、コンソールアプリのように書きっぱなしで次に行ったらダメ。
2009/02/15(日) 14:29:16ID:5+NnQ4mO
ttp://www.vipper.org/vip1110939.zip.html
数あて製作完了
プログラミングよりVBの基本操作でつまずいてるorz

次は15パズルに挑戦!
2009/02/15(日) 16:46:43ID:3hrBr0KU
とりあえずLv7完成。5時間弱。
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0389zip.html

やっぱ、5時までかかるか。
変なバグというか仕様上の勘違いでけっこう時間取られてしまった。
気分というか、やりたいように組んだのでソースは汚い。
DrawScene関数の中でマウス入力から移動判定まで、ぜんぶ処理してしまってる。
それも悪いけど、もっとひどいのがチップの配列。
2次元なら最初から2次元で作っておけばごちゃごちゃ計算しなくて済んだのに。
2009/02/16(月) 00:22:49ID:scWh6dm3
私の持っている参考書の15パズルで最初にシャッフルするときに
ランダムに2点選んでスワップしてんたんだけど、
この方法でシャッフルしても元に戻せることは数学的に
証明されてるんだろうか
一次元ではできない、三次元(の中の平面)ではできることが明らかだけど
2009/02/16(月) 22:53:58ID:eQix4yBB
偶数回スワップなら戻せることが証明されてる。
奇数回スワップなら不可能が証明されてる。
2009/02/16(月) 23:46:10ID:iZVk2yZd
>>730
ありがとん
奇数か偶数で分かれるのか
理由はわからないけど何か納得、裏の裏は表みたいな
2009/02/17(火) 00:54:42ID:0TvnpHf0
>>730
そーなんだ・・。
じゃあ最初のシャッフルは出鱈目じゃまずいんだね
俺は729さんじゃないけど勉強になりました。
ありがとう
2009/02/17(火) 13:42:59ID:/aLJ4H12
enumどこに書くかで迷う
どこかに一括して書くと楽だけど、そうするとカプセル化としては駄目なんじゃないかとか
ホントくだらないけど迷う
2009/02/17(火) 18:57:53ID:yXaEW/E5
alpha.cpp

enum HOGE
{
  hoge,
  hogeo,
  hogeko,
  hogerou,
  hogesuke,
};


beta.cpp

enum HOGE;
2009/03/10(火) 23:39:06ID:TE+yeSUg
2月下旬頃にC++入門書購入して読んでるところです
参戦いいですか?
まずは1-9の数当てゲーム作りまっす!しかしポインタが理解できん・・orz
2009/03/11(水) 00:42:20ID:jT1zwAC2
とりあえず数当てにポインタはいらんとおもうよ
2009/03/11(水) 18:33:22ID:jSDTnQKl
お前のパソコンだってメモリーくらい積んでるだろ?
そのメモリー上のアドレス(番地)を格納するのがポインター。
アドレスによってメモリー上に格納されている値などを参照できる。

実際にOSがゴニョゴニョやってるので、
本当にメモリーを差しているかは微妙だが、考えたら負けです。
2009/03/11(水) 20:00:12ID:vkDtC1BV
>>737
そこは微妙とかじゃなくて、指してないことにしとけばおk。(PC限定)
2009/03/12(木) 01:07:17ID:f0fJeXBE
ようやく完成。無駄に長いけど、大目に見てくださいw 改行が多いって怒られるので詰めてます
ポインタ使いませんでした。変数に値が入るっててのはわかるけど、アドレスがってのがイマイチわかりづらいなぁと。
*pointer で代入されてるアドレスに保存されている内容、 &pointer でポインタ変数そのもののアドレス、pointer 代入されてるアドレス、ってわかりづらい入門本のサンプルみても一見何してるか考えてしまう

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main(){
int answer, data;
srand( (unsigned int)time(NULL) ); // 初期化
answer = rand() % 9 + 1; // 当てる数字の決定
cout << "数当てゲーム!" << endl << "1から9であなたのモノをいれて・・" << endl;
while(1){
cout << "数字: " << flush;
cin >> data;
if( !cin ){
cout << "それ、数字じゃないわ。" << endl << "アタシ、数字しか興味ないの。" << endl;
cin.clear(); cin.ignore(100,'\n'); continue;
}
if( data == answer ){
cout << "アタリ―――(゚∀゚)―――!!" << endl; break;
}else if( data < answer ){
cout << "あなたの入れたモノ、小さいのね。もうちょっと大きかったら・・" << endl;
}else{
cout << "あなた入れたモノ大きすぎて受け入れられないわ" << endl;
}
}
}
2009/03/30(月) 22:02:27ID:uQRoXSES
ゲームを作れるようになりたい!
とりあえず「はじめてのC」って本を買ってこればいいですか
741740
垢版 |
2009/04/17(金) 11:32:48ID:yzLB2E4x
「はじめてのC++」って本をとりあえず買ってきました
プログラミングをするにはコンパイラ?ってのがまず必要なんですね

次はttp://www.kumei.jp/c_lang/
にいってきます
2009/04/19(日) 21:56:37ID:ogfSXXfS
頑張れー
俺はこことかみてる
http://vipprog.net/wiki/
743740
垢版 |
2009/04/20(月) 18:40:27ID:PoHKsmWU
>>742
おおっわかりやすそうなサイトありがとう

知らない言葉の洪水に呑まれてちんぷんかんぷんな有様です
それでもなんとなく掴んだ感覚で
自分にはこのスレはまだ早い、とようやく気づきました
そもそもプログラム組むのってC言語しかないと思っていた(C++は最新版?くらいの)
もうすこし基本的なことを勉強してからまたきます^^
2009/06/23(火) 00:59:49ID:dkvBYAOU
gamedevは新しくなってる
ttp://wiki.game-develop.com/
2009/06/23(火) 01:00:31ID:dkvBYAOU
ごばくった・・
2010/04/15(木) 00:40:31ID:BjWxJyJs
規制規制てすて
2010/04/15(木) 00:50:35ID:BjWxJyJs
お、規制あけた

段階的学習ってこの過疎スレでいいんだよね

規制長すぎてもうオセロまで終わっちゃった

C++とDXライブラリね
がんばるよー^^
2010/04/18(日) 11:13:29ID:0pCDb6wB
テトリス完成でいいやもうめんどくせえ

2010/04/18(日) 11:27:23ID:0pCDb6wB
おいおいちょうどいいテンプレがあるじゃないの

【教材】15パズル〜テトリス
【URL】http://gmdev.xrea.jp/st/up/106.zip
【開発環境】 VC++ 2005タダの奴 + DXライブラリ

過疎スレで俺の独壇場

大体ゲーム終了と同時にプログラムも終わってます バグもちょっとあります

マジ本気初心者なのでパソコンがぶっ壊れるかもしれません
自己責任が云々

パックマンあんまりやったこと無いんで
マリオまで飛びたいです飛びます今度こそまじめにやりますよぼかぁ
2010/04/22(木) 18:27:04ID:mdsjsp5c
姉ちゃん、明日って今さ!
2010/07/27(火) 13:50:39ID:pRAObFy6
【初心者】課題をクリアしていくスレ【講習会】
http://pc11.2ch.net/test/read.cgi/gamedev/1086858349/
【目標ない奴】おまいらに課題を与える。【集まれ】
http://pc11.2ch.net/test/read.cgi/gamedev/1026148930/

この二つのスレって違いがありますか?
少し成り立ちが違うようですが現在はどちらも
同じ課題を解くスレのようなので
少しでもレスが多いこちらを使わせてもらいます
ここが埋まったらあっちに行きますね

最新の課題はここでいいですか?
http://wiki.game-develop.com/

あとオススメの言語や他のサイトでもいいので
もっと課題があれば教えてください
過去ログをみてみるとDXライブラリを使っている方が多いようですね

土日スレのお題を作る合間にこちらで腕を磨こうと思っています
宜しくお願いします

ではさっそく最初のお題の数当てゲームを作ってきます
過去の先人に見習ってLevelが進むごとに書き込もうと思っていますので
少し連投気味になるかもしれませんがご容赦をお願い致します
2010/07/27(火) 14:11:01ID:pRAObFy6
Level1

#include <stdio.h>

int main()
{
    return 0;
}


Level2

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int rnd;

    rnd=rand() % 10 + 1;
    printf("%d\n", rnd);
    return 0;
}
2010/07/27(火) 14:19:49ID:pRAObFy6
Level3

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int rnd, input;

    rnd=rand() % 10 + 1;

    printf("なにか数を入力してください\n");
    scanf("%d", &input);

    printf("ランダムな数:%d\n", rnd);
    printf("入力した数:%d\n", input);

    return 0;
}

Level3まで終わりました
グラフィックがないのでまだ簡単です
今日中にLevel5まで終わらせたいです

開発環境はVC2010ExpressEdition
言語はCです

次の課題の15パズルはグラフィックを使ったゲームになるので
いよいよ本番って感じがしますね
2010/07/27(火) 14:24:54ID:pRAObFy6
Level4
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int rnd, input;

    rnd=rand() % 10 + 1;

    printf("なにか数を入力してください\n");
    scanf("%d", &input);

    printf("ランダムな数:%d\n", rnd);
    printf("入力した数:%d\n", input);
    
    if (rnd == input)
    {
        printf("Hit!\n");
    }
    else if (rnd > input)
    {
        printf("Big\n");
    }
    else
    {
        printf("Small\n");
    }

    return 0;
}
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況