17/02/03 22:16:01.63 1UyF/cRh.net
>>120
人の言うこと全く聞かないのは、すごく似てるよな~、特性なんだろうね。
134:ぬーぶ ◆upkqfrxkrw
17/02/03 22:16:14.77 dZfCQ2ov.net
>>128
分かりますが、何か?(´・ω・`)
理科とか社会とかの暗記科目は苦手(理科はまだマシ)だけど
英数国辺りはちゃんとできるよ。数学は超苦手だけど一応なんとか。
英語は授業全く出てないけどPerfectだよ、多分。多分ね(´・ω・`)
数学はどっちかって言うと連立方程式のほうが苦手。
一次関数も苦手っちゃ苦手だけど普通に解けるし、
強いて言えば一次関数のグラフが苦手かな。
xとyの位置から一次方程式の式を書けっていうアレが苦手。
135:デフォルトの名無しさん
17/02/03 22:17:09.92 3/9JwJ7/.net
中学生なの?
136:ぬーぶ ◆upkqfrxkrw
17/02/03 22:17:16.31 dZfCQ2ov.net
>>130
あ、なんか全然違う事調べてた。
何だったんだこの苦労は…_(:3 」∠)_
137:ぬーぶ ◆upkqfrxkrw
17/02/03 22:17:36.24 dZfCQ2ov.net
>>131
聞いてるよ、だから今基礎からやり直してるよ…(´・ω・`)
138:ぬーぶ ◆upkqfrxkrw
17/02/03 22:18:35.33 dZfCQ2ov.net
>>133
あ、うん。今中2だよ。
あと数ヶ月で受験の待ってる3年生という現実を信じたくない2017年(´;ω;`)
139:ぬーぶ ◆upkqfrxkrw
17/02/03 22:19:36.33 dZfCQ2ov.net
ご飯食べてくるのでレスまた後で。恵方巻食べます。
今年は北北西だそうな。違ってたらスンマセン。
140:デフォルトの名無しさん
17/02/03 22:21:17.40 3/9JwJ7/.net
>>136
まじかー
じゃあ高校生になったら数学と物理を死ぬ気で勉強しないとな
ツールなしでゲーム作りたいなら回り道する勇気も必要よ
141:デフォルトの名無しさん
17/02/03 22:21:34.30 1UyF/cRh.net
>>124
いや、調べてないって突っ込まれてるのよ。
プログラマからすると、"我輩はねこである" の "は"って何ですかね?って質問してるのと同じなの。そういう質問してるというこのレベル感は最低限解って。
142:デフォルトの名無しさん
17/02/03 22:22:44.83 ZJaGJG4k.net
えらく晩飯遅くないか?特別学校?
143:ぬーぶ ◆upkqfrxkrw
17/02/03 22:56:54.47 dZfCQ2ov.net
>>138
物理ってそんなに大事なんか…
母が物理好きだけど面白いのかな。
素直に基礎から回り道します(´・ω・`)
144:ぬーぶ ◆upkqfrxkrw
17/02/03 22:57:15.77 dZfCQ2ov.net
>>139
うーん…分かった。聞く前にまず調べる。
145:ぬーぶ ◆upkqfrxkrw
17/02/03 22:59:22.96 dZfCQ2ov.net
>>140
うちは晩御飯遅いんよ…今からお風呂入って
寝るのは1時くらいになるかな今日は。
母がヘルニアで具合悪くて。しかも指とかじゃなくて
首の神経圧迫してるから肩から指先にかけて痛いやつ。
それに自律神経失調症と来てるからもう…ね(´・ω・`)
僕が不登校になったのも元々自律神経系の異常。
成長期に起こりやすいものらしい。多分そういう体質が遺伝したんだなぁ…。
146:デフォルトの名無しさん
17/02/03 23:03
147::02.36 ID:jU395Rqo.net
148:ぬーぶ ◆upkqfrxkrw
17/02/03 23:16:35.73 dZfCQ2ov.net
>>144
勝手に失踪する気はないから大丈夫よー(´・ω・`)
ただ次第に質問とかでも本格的なプログラミングになると
ソースは出さない質問になっちゃうかもしれない。
やっぱりゲーム作りたいしプログラムを誰かに知られると
身バレの可能性とかもあるし…
結果的にスレ畳むときは中途半端に終わっちゃうと思う。
このスレは長くて来年の今頃まで続くと思う。
受験ギリギリになってPC封印さえなければ…(´・ω・`)
149:デフォルトの名無しさん
17/02/03 23:48:21.86 jU395Rqo.net
出しても問題ない様なサンプルコードを書ける程度には勉強してくれ
150:デフォルトの名無しさん
17/02/04 00:00:59.79 KjQ98FiG.net
>>143
そりゃあんたが甘えるんじゃなくて家族でお母さん支えないかんでしょ
151:デフォルトの名無しさん
17/02/04 00:09:29.44 KjQ98FiG.net
それに自律神経がやられるのは不規則な生活が原因だよ
152: ◆f5STnaEXUk
17/02/04 07:46:02.45 iNV0wm7r.net
おはよう。
俺も昨日恵方巻食べた
一人でコード書いてると途中で辛くなってくる
今日はガウシアンフィルタのサンプルから
>>145
新しく覚えることが増えるかもしれないけど
MaximaやMathematicaなんかの数学ツールが使えるようになっておくと
物理や数学なんかの調べ物をするときに自分で試せてはかどるよ
Mathematicaはとても高いけど学割がある
といっても中学生にはちょっと早いのだけど
もし3Dのプログラムをやるならすぐ試せる行列が出てくるからね
153:ぬーぶ ◆upkqfrxkrw
17/02/04 09:28:21.04 DxVF1dAI.net
>>146
Yes, I wanna be able to do it.
154:ぬーぶ ◆upkqfrxkrw
17/02/04 09:28:47.69 DxVF1dAI.net
>>147
支えると言っても…どうやって…(´・ω・`)
155:ぬーぶ ◆upkqfrxkrw
17/02/04 09:30:08.23 DxVF1dAI.net
>>148
不規則なのもあるけど
一番の原因はストレスだって言われたよ
他にもストレスが原因の病気持ってるから…
そもそもそのストレスが不規則が原因だったり()
今日はこうして早く起きてみたよー
156:ぬーぶ ◆upkqfrxkrw
17/02/04 09:32:17.81 DxVF1dAI.net
>>149
恵方巻美味しいけどエビフライの尻尾がノドにひっかかって痛い
ひえっ、Mathematicaってどうせ4、5万やろって思ったけど
40万円以上すんのか…殺す気かい。
それだけ価値があっても僕には使いこなせる気がしない(´・ω・`)
157:ぬーぶ ◆upkqfrxkrw
17/02/04 09:42:52.78 DxVF1dAI.net
恵方巻食べたから絶対受験受かるはずや…
あと宝くじも当たってゲームも作れて大学もちゃんと行けて……
もうこれって恵方巻食べるときに
「何でも思い通りになりますように」って願ったら
一番手っ取り早いよね
158: ◆f5STnaEXUk
17/02/04 10:13:10.82 iNV0wm7r.net
ちょっとした用途なら無料のMaximaで十分だよ
MaximaになれてたらMathematicaもすぐ使えると思う
対応する関数名とか記号を調べればいいだけだから
しかし恵方巻で尻尾がつまるとか、弱いな
一気に丸かじりでもしたんか
159:デフォルトの名無しさん
17/02/04 10:18:17.61 tcdpo06Y.net
恵方巻ってエビ入ってんのかよ
160: ◆f5STnaEXUk
17/02/04 14:03:11.75 iNV0wm7r.net
プログラムやってると甘いものがないと辛いな
セブンイレブンで大量に売られてた果実のど飴なめながらやっている
ガウシアンフィルタ終わった
次はbloomエフェクト
bloomエフェクトは元画像の光ってるところ抽出して
ガウシアンフィルタ(ぼかし)かけてもと
161:の画像と混ぜると得られる 考え方自体はそんなに難しくない
162:ぬーぶ ◆upkqfrxkrw
17/02/04 18:04:18.19 DxVF1dAI.net
>>155
Maximaやらの数学や物理のツールって
あんまりぱっとイメージが湧くものじゃないけど
どんなのなんだろう。
けど中学生の数学でも使えるのかどうか…
顎が弱くて噛めない()
163:ぬーぶ ◆upkqfrxkrw
17/02/04 18:04:46.99 DxVF1dAI.net
>>156
美味しいよ、恵方巻にエビフライ。
164:ぬーぶ ◆upkqfrxkrw
17/02/04 18:06:15.30 DxVF1dAI.net
>>157
甘い物かー、ティラミスが一番好き
けどこの年頃だと甘い物より旨い物が食べたい
へぇ…プログラミングって画像の抽出とかもできるんか…
自分には到底できそうにないな(´・ω・`)
165:デフォルトの名無しさん
17/02/04 18:52:00.27 iNV0wm7r.net
>>158
中学数学ではまだそこまで必要ないかもしれないが例えば
中学生では文字式が出てきたばかりだよね
その文字式のまま色々計算できるのが数式処理ソフト
(x+1)^2はx*x + x*1 + 1*x +1*1と展開して計算するのは学ぶと思うけど
(x+1)^8を展開しようとしたら大変。これはexpand((x+1)^8);で計算できる
二次式を解の公式で解くときとかもsolve(x^2+3*x+7);とやると
[x=-(sqrt(37)+3)/2,x=(sqrt(37)-3)/2]
と答えを出してくれる
個人的には行列を学ぶのに便利だと思う
166:デフォルトの名無しさん
17/02/04 19:03:51.60 +5NPixg9.net
たぶんそれ、pythonのモジュールでも可能
167: ◆f5STnaEXUk
17/02/04 19:12:50.90 iNV0wm7r.net
まぁそういうことが出来る言語もあるだろうさ。
でも数式処理ソフトウェアほど簡潔にはかけないと思う
pythonは個人的には嫌いだな
2系と3系が互換性がないせいで
どちらもインストールせねばやっていけないあたりが
168:デフォルトの名無しさん
17/02/04 19:29:52.73 ceaLvvG5.net
2系がまだ根強いってのはあるな
ただ世間の趨勢としてデータサイエンスの分野はほぼpythonに流れつつある
169:片山博文MZ ◆T6xkBnTXz7B0
17/02/04 19:55:59.09 sK4bvJ1n.net
DxLibで好きな一次関数のグラフとx軸、y軸を書け。
注意。DxLibでは画面左上が原点であり、y軸が下向きである。
y成分を反転し、原点が画面中央になるようにずらす必要がある。
170:片山博文MZ ◆T6xkBnTXz7B0
17/02/04 20:05:36.71 sK4bvJ1n.net
ヒント。画面左端x_0と右端x_1について、点(x_0, f(x_0))から点(x_1,f(x_1))を結ぶ線分を描く。
ただし、g(x,y)=(x + c_x, c_y - y)という座標変換が必要。(c_x, c_y)は画面中央。
171:片山博文MZ ◆T6xkBnTXz7B0
17/02/04 20:19:17.30 sK4bvJ1n.net
頑張れ、ねねっち!
172: ◆f5STnaEXUk
17/02/04 20:54:55.48 iNV0wm7r.net
>>164 python自体はそこまで嫌いじゃないよ。インデント強制が苦手なぐらい
俺のperl6は普及すらしていないので
python2のような依存関係の問題などは起きないというメリット?がある
>>167
ねねっちの勉強はdxlib限定なの?
とりまmaximaで。plot2d(29*x+831,[x,-10,10]);
今やってるOpenGLの方ではまだラインの引き方を習ってないので難しいな
明日調べてみようかな
そろそろ寝る
173:ぬーぶ ◆upkqfrxkrw
17/02/04 21:52:06.36 DxVF1dAI.net
>>161
ほーなるほど、世の中には便利なもんがあるんやねぇ…
174:ぬーぶ ◆upkqfrxkrw
17/02/04 21:54:02.11 DxVF1dAI.net
>>165-167
グラフを描画するのは難しいな…
g(x,y)=…っていうのはこの前のarray?
ちょっと基礎を勉強してるから
これ以上の出題はもうちょっと待って頂けると有難い(´・ω・`)
あと私はねねっちではないぞい…
175:ぬーぶ ◆upkqfrxkrw
17/02/04 21:56:33.5
176:4 ID:DxVF1dAI.net
177:ぬーぶ ◆upkqfrxkrw
17/02/04 21:57:00.70 DxVF1dAI.net
明日からちょいと用事があるので
レス返せるのは明後日になるかもしれません(´・ω・`)
178:デフォルトの名無しさん
17/02/05 00:50:18.18 34mVtrou.net
ねねっちなどいなかった
179: ◆f5STnaEXUk
17/02/05 07:18:36.28 U3r5qPlD.net
おはよう
>>171
プログラマになるよりハッカーになるほうがずっと難しいと思う
ゲーム作りか、昔初めて取り組んだときは挫折したな
プログラミングの極意は重複をさけることだと個人的に思うよ
コピペが1回増えるごとに修正箇所は2倍になる
これが3,4回分重なると8-16倍、この辺でメンテの限界がくる
だから関数をうまく使って必要なコードを1ヶ所にまとめること
同じコードを書いてるなと思ったら関数の使用を考える
これが出来れば大きなプログラムになっても開発できるようになる
180:ぬーぶ ◆upkqfrxkrw
17/02/05 08:12:35.50 pyEhJrBN.net
>>174
おはようです
ハッカーはドラマとか見て
「あーなんか凄い、何か分からんけど凄い」
っていう感じだったから、それがキッカケでプログラミングに触れた。
難しいのは分かってるけどね(´・ω・`)
最初のゲームは3Dじゃなくても2Dで良いと思ってるけど
やっぱり当たり判定とかも難しいのかな。
コピペで貼り付けてプログラミングするプログラマーを
「コーダー」って呼ぶみたいに聞いたけど、
実際プログラム作るときってプログラムの破片を寄せ集めて
プラモデルみたいに作るほうが良い気がするけど
そういうのはタブーなのかな。手っ取り早いし知らないコードも覚えられる。
前に簡単なゲーム作ったときにはプログラムの行数が数千行になったから、
それも多分効率の悪いプログラミングのせいなのかな…
今思えばもっと条件文と変数使ったらより効率が良かった。
181: ◆f5STnaEXUk
17/02/05 08:55:55.53 U3r5qPlD.net
俺は別にコピペは否定しないよ
別に破片を寄せ集めてプラモデル的に作っても良い
コピペの後に重複を取り除いたり構造を直したり(リファクタリング)
するならの話だけど
ただ同じコードを関数にもまとめずにペタペタ張りつけたりして作るのは悪だよ
数千行のコードを破綻させずに書いたことがあるのは驚いた
Cの関数の理解も怪しい段階でよくそこまで出来たと思うよ
どうやってそんなに書いたのよ
まずC++を使ってるならクラスとは言わないまでも
せめて関数は使い方をちゃんと覚えよう
182:片山博文MZ ◆T6xkBnTXz7B0
17/02/05 09:55:33.91 7poK6Wtv.net
>>165 解く気がなさそうなので模範解答。
#include "DxLib.h"
#define WIDTH 640
#define HEIGHT 480
struct Point { //座標を表す構造体
float x,y;
};
float f(float x) { return x / 2 - 50; }
void g(Point& pt) {
pt.x = pt.x + WIDTH/2;
pt.y = HEIGHT/2 - pt.y;
}
void Line(float x0, float y0, float x1, float y1) {
Point pt0 = {x0,y0}, pt1 = {x1,y1};
g(pt0); g(pt1);
DrawLineAA(pt0.x, pt0.y, pt1.x, pt1.y, 0xFFFFFF);
} (続く)
183:片山博文MZ ◆T6xkBnTXz7B0
17/02/05 10:09:34.31 7poK6Wtv.net
(続き)
void String(float x0, float y0, float x1, float y1) {
Point pt = {x, y};
g(pt);
DrawString(pt.x, pt.y, 0xFFFFFF);
}
INT WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT) {
SetGraphMode(WIDTH, HEIGHT, 32);
ChangeWindowMode(TRUE);
DxLib_Init();
while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen()) {
184:float x0 = -WIDTH/2, x1 = WIDTH/2; float y0 = -HEIGHT/2, y1 = HEIGHT/2; String(0,0,"O"); //原点 Line(x0,0,x1,0); String(x1-16,0,"x"); //X軸 Line(0,y0,0,y1); String(8,y1,"y"); //Y軸 Line(x0, f(x0), x1, f(x1)); DrawString(0,0, "y = x/2 - 50", 0xFFFFFF); } DxLib_End(); return 0; }
185:片山博文MZ ◆T6xkBnTXz7B0
17/02/05 10:44:38.02 7poK6Wtv.net
//構造体を使わない例も載せておこう。
#include "DxLib.h"
#define WIDTH 640
#define HEIGHT 480
float f(float x) { return x / 2 - 50; }
void g(float& x, float& y) {
x = x + WIDTH/2;
y = HEIGHT/2 - y;
}
void Line(float x0, float y0, float x1, float y1) {
g(x0,y0); g(x1,y1);
DrawLineAA(x0, y0, x1, y1, 0xFFFFFF);
} (続く)
186:片山博文MZ ◆T6xkBnTXz7B0
17/02/05 10:47:28.82 7poK6Wtv.net
(続き)
void String(float x, float y, const char *str) {
g(x, y);
DrawString(x, y, str, 0xFFFFFF);
}
INT WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT) {
SetGraphMode(WIDTH, HEIGHT, 32);
ChangeWindowMode(TRUE);
DxLib_Init();
while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen()) {
float x0 = -WIDTH/2, x1 = WIDTH/2;
float y0 = -HEIGHT/2, y1 = HEIGHT/2;
String(0,0,"O"); //原点
Line(x0,0,x1,0); String(x1-16,0,"x"); //X軸
Line(0,y0,0,y1); String(8,y1,"y"); //Y軸
Line(x0, f(x0), x1, f(x1));
DrawString(0,0, "y = x/2 - 50", 0xFFFFFF);
}
DxLib_End(); return 0;
}
187:片山博文MZ ◆T6xkBnTXz7B0
17/02/05 10:49:43.88 7poK6Wtv.net
>>178 String関数の定義を次のように訂正。
void String(float x, float y, const char *str) {
Point pt = {x, y};
g(pt);
DrawString(pt.x, pt.y, str, 0xFFFFFF);
}
188:デフォルトの名無しさん
17/02/05 11:00:42.26 NgmJ8ASd.net
片山氏もideoneかどこかに貼った方がいいんじゃないかな?
189:片山博文MZ ◆T6xkBnTXz7B0
17/02/05 11:01:59.43 7poK6Wtv.net
関数gの引数に&がついているのは「C++参照」を表している。
参照型の引数は、関数の中で引数の値を変更したいときに使う。
#include <iostream>
void func(int& x) {x = 3;}
int main() {
int n = 2;
std::cout << n << std::endl; //2
func(n);
std::cout << n << std::endl; //3
}
190:ぬーぶ ◆upkqfrxkrw
17/02/05 11:32:45.06 pyEhJrBN.net
>>176
木の破片を寄せ集めて机を作って、
仕上げにやすりをかける感じに書くのか。
数千行のやつはHSPで組んだ。
デバッグが大変だった
191:デフォルトの名無しさん
17/02/05 12:06:21.77 34mVtrou.net
コピペをつなぎ合わせて作るのは別にいいと思うけど
何をやってるコードなのか理解した上でコピペすべきだよ
192: ◆f5STnaEXUk
17/02/05 12:25:52.49 U3r5qPlD.net
確かにソースはideoneとかに張り付けてくれる方が便利だね
俺はcodepad使ってる。ideoneよりは少し軽い気がする
>>184
hspかー。関数というよりサブルーチンみたいなのを使って書くようだね
初心者向けって言われてるけど逆にそちらのほうが難しそうに感じるよ
193:ぬーぶ ◆upkqfrxkrw
17/02/05 13:26:51.53 pyEhJrBN.net
>>186
codepadやらideoneやら色々あるんだなぁ…
優秀な先輩プログラマーさんのおかげやね(´・ω・`)
スクリプト言語でゲーム作りに向いてるって言うから、
簡単そうだと思って触ってみたら結構面白かったの。
今は電卓作ったり単純な運ゲー作ったりして使ってるよ。
数学の問題の式解くのにも使えるし便利だなぁ…(小声)
194: ◆f5STnaEXUk
17/02/05 16:54:56.87 U3r5qPlD.net
hspちょっと調べてみたけど戻り値のある関数的なものを定義する
#defcfunc
これに慣れておくといい
ちょっと難しい話をするとプログラミング言語の関数と数学の関数は違うんだ
数学の関数はいつでも同じ入力には同じ出力を返す
だからプログラミングの関数もそれと同じように作っておくとバグりにくい
Cでいうと
void p()(入力も出力もない(副作用は除く))
void p(int)(出力がない(副作用は除く))
int p()(入力がない)
これらはCの関数ではあるが数学的な関数じゃない
int inc(int x){return x+1;}(入力(引数)も出力(戻り値)もある)
これは数学的な関数になる
int inc2(int x){printf("mona-");return x+1;}
ちなみにこれは数学的な関数じゃない(mona-と出力する副作用(余計な出力)がある)
int inc3(int &x){++x;return x;}
C++だけどこれも数学的な関数じゃない(呼び出す度に元のxが増えてしまう)
195:ぬーぶ ◆upkqfrxkrw
17/02/05 17:00:28.04 pyEhJrBN.net
>>188
ちょっと待って、もしかしてプログラミングと数学と
"関数"っていう言葉が一緒にあったからこんがらがってたのかな。
基礎を勉強していくうちでいずれ分かるかな…
数学的かそうでないかについてはまだよく分からんな…
196:デフォルトの名無しさん
17/02/05 17:05:01.75 NgmJ8ASd.net
まあ部品だな
pascalなんかだと値を返さない関数はprocedureと明確に分けてるけどcは初めは分かりにくいかな?
197:デフォルトの名無しさん
17/02/05 17:22:20.53 U3r5qPlD.net
そうだね、プログラミング言語にも数学にも関数があるけど違う意味だね
バグを出しにくいコードの書き方とかを気にしている本とかに出会えれば
いずれわかるようになるかな
俺は関数型言語ってのを学んだときにその辺覚えたよ
関数型言語は難しい点もあるから
もっとプログラミングに慣れてから触った方がいいかもしれない
198:デフォルトの名無しさん
17/02/05 20:11:56.58 NgmJ8ASd.net
関数(function)はソフトウェアを構成するための部品、
そういった部品をまとめ再利用しやすくしたものをライブラリと呼ぶ
(場合によってはAPIとかSDKなどとも呼ばれる)
ライブラリには関数の他必要な定数や構造体の定義なども含まれる
関数ではなくクラスの定義や実装を集めたものはクラスライブラリと呼ばれる
特にある目的で呼び出し順やクラスの拡張ポイントが規定されているものは
フレームワークと呼ばれることがある
クラスに結びついた関数をメソッドとも言う
199: ◆f5STnaEXUk
17/02/06 06:57:16.37 X4lA+IN8.net
独学スレというのもあったんだな
プログラマは1年に1個新しい言語を覚えるといいとよくきくけど
ここ最近新しい言語は覚えてないなぁ
実用重視ならkotlin
趣味重視ならPrologを覚えてみたい
本はジオメトリシェーダというところにさしかかった
あまりジオメトリシェーダについて解説がないので
webも併用して調べつつやってる
URLリンク(open.gl)というサイトが丁寧な解説してくれてた
200:デフォルトの名無しさん
17/02/06 11:10:44.65 ztrYnWwG.net
switchとかw
updateを持つsceneクラス作って
それを継承してタイトルやらステージ1やら作って
ゲームマネージャーで管理するんだよ
201: ◆f5STnaEXUk
17/02/06 19:22:22.48 X4lA+IN8.net
URLリンク(www.opengl.org)
gluLookAt公式docの誤りを見つけた
愚直にこれを実装したら結果の1行目の値が実際のgluLookAtの値とは違う値になる
実際と同じ挙動にするにははsn=s/norm(s)としてからMのs[1]s[2]s[3]にsn[1],sn[2],sn[3]を代入しなければならない
バグ報告しようとしたらContact Usのページがnot foundになっててできないので
僻地だがここにメモしておいたら誰か報告してくれるだろうと思って
maximaコード
誤
translate(x,y,z):=matrix([1,0,0,x],[0,1,0,y],[0,0,1,z],[0,0,0,1]);
cross( u, v ):= [u[2]*v[3] - u[3]*v[2], u[3]*v[1] - u[1]*v[3], u[1]*v[2] - u[2]*v[1] ];
norm(x):=sqrt(x.x);
glulookat(eye,center,up) := block([],c:center-eye,f:c/norm(c),upn:up/norm(up),s:cross(f,upn),u:cross(s/norm(s),f),m:matrix([s[1],s[2],s[3],0],[u[1],u[2],u[3],0],[-f[1],-f[2],-f[3],0],[0,0,0,1]),m.translate(-eye[1],-eye[2],-eye[3]));
正
glulookat(eye,center,up) := block([],c:center-eye,f:c/norm(c),upn:up/norm(up),s:cross(f,upn),sn:s/norm(s),u:cross(sn,f),m:matrix([sn[1],sn[2],sn[3],0],[u[1],u[2],u[3],0],[-f[1],-f[2],-f[3],0],[0,0,0,1]),m.translate(-eye[1],-eye[2],-eye[3]));
202:ぬーぶ ◆upkqfrxkrw
17/02/06 20:54:42.36 4u2g4jR0.net
ちょ、レス返しは後にさせてちょっと緊急…
Visual Studio 2015で文字打とうとしたら
文字打つときのカーソル(キャレット)が1文字分埋まって
バックスペース押すと埋まってる文字が消えるんだけど…
こんな
203:感じのキャレットになる http://www.fmworld.net/cs/azbyclub/qanavi/private/201412/1500000013/016.gif
204:デフォルトの名無しさん
17/02/06 21:03:48.31 /agxEATE.net
Insert
205:ぬーぶ ◆upkqfrxkrw
17/02/06 21:16:02.13 4u2g4jR0.net
>>197
ありがとおおおおおおおおおおおおおおおおおおおおおおおおおお!!!!!!(´;ω;`)
206:ぬーぶ ◆upkqfrxkrw
17/02/06 21:48:53.15 4u2g4jR0.net
今じゃんけんのプログラムをC++で組んでるけど、
乱数を使いつつCPUがパターンを少し読んで返すだけで
かなり複雑で難しいプログラムになるな…
207:ぬーぶ ◆upkqfrxkrw
17/02/06 22:06:15.09 4u2g4jR0.net
あーもう分からん…
どうすりゃええんや
208:デフォルトの名無しさん
17/02/06 22:12:11.79 vNKm6v6D.net
>>200
ここは君のTwitterではない
独り言を書き込むのは控えよう
わからないことがあるならコードと一緒に書き込みなさい
209:ぬーぶ ◆upkqfrxkrw
17/02/06 22:18:36.69 4u2g4jR0.net
>>201
すいません(´・ω・`)
210:ぬーぶ ◆upkqfrxkrw
17/02/06 22:39:50.39 4u2g4jR0.net
使えなかった「関数」というものが
どういう存在なのかイメージは何となーくできた。
このサイトでやってるんだけど
基礎範囲っていうとどこまでやれば大丈夫?
URLリンク(dotinstall.com)
全部やったほうがええんかな
211:デフォルトの名無しさん
17/02/06 22:47:22.34 0xTrdq5H.net
C++じゃなかったっけ?
とりまそのサイトだと全部という他ないかな
212:デフォルトの名無しさん
17/02/06 22:47:40.29 cv1theFf.net
>>203
え、ここにあるの、全部基礎だろ?
最低限ここにあるのは覚えようよ
213:ぬーぶ ◆upkqfrxkrw
17/02/06 22:51:46.17 4u2g4jR0.net
>>204-205
OK
214:デフォルトの名無しさん
17/02/06 23:06:40.79 ISSLNPkE.net
c++の++の部分ってそんなつけたし程度ではないから覚悟しよう
原著とか軽く鈍器になるから
215:デフォルトの名無しさん
17/02/06 23:13:44.84 Mhi9m5oE.net
ぱっと見、構造体がないな。ここ終わったら、自分が持ってる教科書で追加して学習しておこう。
216:デフォルトの名無しさん
17/02/06 23:24:25.84 ISSLNPkE.net
もうひとつのサイトにはあった
再帰やアルゴリズムについても言及してるのでそちらも見た方がいいだろう
217:デフォルトの名無しさん
17/02/06 23:35:48.99 vNKm6v6D.net
C++の基礎ならCの基礎に加えてこのくらいの知識は必要か
1.簡単なクラス設計
2.例外の使い方
3.名前空間によるモジュール分け
4.簡単なtemplate関数・クラスの実装
5.STLコンテナとアルゴリズムの使い方
6.CとC++の違いの認識
7.C++11以降で追加された機能とライブラリの概要
急ぐ必要はないから適当なペースで
218: ◆f5STnaEXUk
17/02/07 07:34:32.41 VLVkoykZ.net
>>203 その範囲ならほぼ全部だけど
cに参照渡しはないはずだがと思ってそこだけみてみたら
ポインタ渡しのことを参照渡しと呼んで混同してる。
参照渡しのところは読まなくていいよ
219:ぬーぶ ◆upkqfrxkrw
17/02/07 16:27:54.05 4rjiTxWA.net
>>210-211
全部に加えてその範囲まで…(´;д;`)ヒエッ
ポインタでみんな詰まるって聞いたけど、
これはそのポインタと同じ?
どっちかというとポインタより
C++のクラスで詰まりそう…
220:ぬーぶ ◆upkqfrxkrw
17/02/07 17:09:14.54 4rjiTxWA.net
ポインタって何に使うの
見てみたけど普通の変数と同じじゃないのか
221:デフォルトの名無しさん
17/02/07 17:34:37.17 tcS7ygJS.net
>>213
メモリの管理
好きな時にガバッと大量にオブジェクトを生成して、好きな時に破棄ができる
例えばグローバルな変数で数GBもある領域を確保してしまうとプログラムが重くなるけど、必要な時にピンポイントで取得・解放すればずーっと重いってことはない
まぁお前が作るプログラムなら直接は必要ないかもしれないけど、ライブラリやフレームワーク、SDKあたりで触る機会は訪れるから知っておくべき
222:ぬーぶ ◆upkqfrxkrw
17/02/07 17:43:37.40 4rjiTxWA.net
>>214
なるほど、そういう事か。便利やね。
大規模なゲーム作る時とかに使えそう。
223:ぬーぶ ◆upkqfrxkrw
17/02/07 18:00:10.52 4rjiTxWA.net
ideoneではエラーになってるけど動くはず
URLリンク(ideone.com)
じゃんけんプログラムのプロトタイプを作ってみた。
ここからn人のじゃんけんに変えたりしていきたいけど
その他にコードの短縮・高性能化が可能なら教えて下さい。
自分には今の所これが一番短くしたプログラム。
224: ◆f5STnaEXUk
17/02/07 19:15:41.48 VLVkoykZ.net
>>212
そうそうそのポインタ
最初は>>210の言う1-3ぐらいまで理解してればいいと思うよ俺は
練習として、じゃんけんのコードは関数にわけてるといいかも
プログラムが長くなってくると関数にわけないと辛いよ
main関数の中身はwhile(true){if(game()!=CONTINUE)break;}ぐらいにする感じで
n人のじゃんけんは少し難しいね
参加者全員の手を配列にいれてソートして重複を取り除いて長さが3か1ならあいこ
長さが2なら手を見て勝ち負けを判定するってアルゴリズムがすぐ思い浮かぶな
stlを使えば簡単だけど今ぬーぶが知ってるCの範囲では少し難しいかもしれない
225:ぬーぶ ◆upkqfrxkrw
17/02/07 20:44:08.74 4rjiTxWA.net
>>217
ポインタって考え方自体は
思ったより簡単だった。クラス許すまじ。
Cの基礎範囲を覚えるのも結構難儀だけど
C++の範囲を更に覚えるとなるともっと時間かかりそうだな…
最初にC++やって基礎もいっぺんにやっちゃえ~って考え方は
今思うと物凄く愚かだった(´・ω・`)
関数は苦手だけど頑張って使ってみる。
while(true)なんてのがあるのか…
基本的に仕事とかプロレベルの高度な事になると
main関数の中身にはあんまりゴチャゴチャ詰め込まずに
関数を呼び出して書く方法が一般的なのかな。
n人のじゃんけんって簡単だと思ってたけど
いざプログラム組み始めると「あれ?」ってなったな。
34スレのほうで「n人のじゃんけんくらい作れ」みたいに言われてたから
基礎範囲ならせめてこれくらいできないとヤバいと思ってたw
複数人での勝ち負け判定が一番難しそう、何て言うか、
先にじゃんけんのルール(グーチョキパーの関係)をプログラムして
それに倣ってif分岐したほうが良さそうかな。
STLってC++の範囲かな、また意味不明な単語が出てきた_(:3 」∠)_
引き続き基礎の勉強頑張ると共に
3週間後に迫る学年末テストの勉強もしないとマジやべぇ状態\(^o^)/
226:ぬーぶ ◆upkqfrxkrw
17/02/07 20:44:42.10 4rjiTxWA.net
また長文になった…ごめんなさい
227:デフォルトの名無しさん
17/02/07 20:49:34.90 tcS7ygJS.net
日記はあかんとは思うが、長文はいいんじゃねーの、適切な内容なら
STLはすでに使ってる。STDって使ってるだろ
スタンダードテンプレートライブラリの略で便利なものがライブラリ化されている
ただ勉強のために、自分でそれっぽいものを実装してみるのも有り
ポインタは使ってみると案外カオス
ポインタのポインタとかを配列に突っ込むようになると管理がめんどくさくなる
228:ぬーぶ ◆upkqfrxkrw
17/02/07 20:56:17.06 4rjiTxWA.net
>>220
徐々に2ちゃんの文化に慣れていきたい
STDなんて使ったっけ…無意識に使ったんだろうか
あんまり名前気にせずに使ってたから覚えてないや
ポインタのポインタを配列に突っ込む…
もう訳が分からん…
ポインタのポインタのポインタって事もあるんだろうか…
229:ぬーぶ ◆upkqfrxkrw
17/02/07 21:01:57.78 4rjiTxWA.net
ふー、関数の使い方については理解できたけど
これってreturn
230:で返す必要あるんかな… そしてこれをじゃんけんのプログラムに どうやって活かそうかというところでまた悩むという…
231:デフォルトの名無しさん
17/02/07 21:05:36.24 uyxPYTwn.net
int 判定(int 手, int 手)
{
判定処理
return 判定結果;
}
232:デフォルトの名無しさん
17/02/07 21:06:35.87 tcS7ygJS.net
>>222
関数は必ずしもreturnで値を返す必要はない
ただ、x + y という結果を返す関数でreturnしなかったら、どうやって結果返すんだ?
まぁ返す方法はあるけど、今の君の知識だとreturnするのがいちばん楽
233:KAC
17/02/07 21:10:44.42 1yHesC+2.net
>>217
なんか中途半端だな・・・
while(true){if(game()!=CONTINUE)break;}
↓
while(game()==CONTINUE);
> 参加者全員の手を配列にいれてソートして重複を取り除いて長さが(ry
そんなことしなくても、
1:グー 2:チョキ 4:パー とか割り当てて、
全部でORとれば結果くらい簡単にでるだろ・・・
基礎教える時には、あまり複雑な話題を出さない方が良いぞ。
234:ぬーぶ ◆upkqfrxkrw
17/02/07 21:19:45.91 4rjiTxWA.net
>>223
なるほど、やってみる。
235:ぬーぶ ◆upkqfrxkrw
17/02/07 21:22:26.85 4rjiTxWA.net
>>224
ちょっと失礼します
float getMax(float a, float b) {
___if (a > b) {
______return a + b;
}
こういう事もできるって事…なの?
今からご飯行くので帰ってきたらまた試します
236:ぬーぶ ◆upkqfrxkrw
17/02/07 21:23:45.85 4rjiTxWA.net
>>225
whileのtrueはどこ行っちゃったんだ…
orっていう命令なんかも出てくる(?)のか、
覚える事はいっぱいありそうねぇ…
237:デフォルトの名無しさん
17/02/07 21:32:09.88 tcS7ygJS.net
>>227
誤解させたかもしれないが、返り値にvoid以外を定義したなら、返す必要はある
>>225
ビット演算とか、まだ早いだろ…
238:KAC
17/02/07 21:43:53.26 1yHesC+2.net
>>229
いやいや、
ソートして重複除去するアルゴリズム組むよりは
ビット演算の方がいくら何でも先だろ・・・
つか、論理演算(ブール演算)は中学生レベルの話なんだし、
ビット演算くらいすぐ理解できるだろ。
239:デフォルトの名無しさん
17/02/07 22:07:48.58 99tLcJuW.net
整いました!
240: ◆f5STnaEXUk
17/02/07 22:12:38.76 VLVkoykZ.net
>>225 KAC賢いね。ぬーぶがやるならその方法だね
実質ビット列を集合として扱ってるわけだ
>基礎教える時には、あまり複雑な話題を出さない方が良いぞ。
これはそのとおりだと思うけど俺はあたまいい方ではないので
つい自分の知ってることを話してしまいがち
>>227
やりたいのはこれじゃないの
float getMax(float a,float b){
if(a>b)return a;
return b; //これがないとコンパイラ警告だすでしょ
}
241:ぬーぶ ◆upkqfrxkrw
17/02/07 22:17:08.37 4rjiTxWA.net
>>229-230
ソートやらビット演算やら色々訳わからんのが…
ビット演算について調べてみる。
n人のじゃんけんはもう少し先でお願いしますです…。
そういえば向こうで「乱数を使わないじゃんけん」とか言ってたけど
そんなのは可能なの?
どう考えても、相手のパターンを学習して
次の手を読んで出すにしても乱数は必要不可欠な気がするけど…
そもそも相手の先を読むなんてできるのかな。
242:ぬーぶ ◆upkqfrxkrw
17/02/07 22:19:19.79 4rjiTxWA.net
>>232
ビット列…ビット列…眠くなる(´゜ω゜`)
じゃんけんのプログラムにしても複雑やね…
関数を上手く使ってやってみる。
あ、return b忘れてた…
243: ◆f5STnaEXUk
17/02/07 22:29:17.63 VLVkoykZ.net
ビット処理はイメージわかないかもしれないから
あいこの処理だけした例を書いてみたよ
URLリンク(codepad.org)
参考にしてな
244:ぬーぶ ◆upkqfrxkrw
17/02/07 22:38:51.50 4rjiTxWA.net
>>235
ほぉ… おぉ…??? あぁ…… あぁぁぁぁぁぁぁ!!(´;ω;`)
っていう状態でございます_(:3 」∠)_
関数?配列?が使われてるのは何となく分かった。
これが分かるまで基礎を身に着けるのが先になりそう orz
わざわざ有難�
245:、ございますm(__)m
246:デフォルトの名無しさん
17/02/07 23:00:32.10 hhVGZ544.net
>>216
とりあえず参考までに
URLリンク(ideone.com)
関数を使うのは別に短くするためじゃないよ
247:ぬーぶ ◆upkqfrxkrw
17/02/07 23:16:01.07 4rjiTxWA.net
>>237
おー、有難うございます
でも今からお風呂なので
帰って来てからか、時間がなければ
明日に見させてもらいます。
248:デフォルトの名無しさん
17/02/07 23:24:09.89 m2qI51DF.net
CPU同士で戦わせるじゃんけんをC++で書いてみたが、意外とめんどくせぇ
URLリンク(ideone.com)
249:デフォルトの名無しさん
17/02/07 23:46:26.49 tcS7ygJS.net
>>233
> 乱数を使わないじゃんけん
条件がわからんから何ともだが、例えば現在のミリ秒数を3で割った余りとかでいいんでねーの
250:デフォルトの名無しさん
17/02/08 01:18:57.67 QyOX+LaY.net
>>239
俺も考えたのこれだな。でも全員同じ手の判断も必要と思ってた。確かにあいこのコールなければ要らないな。
λの[]ってなんだろうと思ったらこれ11から入ったのか、古い++で止まってるから勉強になったわ。
251:ぬーぶ ◆upkqfrxkrw
17/02/08 10:58:36.52 6hPVeK3z.net
何でmain関数を一番下に置いてるのに
識別子が見つからないエラーになるのか
調べても全く分からない…
誰か助けて…(´・ω・`)
URLリンク(ideone.com)
252:デフォルトの名無しさん
17/02/08 12:05:44.48 LbffaGyN.net
エラーに書いてある通り
253: ◆f5STnaEXUk
17/02/08 12:09:36.51 bfP4l9M8.net
2点誤りがある
関数は前方宣言というのをしないと、まだ定義してない関数を使うとエラーになる
contGameの定義中にgameMainを呼んでいるけどまだgameMainは定義されていないからエラーになる
これを防ぐには上の方にint gameMain(int pg);と書いとく必要がある
それから次はmain関数を普通の関数のように使ってるけど
main関数は特別な関数なので自分からmainを呼んだりはしちゃダメ
mainの引数は0個か2個と決まっていて
int main(int)というのはやっちゃダメ
int main(){while(自分で作った関数!=0){start();...
とする
いい方法は、小さいプログラムから始めて、コンパイルできることを確認しながら
大きくしていくことだよ
254:ぬーぶ ◆upkqfrxkrw
17/02/08 12:38:40.36 6hPVeK3z.net
>>244
あ、プロトタイプ宣言か…
でもmain関数の中に入れないと
プログラムが成り立たないんじゃ…
255:デフォルトの名無しさん
17/02/08 13:10:45.27 QTCpNTnM.net
while(main!=0)
は味わい深い。goto endは次点。
ヌーブはこれからgoto禁止な。goto使うには10年早い。
256:ぬーぶ ◆upkqfrxkrw
17/02/08 15:08:52.41 6hPVeK3z.net
>>246
while(main...)は使っちゃ駄目なのか…
何とか他ので頑張る
え、なんで…(´・ω・`)
257:デフォルトの名無しさん
17/02/08 16:10:55.04 Izgn68/X.net
プログラム書く前に言語仕様をちゃんと勉強したほうがいいんじゃないの?
258:デフォルトの名無しさん
17/02/08 16:15:09.73 QTCpNTnM.net
>>247
そのwhile(main != 0)の意味を説明してみて?
gotoに関しては頭の中から消しさる。上級者以外には害があるので。
259: ◆BrBq2CJg6HGd
17/02/08 16:35:42.35 DtNpsaIX.net
>>247
>え、なんで…(´・ω・`)
乱用するとスパゲッティプログラムになるかららしい。制御文が充実しているC/C++ではgoto文の使用は推奨されていない。
260:ぬーぶ ◆upkqfrxkrw
17/02/08 16:47:35.29 6hPVeK3z.net
>>249
ごめん書くとしたらint main(int play);だった
gotoってそんなに…何でなの…?
全部プロトタイプ宣言しても
値を返さなきゃ的なエラーが出るんだけど…
何なんだろう。
261:ぬーぶ ◆upkqfrxkrw
17/02/08 16:49:11.14 6hPVeK3z.net
>>250
なるほど。スパゲッティ好きなんだけどなぁ…(´・ω・`)
262:デフォルトの名無しさん
17/02/08 17:16:02.80 QTCpNTnM.net
>>251
while(main!=0)
263:の話をしてるんだが、その回答は意味不明。 本質的なポイントを誤解か理解していないっぽいからどう君の頭の中で間違えてるか知りたかったのだが、そしたら教えられるから。
264:デフォルトの名無しさん
17/02/08 17:16:46.84 QTCpNTnM.net
>>251
値を返せw
265: ◆BrBq2CJg6HGd
17/02/08 17:18:19.75 P7DKCnaF.net
すいませんテストさせて下さい。
ハローワールドプログラム
URLリンク(ideone.com)
266: ◆BrBq2CJg6HGd
17/02/08 17:20:57.80 P7DKCnaF.net
行けました。
ありがとうございました。
267:ぬーぶ ◆upkqfrxkrw
17/02/08 17:56:24.13 6hPVeK3z.net
>>253
いや、単純にwhile(play!=0)と書くべきところを
while(main!=0)にしちゃってただけだった、書き間違い。
268:ぬーぶ ◆upkqfrxkrw
17/02/08 17:56:49.83 6hPVeK3z.net
>>254
あっw
269:ぬーぶ ◆upkqfrxkrw
17/02/08 18:06:15.05 6hPVeK3z.net
できた!
C++「ゲームを始めますか(Y(1)/N(0))」
ぬーぶ「1」
C++「ゲームを始めますか」
ぬーぶ「えっ」
C++「ゲームを続けますか」
何この子…
270:ぬーぶ ◆upkqfrxkrw
17/02/08 18:08:10.06 6hPVeK3z.net
嘘つけどこも間違ってへんやんけ…
URLリンク(ideone.com)
271:デフォルトの名無しさん
17/02/08 18:11:12.56 JaAY6lW8.net
日記じゃないんだからもう少し考えや結果を整理して書け
272:ぬーぶ ◆upkqfrxkrw
17/02/08 18:13:59.92 6hPVeK3z.net
>>261
要するにプログラムに
何も間違いがないはず(多分)が
変な挙動をすると…(´・ω・`)
273: ◆f5STnaEXUk
17/02/08 18:31:35.26 bfP4l9M8.net
とりあえず1つだけ
return conti; //もう関数を出る
gameMain(conti); //決してこの行は実行されない
274:デフォルトの名無しさん
17/02/08 18:33:07.16 xvHEZOuD.net
プログラムは思った通りには動かない
書いた通りに動くのだ
275:デフォルトの名無しさん
17/02/08 18:57:25.24 1UDOZfzD.net
1. main関数の書き方が違う
(>>244が指摘済み)
2. 14行目のstart関数の戻り値はintだが、21行目のelseに入ると値を返さない
3. 18行目、30行目のreturnより後は実行されない
(>>263が指摘済み)
4. 6行目のグローバル変数のcontiと27行目の引数のcontiで名前が衝突してる
276:ぬーぶ ◆upkqfrxkrw
17/02/08 19:06:16.30 6hPVeK3z.net
>>263
あー…なるほど…そういう事か…
そもそも関数の認識をちょっと間違ってたのか
277:デフォルトの名無しさん
17/02/08 19:12:01.50 JaAY6lW8.net
どう認識を間違ってたのか書けばツッコミなり教えてくれる人なりくるかもしれないじゃないか
278:ぬーぶ ◆upkqfrxkrw
17/02/08 19:19:57.03 6hPVeK3z.net
>>267
えーと…上手く言えないんだけど
returnで表示的なやつかと。
279:デフォルトの名無しさん
17/02/08 19:21:14.02 1UDOZfzD.net
>>265の続き
5. 28行目contgame関数も2.と同様値を返さないパスがある
戻り値を使わない関数は戻り値の型をvoidにしておけばよい
6. 58行目のthinkPlaceの戻り値を使ってない
チョキ(2)を出せば必ず勝てる
7. 44行目のwhileから抜け出すための条件がない
280:デフォルトの名無しさん
17/02/09 08:43:31.80 2CMr8yJ9.net
>>268
説明できないのは分かっていない証拠だよ。
281:デフォルトの名無しさん
17/02/09 14:05:10.98 ObwD4jmp.net
計算待ちで暇なのでちょっと覗きに来た
いやすげぇな、初心者って思いもよらない書き方するよねって懐かしくなった
しかしながら、このレベルでDxLibとか勉強するつもりだったのか
豪気な男やでぇ
282:ぬーぶ ◆upkqfrxkrw
17/02/09 18:09:24.75 EPi+TH6x.net
>>265.269
ほー、なるほど。もっかいコード見直してみる。
ありがとう。
283:ぬーぶ ◆upkqfrxkrw
17/02/09 18:10:29.93 EPi+TH6x.net
>>271
せやろ?(自慢になってない)
284:片山博文MZ ◆T6xkBnTXz7B0
17/02/09 21:46:55.70 2NLO6FIm.net
int cx, cy;
GetGraph
285:Size(iGraph, &cx, &cy); で画像の幅cxと高さcyが得られる。 これを使えば当たり判定が正確にできる。 (x, y)が左上端の位置座標なら、(x + cx, y + cy)が右下端座標になる。
286:片山博文MZ ◆T6xkBnTXz7B0
17/02/09 22:11:45.49 2NLO6FIm.net
//壁ではねかえる
#include "DxLib.h"
INT WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT) {
SetGraphMode(640, 480, 32);
ChangeWindowMode(TRUE);
DxLib_Init();
int iImage = LoadGraph("ant.png");
int x, y, vx, vy, cx, cy;
GetGraphSize(iImage, &cx, &cy);
x = 640/2; y = 480/2; vx = vy = 10;
while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen()) {
DrawGraph(x, y, iImage, FALSE);
x += vx; y += vy;
287:片山博文MZ ◆T6xkBnTXz7B0
17/02/09 22:17:23.55 2NLO6FIm.net
(続き)
if (x < 0) { x = 0; vx = -vx; }
if (y < 0) { y = 0; vy = -vy; }
if (x + cx >= 640) { x = 640 - cx; vx = -vx; }
if (y + cy >= 480) { y = 480 - cy; vy = -vy; }
}
DxLib_End();
return 0; }
288:片山博文MZ ◆T6xkBnTXz7B0
17/02/09 22:26:27.44 2NLO6FIm.net
>>275
真ん中に置くなら
x = 640/2; y = 480/2;
よりも
x = (640 - cx)/2; y = (480 - cy)/2;
の方がいいかも知れない。
289:デフォルトの名無しさん
17/02/09 23:36:33.60 2NLO6FIm.net
あげ
290:デフォルトの名無しさん
17/02/10 10:26:25.29 H76iFZjX.net
ゲームなんて作る前に入門書でちょっとは勉強しろ!ってなんで誰も言わないんだ、
って思ってたら、散々言われているのに無視し続けているのか。
291:デフォルトの名無しさん
17/02/10 11:16:47.37 6mqHCUDq.net
うむ、正直1週間もやれば理解出来るようなレベルの知識が身についてない
292: ◆BrBq2CJg6HGd
17/02/10 16:17:18.54 it3LCMhX.net
C++の「最低限身に付けないといけない知識」ってどこまでですか?
クラスの継承ぐらいまでですか?
293:デフォルトの名無しさん
17/02/10 16:31:32.84 g52S2Lzf.net
>>281
>>36
本スレくらい全部読めよ
個人的には書籍のEffective C++をまるっと全部
294:281
17/02/10 16:50:01.89 it3LCMhX.net
>>282
すいません。
しかしベクタやコンテナが基礎知識ですか…。
295:デフォルトの名無しさん
17/02/10 16:52:13.01 1TaI7b3x.net
>>281
これお前だろw
>>282からの諦め早すぎwww
C++諦めたから他のオススメの言語教えて!
スレリンク(tech板)
1 : デフォルトの名無しさん : sage : 17/02/10(金) 16:33:39.25 ID:96f+QYOp
Pythonとか気になってる。
296:ぬーぶ ◆upkqfrxkrw
17/02/10 17:24:53.73 yuwXK07v.net
ただいま
>>274-277
まだ基礎やってるから待ってくれ…_(:3 」∠)_
もうちょっとしたら基礎終わると思う。
297:ぬーぶ ◆upkqfrxkrw
17/02/10 17:26:23.55 yuwXK07v.net
>>279-280
無視してるわけじゃないよ。
だから今基礎を勉強してるのに。
1週間で理解できても中々定着しないし
ゆっくり進めてますよー。
関数は未だ使いこなせないけど…
298:デフォルトの名無しさん
17/02/10 17:35:20.45 L7wbIOrN.net
基礎はゆっくりじっくりでOK
この前のジャンケンゲームみたいに文字ベースの簡単なゲームを作りながらだとなお良い
グラフィカルなゲームしばらく忘れておこう
299:デフォルトの名無しさん
17/02/10 17:38:24.00 g52S2Lzf.net
>>283
自前でArrayとかDictionary相当のクラスを実装する気か?
勉強にはいいが、めんどくせーぞ
ついでに、boostもやっとけ
300:281
17/02/10 17:39:27.07 it3LCMhX.net
>>284
残念ですが違います。
俺はJavaをやってるので。
継承のコンストラクタでつっかかってます。
301:ぬーぶ ◆upkqfrxkrw
17/02/10 18:08:23.71 yuwXK07v.net
>>287
そうします。関数って難しいなぁ…
302:ぬーぶ ◆upkqfrxkrw
17/02/10 18:10:15.70 yuwXK07v.net
>>289
>残念ですが違います。
>『残念ですが』違います。
_人人人人人人
303:_ > 残念ですが <  ̄Y^Y^Y^Y^Y^Y^Y ̄
304:283
17/02/10 18:26:17.13 it3LCMhX.net
>>288
ありがとうございます。
>>291
その言葉がそんなにおかしいの?
305:デフォルトの名無しさん
17/02/10 18:43:16.15 WG8QEZTH.net
>>290
で、結局のところ数学の関数は理解できたのか?
306:ぬーぶ ◆upkqfrxkrw
17/02/10 19:40:21.59 yuwXK07v.net
>>292
It's joke. You must become to be able to understand that.
However you don't have to do it.
307:ぬーぶ ◆upkqfrxkrw
17/02/10 19:41:40.37 yuwXK07v.net
>>293
数学の関数自体は元から理解できるよ。
ただ僕が「関数が分からない」と言ったときには
数学の関数とプログラミングの関数を同一のものと
思ってたからそれで混乱したんだと思う。
学校の勉強に関しては特に心配いらないよ。多分。
308:デフォルトの名無しさん
17/02/10 20:01:06.10 WG8QEZTH.net
>>295
なるほど
関数を理解できない事はよく分かった
309:デフォルトの名無しさん
17/02/10 20:27:53.12 o1Vy+XAw.net
プログラミング始めてどれくらいなんだ?
310:ぬーぶ ◆upkqfrxkrw
17/02/10 20:36:08.42 yuwXK07v.net
>>296
…(´・ω・`)
311:ぬーぶ ◆upkqfrxkrw
17/02/10 20:37:41.31 yuwXK07v.net
>>297
分かんないけど最初に始めてからやっと1年経ったくらいかな?
けど実質半年くらいHSP触っただけでC++に関しては殆どノータッチ。
312:デフォルトの名無しさん
17/02/10 20:47:43.01 pnc3yT29.net
HSPで数千行なんてよく頑張ったと思うけれども
今はそれが裏目に出てる
正直どこをどうしてDxLibにたどり着いたかはよく分からんが、
やると決めたからにはHSPの経験は忘れたつもりで取り組んでみて
313: ◆f5STnaEXUk
17/02/10 21:14:31.69 OSge0geU.net
とりあえず>>123の本の7章まで来た
Visual Studioでコンパイルできるのか知らんけど
最近のC++は関数型っぽくauto main() -> intとかかけるようになってるんだな
314:デフォルトの名無しさん
17/02/10 21:23:14.50 oqO5ksRE.net
>>301
戻り値型の後置はVS2010から使えるよ
URLリンク(msdn.microsoft.com)
URLリンク(cpprefjp.github.io)
315: ◆f5STnaEXUk
17/02/10 21:30:22.13 OSge0geU.net
>>302 ありがとう
もう使えるようになって結構たつってことか
316: ◆f5STnaEXUk
17/02/10 21:43:49.75 OSge0geU.net
ちょっと追加機能眺めてたけど生文字列R""って便利だな
マクロで先頭と右端に""を付け加えるのやってたんだけど
const char* fragment_shader =
"#version 400\n"
"\n"
"uniform struct LightInfo {\n"
...
次からはこれですむので手間がかからない
const char* vertex_shader =
R"#version 400
layout (location=0) in vec3 VertexPosition;
layout (location=1) in vec3 VertexNormal;
..."
317:ぬーぶ ◆upkqfrxkrw
17/02/10 21:44:23.82 yuwXK07v.net
>>300
数千行と言ってもテキストだけのゲームとか電卓とか
作った程度なんだけどね…。
普通に「C++ ゲーム」でググったら出た()
HSPの経験を忘れるかぁ…そうする。
318: ◆f5STnaEXUk
17/02/10 22:01:12.13 OSge0geU.net
304は勘違いだった。無効な改行があると怒られたorz
319:ぬーぶ ◆upkqfrxkrw
17/02/12 13:47:16.15 noL9hNRi.net
特にこれと言った進展はないけど
2日間書きこみしてなかったので
生存報告しときます(´・ω・`)
あのじゃんけんプログラム自体は
アドバイスしてくれてた人には申し訳ないですが
一旦放置しようと思います。
関数を使いつつ、別の方法でじゃんけんのプログラムを
もう一度組み直してみます。ごちゃごちゃになったので orz
グー、チョキ、パーの勝利条件を先にプログラムして、
その条件に当てはまったらという形式で
プログラムを組もうと思います。
その方が綺麗にまとまる気がするかもしれないと思う…(曖昧
320:デフォルトの名無しさん
17/02/12 13:51:03.63 C1x8eABn.net
>>307
goto禁止な
あと、Visual Studio使ってるならコンパイラの警告レベルをW4にした状態で警告が一切出ないようにすること
321:ぬーぶ ◆upkqfrxkrw
17/02/12 14:00:18.73 noL9hNRi.net
>>308
goto禁止は分かった。
でも警告レベルって何や…調べよ
322:ぬーぶ ◆upkqfrxkrw
17/02/12 14:12:29.96 noL9hNRi.net
/warnの事で合ってるのかな
323:デフォルトの名無しさん
17/02/12 14:18:01.40 C1x8eABn.net
URLリンク(msdn.microsoft.com)
324:デフォルトの名無しさん
17/02/12 15:03:47.28 /B6B3ktK.net
>>308
それはやり過ぎ。
使い方によってはMS独自関数を使わないと警告取れないだろ。
325:デフォルトの名無しさん
17/02/12 15:04:24.52 /B6B3ktK.net
>>306
文法をもう一度見直せ
326:デフォルトの名無しさん
17/02/12 15:04:58.66 /B6B3ktK.net
>>307
まずは関数を理解しろよ?
327:デフォルトの名無しさん
17/02/12 15:44:38.81 C1x8eABn.net
>>312
MS独自関数ってどれのこと?
C4996で警告される、_s付のセキュアな関数使えというやつなら、W3でも出るから違うよね?
それにこれもC由来でない、C++の標準関数使ってれば出ることないし
W4をすすめてるのは、たとえば>>265,269で指摘したうちの、3の制御が渡らないコード、4の変数名の重複はW4なら見つけられるから
コンパイラが検出可能な間違いは、コンパイラに見つけて貰うのが早いし簡単
328: ◆BrBq2CJg6HGd
17/02/12 19:23:15.64 GM4AuEc5.net
C++でなくJavaを勉強していますが、このスレに書き込んでもいいですか?
329:デフォルトの名無しさん
17/02/12 20:25:02.04 bJfLfji8.net
Javaのスレに行けよ
なんで割り込んでくるんだよ
330:デフォルトの名無しさん
17/02/12 20:33:41.46 SAJ6VZ+5.net
向こうで叩かれてると思って逃げて来たんだろ
むかつくと言いながらも中学生に同類として親近感抱いてるみたいだし
331:デフォルトの名無しさん
17/02/12 20:38:26.34 bJfLfji8.net
Javaのスレで叩かれているようには見えないが
332:デフォルトの名無しさん
17/02/12 20:42:42.95 SAJ6VZ+5.net
ああごめん、マ板の34歳のスレ
333:デフォルトの名無しさん
17/02/12 20:45:09.66 bJfLfji8.net
よそのスレの事情なんか知らねーよ
趣旨にあったスレに書け、それだけ
334:デフォルトの名無しさん
17/02/12 20:55:24.56 SAJ6VZ+5.net
まあここも再利用だけどね
335: ◆f5STnaEXUk
17/02/12 20:56:06.31 r8FM+8H0.net
くのいちみてた。おっぱいがおっぱいが
まず1が逃亡したここの趣旨なんてないようなもんだろ
だから隔離スレとして扱いしこしこ楽しむのが正しい使い方
javaでもいいさ俺もjavaわかるし
336: ◆f5STnaEXUk
17/02/12 21:04:40.09 r8FM+8H0.net
改行がそのまま保存されないから
BOOST_PP_STRINGIZEは304の目的には使えなかった
337: ◆f5STnaEXUk
17/02/12 21:14:27.35 r8FM+8H0.net
マ板の34歳のスレは少し読んだけど精神的にやられそうだったので閉じた
338: ◆f5STnaEXUk
17/02/12 21:19:29.21 r8FM+8H0.net
ぬーぶはまず関数を1個かいてそれをきちんと動くことを確認して次にすすめ
関数の呼び出しはfがgを読んでgがfを呼ぶような相互再帰的な関数は最初はさけるべし
fがgを呼んでgがhとiをよんでみたいな木構造の呼び出し関係ならそんなに複雑にはならん
相互再帰ってのはすごい強力でな、使いこなせればインタプリタとか作れるようになる
339: ◆f5STnaEXUk
17/02/12 21:26:18.14 r8FM+8H0.net
酔っ払って連投してしまった
ぬーぶのレベルだと相互再帰以前にまず再帰の理解が必要だな
関数を覚えたら次は再帰関数について覚えてみるのはどうよ
340: ◆BrBq2CJg6HGd
17/02/12 22:22:56.03 GM4AuEc5.net
すいませんでした。いろいろ事情がありまして。Javaの話題は書き込まないようにします。
>>323
ありがとうございます。
でも上に書いたようにJavaは避けます。
C/C++の話題は今まで通り書き込ませて頂きますね。
341:デフォルトの名無しさん
17/02/12 22:43:02.91 VQKvY6DK.net
>>328
いや、お前は邪魔だから
相手して欲しいなら別スレでやれ。
342:ぬーぶ ◆upkqfrxkrw
17/02/12 23:28:13.28 noL9hNRi.net
もう寝るから明日レス返します
あと別にプログラミング言語関係なく書いて良いでしょ
特に言語の制限あるわけじゃないし。
34の性格が腐っててもプログラミングする分には何ら関係ないし
普通に入ってきて良いと思うけど。
343:デフォルトの名無しさん
17/02/13 11:47:22.98 EfPr1N8x.net
>>328
ねねっちを襲名すれば堂々と居座れるぞ
344:デフォルトの名無しさん
17/02/13 11:54:37.52 zPyN1mRm.net
構って欲しいだけのクズにまじめに勉強している人の邪魔をする権利はない
345:デフォルトの名無しさん
17/02/13 13:48:27.31 lDkdvENV.net
NEWGAME!2期製作決定だぞ
346:ぬーぶ ◆upkqfrxkrw
17/02/13 15:18:53.90 tKQw00E8.net
ただいまぽん
>>314
関数をとりあえず単体で復習してみないとね。
分かったつもりになって使ってたみたい。
347:ぬーぶ ◆upkqfrxkrw
17/02/13 15:22:37.06 tKQw00E8.net
>>316
真面目にJavaやるなら入ってきても良いけど
どっかのスレみたいに助言とか手助け貰ってる癖に
無視して自分のやり方でやる、みたいなのはナシね。
何故それが必要なのか分からないなら聞いても良いけど、
(「変数名をローマ字にするな」とかの指摘とかね)
経験者から「それは今必要である」と言われたら
ちゃんと実行に移してね。それができないならバイバイ。
あと前の34スレで言ってた僕の性格についてだけど
多分二重人格って認識で良いよ。正確には情緒不安定だけど…。
348:ぬーぶ ◆upkqfrxkrw
17/02/13 15:24:30.80 tKQw00E8.net
>>317-318
そう固い事言わなくても…(´・ω・`)
問題起こさせなきゃ大丈夫でしょ。多分。
349:ぬーぶ ◆upkqfrxkrw
17/02/13 15:27:44.37 tKQw00E8.net
>>323
(。)(。) オッパイ
) , (
前から気になってたけど
ねねっちって何だろう。このスレの1はどうなったの…?
350:ぬーぶ ◆upkqfrxkrw
17/02/13 15:31:33.85 tKQw00E8.net
>>326-327
関数をまずちゃんと動かしてみる事にする。
相互再帰…また分からない単語が出てきた…
プログラミングって楽しいけど、勉強すればするほど
訳わからん言葉がいっぱい出てくるなぁ…
現役のプログラマーさんがこんな専門用語を
全部使いこなしてるって考えると気が遠くなるな。
お酒美味しいのかな。あと6年したら飲めるけど…
ワインとか飲んでみたい。ビールは苦そう。
関数の次は再帰か、覚えとく。ありがとう。
351:デフォルトの名無しさん
17/02/13 17:39:15.29 rOATsKzy.net
とりあえず1番簡単な再帰呼出の例としては
前に作ってた1~1
352:0(100だったかも)の合計をループ文を使わずに求めるとかかな
353: ◆f5STnaEXUk
17/02/13 18:25:08.50 TsuXnt3+.net
このスレが出来たのは割と最近だからまだ1(ねねっち?)はこのスレを見ているカモな
すぐに理解できなくていいけど多分最も簡単な相互再帰の例を書いた
URLリンク(codepad.org)
この例だと相互再帰にしなくてもかける(コメント参照)
わからなかったら再帰の勉強を始める頃にまた見ればいいよ
暇だったら途中にcoutをはさんで動作を確認してみるといい
再帰は奥が深いよ
酒は将来の楽しみにしとき。6年なんてすぐ経つ
354: ◆BrBq2CJg6HGd
17/02/13 19:08:45.85 sMoY2cDa.net
お言葉に甘えて書き込ませて頂きます。
>>335
そうだね。こっちも荒らすわけにはいかないからね。
…じゃんけんプログラムがうまく作れません。というか作れたんですが、例外発生に対する策がうまくいきません。困りました…。
355:デフォルトの名無しさん
17/02/13 19:14:38.13 K7JnJ/Am.net
>>341
だからお前は邪魔だから書くなって
356:デフォルトの名無しさん
17/02/13 19:15:44.23 K7JnJ/Am.net
>>340
どうでもいいけど、名前書け
357:デフォルトの名無しさん
17/02/13 19:16:07.46 LND7XxvU.net
>>341
はいはい一生困ってていいから。
ここはお前の日記帳じゃないので独り言は他所でやってくれ。
358:デフォルトの名無しさん
17/02/13 19:21:14.27 x2io0X1K.net
やはり荒れるなw
359:デフォルトの名無しさん
17/02/13 19:34:32.23 x2io0X1K.net
話変わるがunity+c#はやらんのけ?directX+c++よりはかなり効率良いと思う(cocosでもいいけど)
360:ふつけら ◆f5STnaEXUk
17/02/13 20:46:22.76 TsuXnt3+.net
一瞬で平和が崩れたな・・
名前適当につけた。他にいい名前があったら変えるかも
>>346
unityは触ったことないけどぬーぶには難しいのでは
cocosはコンパイル時間がもっと短かったらいいのにな
361:デフォルトの名無しさん
17/02/13 21:26:21.22 wIJ9qvpZ.net
directxはwin32の知識も要るからなあ
362:デフォルトの名無しさん
17/02/13 23:55:51.95 eKrvfhiE.net
家を建てるんや!と言いながら、
ノコギリとトンカチの存在が
「何か見たことある気がする」
程度の認識だった、
みたいな状態なので、
ツールやフレームワークを使うのはまだちょっと早い気がする。
でも最初の駄々こねからあっさり方針変更して、
基礎から勉強するって言ったのは好感が持てる。
少なくとも34歳よりはずっと考え方は柔軟だろうし、
すぐ基礎は理解して先に進めるんじゃないかな。
ちな俺はゲーム作成はSDLとC++で勉強した口なのだが、
流石に古いのか誰も勧めないなww
363:デフォルトの名無しさん
17/02/14 00:11:46.46 gdLEKjA6.net
>>346
>>126
本スレぐらい検索しろよ
>>347
iosの話ならcocos自体をフレームワークなり、ライブラリ化すればいいのでは?今は、ソース以外で配布されてるのだろうか?
364:ぬーぶ ◆upkqfrxkrw
17/02/14 00:53:50.78 bcA2peqR.net
>>339
組める!それなら組める!
明日やってみよう。今日は寝るけど…
365:ぬーぶ ◆upkqfrxkrw
17/02/14 00:55:26.56 bcA2peqR.net
>>340
案の定全く分からん_(:3 」∠)_
再帰の勉強が先になりそうやね…
お酒は赤ワインならちょろっと舐めた事があるけど
何て言うか、小学校の給食のコッペパンの味がした。
366:ぬーぶ ◆upkqfrxkrw
17/02/14 00:56:45.01 bcA2peqR.net
>>341
例外発生って何?
グーチョキパー以外のものを出されたらどうすれば良いか的なやつなら
グーチョキパーを数値にしてそれに当てはまらないやつをelseでエラーにすればええやん。
違ってたらすまそ
367:ぬーぶ ◆upkqfrxkrw
17/02/14 00:57:37.56 bcA2peqR.net
>>346
過去レス参照をお願いしますです。
ゲームエンジン系はあんまり使いたくない派です…
368:ぬーぶ ◆upkqfrxkrw
17/02/14 00:59:08.89 bcA2peqR.net
>>347
ふつけらって何だ…おけらの亜種か…
統合開発環境って色んな種類あるんやね。
Visual Studioiの他にもgccとか…。
369:デフォルトの名無しさん
17/02/14 01:00:52.88 LYU+uuAa.net
>>355
gccはIDEではないぞよ
370:ぬーぶ ◆upkqfrxkrw
17/02/14 01:02:01.98 bcA2peqR.net
>>349
家を建てるんや!え?んなもん粘土で作るわ!
の状態だったからなぁ…(´・ω・`)
ありがとう。でも基礎の関数でちょっと躓いてるなう…_(:3 」∠)_
でも頑張って理解して先進ま
371:ないとね。ゲームゲーム。
372:ぬーぶ ◆upkqfrxkrw
17/02/14 01:02:27.54 bcA2peqR.net
>>356
え、そうだったのか
じゃあgccって何なんだ…ただのコンパイラ?
373:ぬーぶ ◆upkqfrxkrw
17/02/14 01:03:54.33 bcA2peqR.net
さて今日は寝ます…
おやすみいいいいいいいいいいいいいいいいいいいいいいいいいい!!!!!!!!!_(:3 」∠)_
…興奮状態で全然寝れないや(´・ω・`)
374:デフォルトの名無しさん
17/02/14 01:25:45.63 s/PYCl8L.net
>>357
もう一度言っておくが、まずは数学の関数を理解しろ
375:ふつけら ◆f5STnaEXUk
17/02/14 05:08:59.42 VuYK65sq.net
>>350 何を言っているかよくわからなかったが
静的ライブラリをビルドしてコンパイルを高速化するテクニックとかあるようだ
>>355 普通のおけらという意味だよ。嘘だけど
スレリンク(tech板)l50
コテつけたのこのスレからだからコテで書き込んだことはないけどここは見てる
376:デフォルトの名無しさん
17/02/14 07:14:02.78 gdLEKjA6.net
>>357
お前の悪いところは、いつまでたっても難しい、わからないしか言わないところ
わからないだけじゃなく、具体的にどうわからないのか説明して見たら?
こういう風な動作を期待しているのに、こんな結果になってしまったと
できればコード付きで
そしたら、優しい誰かが答えてくれるだろうよ
377:ぬーぶ ◆upkqfrxkrw
17/02/14 15:47:12.26 bcA2peqR.net
>>360
もう一度言っておくが、数学の関数は理解している
というか何を根拠に数学の関数を理解してないと思ったの?
378:ぬーぶ ◆upkqfrxkrw
17/02/14 15:48:46.00 bcA2peqR.net
>>361
普通の螻蛄、なんかカッコいい
379:デフォルトの名無しさん
17/02/14 15:49:16.97 s/PYCl8L.net
>>363
数学の関数とCの関数は別物だと思ってるだろ?
380:ぬーぶ ◆upkqfrxkrw
17/02/14 15:51:05.71 bcA2peqR.net
>>362
具体的にどう分からないかっていうのが
上手く言い表せないっていうか…
何を失敗してるかが分からない状態。
プロトタイプ宣言もしてるのにエラーになる、とか。
取り敢えず前のじゃんけんプログラムは没だから
また新しいコードで躓いたら上げて質問させてもらいます。
381:ぬーぶ ◆upkqfrxkrw
17/02/14 15:51:51.37 bcA2peqR.net
>>365
前に別物って言われたから完全に別物だと思ってるけど…
もうどっちなんだよハッキリしてくれよぉ…(´;ω;`)
382:デフォルトの名無しさん
17/02/14 15:55:33.15 s/PYCl8L.net
>>367
だから、関数を理解しろと何度も・・・
383:ぬーぶ ◆upkqfrxkrw
17/02/14 16:05:32.91 bcA2peqR.net
>>368
…何か話が噛みあわないみたいだからもういいや。
384:デフォルトの名無しさん
17/02/14 16:55:43.10 GstB0RWe.net
すまん、基本だと思うが教えてくれ。
URLリンク(fefnir.com)
HiMacroEx のソフトをつかってマクロを
タイマーで実行させたいが、どうもスクリーンセーバーが
かかると、マクロが実行ができないようだ。3日かけてやっと気づいた。
スクリーンセーバーは絶対にかけたい。
スクリーンセーバー中でも実行する方法がありますか?
385:デフォルトの名無しさん
17/02/14 17:00:09.40 Xqe6dJB0.net
プログラムの書き方を見てもそうだが、
意味論を理解するタイプじゃなくて、公式を暗記すればいいと思っているタイプだろう、こいつは。
その手の輩に関数というものの本質的な定義や意味論を語っても無駄。
386:デフォルトの名無しさん
17/02/14 19:28:15.69 u0s5do/i.net
>>369
色々言われることもあると思うけど情報は自分で取捨選択すれば良いよ
大事なのは穏便に済ませること
こちらに伝わるように質問を考えるのも頭の整理になるし、どんどんコードを出していって見て
387:デフォルトの名無しさん
17/02/14 19:30:11.71 WXtvn4e6.net
>>371
無駄だろうなあ。。。
とはいえ、そんな馬鹿の意識を変えないことには
プログラマーになんてできない訳で
388:デフォルトの名無しさん
17/02/14 19:31:47.49 WXtvn4e6.net
>>369
とりあえず、お前さんには適性が全く無いことが判った
早く
389:諦めた方が身のためだぞ?
390:デフォルトの名無しさん
17/02/14 19:53:57.19 s/PYCl8L.net
>>369
そういうことなら、俺から教えることは何もないな。
391:ぬーぶ ◆upkqfrxkrw
17/02/14 20:46:52.88 bcA2peqR.net
>>372
ありがとうございます。
質問は今の所特に大丈夫なので
また困ったら調べた上で質問させてもらいます。
392:ぬーぶ ◆upkqfrxkrw
17/02/14 20:53:59.13 bcA2peqR.net
>>374-375
何か勘違いされてるみたいだけど、
数学の関数を理解できない=プログラミングの関数も理解できない
っていう考え方が僕には理解できない。
数学の関数は理解できるけど、プログラミングの関数は
まだ完全には理解できないと言ってるのに
「お前は数学の関数を理解できてない!」なんてずっと言われても。
そんなに数学とプログラミングの関数が一緒って言うなら
どう一緒なのかを教えてよ。
僕は前に数学とプログラミングの関数は別物って言われて
別物としか認識できてないから分からない。
393:デフォルトの名無しさん
17/02/14 20:56:50.38 Xqe6dJB0.net
関数がわからないと、この言語における関数の書き方がわからない、はわけようぜ。
394:ぬーぶ ◆upkqfrxkrw
17/02/14 20:57:23.84 bcA2peqR.net
>>371
出来る限り理解するようにはしてるけど
最初は公式の暗記だね。形だけ。
プログラミング初心者でおまじないを完全に理解できる人なんていないでしょ。
使っていく中で理解するんじゃないの?
395:ぬーぶ ◆upkqfrxkrw
17/02/14 21:00:58.00 bcA2peqR.net
>>378
んー何て言うか基本的な関数の使い方自体は理解できるんだけど、
この前のじゃんけんのプログラムみたいに関数同士を複雑に絡み合わせると
少し難しい、というのが言いたかった。
この前のじゃんけんプログラムは>>242です。
396:デフォルトの名無しさん
17/02/14 21:04:43.08 u0s5do/i.net
もう一度だけ言うけど穏便に済ますことが大事
掲示板で勉強がしたいんなら言いたいことを飲み込むのも技術の内
397:デフォルトの名無しさん
17/02/14 21:09:55.03 bAPYpdLS.net
自分はとりあえずおまじないにしておいたとしても知らないままだと気持ち悪い派だなあ
398:ぬーぶ ◆upkqfrxkrw
17/02/14 21:10:36.31 bcA2peqR.net
>>381
そうなんだけど…苦手やね…(´・ω・`)
頑張ります。
399:ぬーぶ ◆upkqfrxkrw
17/02/14 21:12:35.69 bcA2peqR.net
>>382
C++だとヘッダーファイルだっけ、あれを持ってくるだけだけど
JavaとかなるとOS関係までおまじないあるからなぁ…。
ある程度勉強しないと理解できないもどかしさ。
400:デフォルトの名無しさん
17/02/14 21:18:57.71 Xqe6dJB0.net
程度問題だよ。
電子レンジを、他の人の見よう見まねで適当に操作して似た使い方をされたらたまらない。
生卵入れたり、アルミホイル入れたり、レンジしたいのにオーブンにしたりね。
でも、電子レンジの構造から仕組みまで何から何まで完全に理解して使う必要もない。
何事にも適切な理解の程度というものがあるんだよ。
401:デフォルトの名無しさん
17/02/14 21:24:14.57 LYU+uuAa.net
いい例えだな
402:デフォルトの名無しさん
17/02/14 22:02:19.34 gdLEKjA6.net
>>366
最低限、エラーの内容とコードさえ貼れば誰かエロい人が教えてくれると思うぞ
その前にエラー内容をググって、こう言う内容っぽいエラーですがよくわかりません位言うと、印象が多少よくなる
403:デフォルトの名無しさん
17/02/15 07:04:17.25 d4K0Q+Zj.net
>>384
javaにそんなんあったっけ?
404:デフォルトの名無しさん
17/02/15 09:03:23.62 q0sxrs09.net
>>370
> すまん、基本だと思うが教えてくれ。
>
> URLリンク(fefnir.com)
>
> HiMacroEx のソフトをつかってマクロを
> タイマーで実行させたいが、どうもスクリーンセーバーが
> かかると、マクロが実行ができないようだ。3日かけてやっと気づいた。
> スクリーンセーバーは絶対にかけたい。
>
> スクリーンセーバー中でも実行する方法がありますか?
よろしくお願いします。
板違いでしたら、お勧めの板に誘導してください。
405:デフォルトの名無しさん
17/02/15 10:07:22.45 s9IhNvgc.net
>>385
たとえ話を誰かが始めると話の流れや解釈が意味不明になることが多いけど
これはなんかすっきりしてるな
わかりやすい
406:デフォルトの名無しさん
17/02/15 12:29:32.49 q0sxrs09.net
>>370 ですが
他の板に移動します。
407:ぬーぶ ◆upkqfrxkrw
17/02/15 15:20:05.71 0l8dFlwE.net
>>385
なるほど、分かり易い
適度に知っておけば良いんやね
408:ぬーぶ ◆upkqfrxkrw
17/02/15 15:20:41.09 0l8dFlwE.net
>>387
分かった。基本自分で調べて
どう
409:しても分からなかったらそうする。
410:ぬーぶ ◆upkqfrxkrw
17/02/15 15:20:57.70 0l8dFlwE.net
>>388
なかったっけ?
411:デフォルトの名無しさん
17/02/15 19:11:35.56 JfktYUhD.net
教えてもらう態度がなってないのな
412:デフォルトの名無しさん
17/02/15 22:25:52.65 GHtkX/yp.net
スレタイにねねっち付いてるだけで糞スレが伸びてるとかびびる
413:デフォルトの名無しさん
17/02/15 23:01:55.01 7JyTf22P.net
進歩が全然ないじゃん! なんで!?
414:デフォルトの名無しさん
17/02/16 10:35:54.44 32zx6irr.net
中学生なのに高齢者並に遅い
415:デフォルトの名無しさん
17/02/16 10:38:48.00 Ram8AUll.net
まあ中身は34歳だしなぁ
416:ぬーぶ ◆upkqfrxkrw
17/02/16 15:35:16.92 inR55E2d.net
>>397-398
今は特に進展ないね…ごめん(´・ω・`)
417:ぬーぶ ◆upkqfrxkrw
17/02/16 20:45:03.84 inR55E2d.net
グーチョキパーの強さを予めプログラムしておきたいんだけど
本当言うとどうやってプログラムするかずっと悩んでて進展がない…(´;ω;`)
418:デフォルトの名無しさん
17/02/16 20:53:58.80 Ram8AUll.net
SDLフローチャートでも書いてみなよ。
419:デフォルトの名無しさん
17/02/16 21:25:11.26 OkMHwQea.net
>>401
あらかじめプログラムするために関数があるじゃん
実装は後で良いから何をもらって(引数)、何を返すか(返り値)をまず決めれば良い
420:デフォルトの名無しさん
17/02/16 21:38:32.61 MUwuyanU.net
初心者のうちは他人の書いたコードを出来るだけ沢山読むのがいい
読んで理解して、慣れてきたら改造してみるのが力がつく
421:デフォルトの名無しさん
17/02/16 23:24:55.53 UZCJcrCy.net
>>401
グーチョキパーの強さとは?予めプログラムとは?
もっとプログラマに分かるように説明頑張ろうよ。
422:デフォルトの名無しさん
17/02/17 00:49:19.51 dXXL8kgy.net
3種類の手しかない普通のジャンケン作るのに強さの定義とか不要だしセンスがない
n種類の手があるジャンケン作りたいならn×nの上三角行列作ればいいだけ
423:デフォルトの名無しさん
17/02/17 01:17:00.31 7PQNWD7y.net
パーは最弱って事だろ。
424:デフォルトの名無しさん
17/02/17 09:48:14.80 iuwmUw8O.net
最近のカードゲームよろしくフィールド効果とか補助カードとか
いろんな要素があって、古式ゆかしい三すくみではないんだろう。
425:ぬーぶ ◆upkqfrxkrw
17/02/17 15:10:21.12 zIil3epi.net
>>403
そうしたいんだけどなかなか…
上手くいかないんだねこれが…
426:ぬーぶ ◆upkqfrxkrw
17/02/17 15:11:52.29 zIil3epi.net
>>405
えーと、
グーはチョキに勝ってパーに負ける、
チョキはパーに勝ってグーに負ける、
パーはグーに勝ってチョキに負ける、
っていう強さ関係を予めプログラムしておきたい。
427:デフォルトの名無しさん
17/02/17 16:00:40.31 ZF00EycL.net
関数すら理解できない奴の思考はその程度って訳か
428:デフォルトの名無しさん
17/02/17 16:58:40.00 /AnTLUch.net
>>410
ぬーぶが書いたやつだって、その勝敗判定を「予めプログラムしてる」だろ?
自分が書いたコードとやりたい事の何が違うのか説明してみて。
関連して、>>406の内容や、優しいお兄さんが作った2つのじゃんけんプログラムは読んだ?
429:片山博文MZ ◆T6xkBnTXz7B0
17/02/17 17:16:03.67 MbV+Py5H.net
// 二人ジャンケンの勝負判定。
// 0:引き分け、1:勝ち、-1:負け
int hantei(int anata, int computer)
{
...
}
430:片山博文MZ ◆T6xkBnTXz7B0
17/02/17 17:19:35.15 MbV+Py5H.net
// n人ジャンケンの勝負判定。
int hantei(int anata, int n, int *players)
{
...
}
431:片山博文MZ ◆T6xkBnTXz7B0
17/02/17 17:29:38.33 MbV+Py5H.net
【n人ジャンケンのルール】
n人がグー、チョキ、パーの3グループに分かれたら、引き分け。
n人がグー、チョキ、パーのいずれかの1グループのみになったら、引き分け。
n人がグー、チョキ、パーのうちの2グループのみに分かれたら、その2種類の手について、二人ジャンケンのように勝負を決める。
432:デフォルトの名無しさん
17/02/17 17:32:03.95 lf/5rABj.net
>>417-418
そういう事じゃ
433:無いなら
434:デフォルトの名無しさん
17/02/17 17:33:45.29 lf/5rABj.net
ないから
435:デフォルトの名無しさん
17/02/17 17:38:42.95 1EaRXg77.net
>>401
こういう「察してよ~答え教えてよ~」みたいなレスが一番ムカつく。
しかもこういうクズは注意されると「聞いてるわけじゃないしw」みたいな
言い訳をするだけ。
自力で考えるつもりがないならプログラミングなんて辞めちまえよ。
436:デフォルトの名無しさん
17/02/17 17:41:13.48 E3U4XBZQ.net
お前ら中学生相手に容赦ないな
437:片山博文MZ ◆T6xkBnTXz7B0
17/02/17 18:01:30.53 MbV+Py5H.net
数学で言うところの行列は、コンピュータでは二次元配列で表せる。ただし、配列の要素はゼロベースの添字でアクセスしないといけない。
enum TE { GOO = 0, CHOKI = 1, PAH = 2 };
enum HANTEI { KACHI = 1, MAKE = -1, HIKIWAKE = 0 };
HANTEI hantei(TE anata, TE computer)
{
static const HANTEI niji_hairetsu[3][3] =
{{HIKIWAKE, KACHI, MAKE}, {MAKE, HIKIWAKE, KACHI}, {KACHI, MAKE, HIKIWAKE}};
return niji_hairetsu[anata][computer];
}
438:デフォルトの名無しさん
17/02/17 19:40:03.87 eYTxk1dO.net
win,loose,drawとかがいいな…
439:デフォルトの名無しさん
17/02/17 20:45:37.43 lf/5rABj.net
>>424
求められてるのはそういう事じゃ無いだろ
440:片山博文MZ ◆T6xkBnTXz7B0
17/02/17 21:05:05.81 MbV+Py5H.net
グー、チョキ、パーで一番強いものというものはない。順序関係になっていないから、
君のいう強さというのは1つの数では表せない。数学的には2つの手に関して、勝ち・負け・引き分けを決める二値
関係があるかどうかが問題だ。これをシンプルに表すなら二次配列を使うのがベストだろう。
441:片山博文MZ ◆T6xkBnTXz7B0
17/02/17 21:12:56.49 MbV+Py5H.net
アンカー間違えてるぞ、ゴルァ!
442:デフォルトの名無しさん
17/02/17 22:29:19.41 /AnTLUch.net
>>413
>>414
interface切り方センスなくない?
443:KAC
17/02/17 22:34:08.12 5IS1oOxO.net
>>423
そういう訳でもない。
じゃんけんは三つしかない世界で強さの輪を作っているんだから、
グー=G パー=P チョキ=C の三つで、G<P,P<C,C<Gの関係を表せばいいだけ。
弱い順に並べると、GPCGPCGPCGPCGPCGPCGPC・・・と繰り返す。
この並びからわかるとおり、
Gを出して相手が一つ右のPで「負け」 二つ右のCで「勝ち」 同じGで「あいこ」
Cを出して相手が一つ右のGで「負け」 二つ右のPで「勝ち」 同じCで「あいこ」
Pを出して相手が一つ右のCで「負け」 二つ右のGで「勝ち」 同じPで「あいこ」
となる。
繰り返しの表現なら、差を比べるだけで勝ち負けの判定は可能だって事。
0123456789 と増えていく数を
0120120120 と表現する方法は簡単で、3の剰余を求めれば良い。
なので、勝ち負けの判定は、
正の数だけ使うためにベースを足して差を求め、3の剰余を求めるだけ。
( 3 + computer - anata ) % 3 ;
求めた結果が0ならあいこ、1なら負け、2なら勝ちとなる。
> 君のいう強さというのは1つの数では表せない。
というのは、工夫次第でどうにでもなるってことだ。
444:デフォルトの名無しさん
17/02/17 22:48:25.90 C9lFCZn0.net
>>410
「グーチョキパーが最初から自分の強さを知っている」設計はアリだとは思うけど
正直冗長だしCっぽく書いてもこんなモンなので
関数もおぼつかない状態でやる事じゃ無いと思う
URLリンク(ideone.com)
445:デフォルトの名無しさん
17/02/17 22:56:03.34 /AnTLUch.net
>>426
答え書いちゃったのね^^。
俺は高校の時これ見てめちゃ感動した。後に群論知って奥深さ感じたな~。
これはもはやidiomだよね。
上でサンプルあげた人のコードも勿論これ。
ぬーぶには悩んで考えてコード読んで感動して欲しかった。まー、まだ無理か。
446:デフォルトの名無しさん
17/02/17 23:37:18.63 hOxi7mQ6.net
俺ももちろん解ってたよ
447:デフォルトの名無しさん
17/02/18 02:56:52.89 gmcYBKXm.net
後からなら何とでも言える罠
448:ふつけら ◆f5STnaEXUk
17/02/18 08:16:29.55 PSTKE0Se.net
stl、二次元配列、剰余、ビット演算
話題がじゃんけんプログラムしかないから解明が進んでるな
数学的には任意の2元の序列はつくのに
じゃんけんは前順序でも半順序でも全順序でもない関係なんだな
449:デフォルトの名無しさん
17/02/18 10:26:25.96 tLEefMeo.net
>>427
これ見て思ったけど、じゃんけんは3人以上でルール変わるのな。
450:デフォルトの名無しさん
17/02/18 12:24:09.43 OWfya4VJ.net
グーチョキパーをそれぞれ出した人がいればあいこになる奴か。
3人ならゲームバランスはまだ取れているけど、それ以上になるとあいこが激増して一気に糞ゲー化するよね
451:ふつけら ◆f5STnaEXUk
17/02/18 12:46:50.14 PSTKE0Se.net
p_aiko(n):=1-(2^n-2)/(3^(n-1));
for i:2 thru 10 do print(1 - p_aiko(i)); done;
等確率のじゃんけんでも8人までは勝敗が決まる確立が1割は越えてる
このぐらいの人数までなら現実でもそこそこ盛り上がる気はする
452:デフォルトの名無しさん
17/02/18 12:59:06.04 ZR9eAolI.net
>>239
5人で連続あいこ14回か
453:ぬーぶ ◆upkqfrxkrw
17/02/18 19:04:10.96 zLb7XvBC.net
>>411
こういう事言う意味不明な人がいるから
段々やる気なくなって来たくなくなるんだよなぁ…
暫く独学で勉強させてもらいます。
スレは見てるので何かあったら呼んで下さい。
454:デフォルトの名無しさん
17/02/18 19:25:48.41 VEC9TI2H.net
頑張り過ぎないようにね、ぬーぶ君。君は先が長い。
455:デフォルトの名無しさん
17/02/18 19:28:23.07 rK6OXg4U.net
>>144でも言ったけれどフェードアウトは止めてくれると嬉しい
すっぱり名無しに戻った方が気楽な時もある
456:ぬーぶ ◆upkqfrxkrw
17/02/18 19:36:01.58 zLb7XvBC.net
>>437-438
ありがとうです。
居なくなる事はないので大丈夫ですよ。
457:片山博文MZ ◆T6xkBnTXz7B0
17/02/18 22:38:13.87 MCn1lDME.net
ぬーぶさん、当たり判定は理解できたか?
458:デフォルトの名無しさん
17/02/19 00:18:28.10 L2qfhC9D.net
>>436
キミ、かっこ悪いな。ちょっとdisられただけで他人のせいにしていじけるなんて。自分も34才disりまくってたのにもかかわらずだw
本当は付いていけない自分が嫌なんだろうが、焦る必要はないよ。続けていればある日開眼する。その後また実は全然わかってなかったと落ち込むが、またさらに開眼する、この繰り返しよ。
キミには「無知の知」という言葉を贈ろう、頑張れ。
459:ふつけら ◆f5STnaEXUk
17/02/19 07:08:07.99 o7AFblAP.net
>>436
いやなレスは次々NG IDに放り込むとかいう手もある
つかれたなら休み
460:デフォルトの名無しさん
17/02/19 15:53:10.31 IydY0Dzj7
URLリンク(ideone.com)
C++のことは知らんが、clojureって言語でn人じゃんけん実装したぞ
かなり言語のトリッキーな部分つかってるから解説もするわ
まずn人じゃんけんの特性だけど、上でご指摘あるとおり、場に出された手(hands)の種類が1つまたは3つならばあいこである。
問題は場にだされた手が2つの場合なのである。
def winner部
場に出された種類が2つのとき、勝者のhandをきめる必要がある。
gooとchokiならgooの勝ちでしょ、そりゃ
:gooって感じで前に:ついてるのは気にしなくていい。別に:gooを"goo"に書き換えても動くからこれ
#{}ってのは集合を示す。この例で#{;goo :choki}ならグーとちょきが場に出ていると解釈してくれ
#{:goo :choki}って入力されたらreturn ;goo って感じね
これは実は関数じゃなくて単なる早見表みたいなもんなんだが、関数としてみてくれてもいい。
defn n-janken部
handsは引数、この関数に入れる入力、handsの例は下に書いてあるhands1からhands3を見てくれ
見てのとおりだ、アリスはグーを出し、トムはちょきを出し・・・って感じ
letは変数宣言みたいなものとみてくれてかまわない
varietyは、場に出された手の種類を覚える。
hands1を入力に突っ込んだら、varietyには#{:goo :choki :par}が入る。
win-handはwinner関数にvarietyを突っこんだときの返り値を覚える。
この場合def winnerには#{:goo :choki :par}が入力の場合の出力が定義されていない。
具体的にはnil (null pointer)を返す。
あとは、上記じゃんけんルールを適用するだけ。
varietyの数が3なら、それはあいこだ、:goo :choki :parが場に出ている。
1の場合もあいこだ、だから:evenという返り値を持ってあいこを示すことにする。
varietyが2の場合はwinner関数を用いて勝者の手を決めることができる。
だからそれを持っている人をhandsからフィルタリングして返せばいい。
C++にもたぶんboostとかSTLに似たようなシステムはあるはずだからそれに移植すればいい
個人的にはいきなりC++で書くのはおすすめしないけど、3Dゲームやるならまあ逃げられんわな
461:デフォルトの名無しさん
17/02/19 16:40:45.20 IydY0Dzj7
URLリンク(ideone.com)
ちょっと改良して、handsを自動生成する関数も追記した。
コード自体は長くなってしまったが、
結局ほとんどが出力を確認するためのテスト関数にすぎない。
そしてこの修正において一切defn n-jankenに触れる必要はなかった。
これが関数を書く意味であり、うまく関数を作るっていうのは
究極的に言えば何を入力として、何を出力とするのかをうまく決めることだ。
入出力をうまく決めてやれば、もとの関数を修正する必要がなくなる。
たぶんwinner表を他の言語で作るとなるとかなりめんどくさそうだと思う。
少なくとも書き方を調べないと俺には書けない。
だけどもしC++でこれを実装するとしたら、構文はさておき
似たような形(意味論、セマンティクス)で実装すると思う。
なおこのじゃんけんだと一人じゃんけんすると:evenを返すようだ。
これに気に食わなければ修正していいし、つまりデータの解釈ってのは
自由にやっていいってことだ。
ライブラリを使い始めるとデータの解釈や入出力がある程度取り決められる。
それは、機械と会話するためにそうせざるをえないからだ。
そうでないときにまで、機械と会話するように入出力のフォーマットを縛る必要はないし
縛ると苦しい実装しかできない。
462:デフォルトの名無しさん
17/02/19 17:05:30
463:.51 ID:zCzNbcF8.net
464:デフォルトの名無しさん
17/02/19 17:06:14.79 zCzNbcF8.net
URLリンク(ideone.com)
ちょっと改良して、handsを自動生成する関数も追記した。
コード自体は長くなってしまったが、
結局ほとんどが出力を確認するためのテスト関数にすぎない。
そしてこの修正において一切defn n-jankenに触れる必要はなかった。
これが関数を書く意味であり、うまく関数を作るっていうのは
究極的に言えば何を入力として、何を出力とするのかをうまく決めることだ。
入出力をうまく決めてやれば、もとの関数を修正する必要がなくなる。
たぶんwinner表を他の言語で作るとなるとかなりめんどくさそうだと思う。
少なくとも書き方を調べないと俺には書けない。
だけどもしC++でこれを実装するとしたら、構文はさておき
似たような形(意味論、セマンティクス)で実装すると思う。
なおこのじゃんけんだと一人じゃんけんすると:evenを返すようだ。
これに気に食わなければ修正していいし、つまりデータの解釈ってのは
自由にやっていいってことだ。
ライブラリを使い始めるとデータの解釈や入出力がある程度取り決められる。
それは、機械と会話するためにそうせざるをえないからだ。
そうでないときにまで、機械と会話するように入出力のフォーマットを縛る必要はないし
縛ると苦しい実装しかできない。
465:デフォルトの名無しさん
17/02/19 17:09:58.18 zCzNbcF8.net
あとヒューマンプレイヤーを実装したいならhandsに標準入出力から入力した手を追加して関数呼びだしするだけでいいよ、これはちょっとめんどいから保留で
466:片山博文MZ ◆T6xkBnTXz7B0
17/02/19 17:44:01.52 258Rl1AZ.net
おいおい、C++勉強中の中学生にClojureを教えるつもりか?
467:ふつけら ◆f5STnaEXUk
17/02/19 18:44:52.93 o7AFblAP.net
せっかくだからコンパイルしてみようと思ったけど名前だけで検索してインストールしたら
closure-compilerって名前のjavascript関連のツールがインストールされてた
Closureって言語は関数のクロージャともややこしくて検索でヒットしにくくて名前で損してるな
ややこしい
468:デフォルトの名無しさん
17/02/19 19:29:17.40 7wQmZFsK.net
プログラミングの理解は別にどうでもいいけどさ、普通に学校通えるようになったのか?
469:デフォルトの名無しさん
17/02/19 20:15:44.13 zCzNbcF8.net
>>448
だいたい全部のこれまでのレスを読んだわ
それで優先順位つけるとすると、中学生なら学校いけとしか思えん
470:デフォルトの名無しさん
17/02/19 20:43:07.61 zCzNbcF8.net
ガチでプログラムで飯食っていきたい、ゲームエンジンデザインしたいって言うなら
次の本は読んどけ、一線級のプログラマが何を考えているのかを知っておけ
ゲームエンジン・アーキテクチャ 第2版 ジェイソン・グレゴリー
本当に重要なのはどのようにライブラリ、パッケージを分割するかだ、つまりアーキテクチャだ
関数の分割もできないやつはアーキテクチャを作れない
次に意味論だ、アルゴリズムやデータ構造をよく知っとけ、使いこなせ
ここらへんは、言語によって呼ばれ方は様々だが
1.単方向リスト、 2.ベクタ、 3.セット(集合)、 4.連想配列(辞書、ディクショナリ、ハッシュ、マップ)
この4つだけは最低抑えとけ、C++で戦っていく気ならSTLだかboostだかに入っているであろうこれらのデータ構造を探しとけ
もっと言えば5.2分平衡木ぐらいはしっとけ
ガチで3Dのゲームエンジンをデザインするなら木構造は必須だ
これらをしっかり理解しとけばじゃんけんプログラムの実装においても
ほとんど設計で悩むことはない
事実俺はじゃんけんのルールをただ記述しただけだ
3つの手がでればあいこ1つの手がでればあいこ、
2つの手が出たならばグーとちょきはグーが勝ち、ちょきとパーは・・・(ここは表(テーブルともいう)で処理した)
華やかさのために人の名前も入れたけど、本当はいらないし省ける
ただじゃんけんのルールを記述するだけでよくなる
たかがじゃんけんのルールを記述するのに設計がどうだの議論は不要だろ?
(もちろんじゃんけんのルールを深掘りすれば使える不変量みたいなものは見つかるかもしれないが)
471:デフォルトの名無しさん
17/02/19 20:50:51.50 zCzNbcF8.net
代わりに性能はC++で真面目に書いたときに比べて比較にならんほど遅いはずだ
だから妥協することになる、妥協とは機械に歩み寄ることだ
プログラム設計とは、
1.どこまで機械に歩み寄るか、機械に歩み寄るほどデバッグが難しくなる
人間様としては、先程のclojureプログラムのように書きたい
2.プログラムのどのリソースを使うか、
CPUかメモリか、メモリ帯域か?ハードディスクかネットワーク帯域か?
場合によってはGPUにアクセスしないといけない。特に3DゲームはGPUを使えないとだめだ
じゃんけんにパフォーマンスは必要ないが、
100万回じゃんけんするプログラムを書くときはパフォーマンスが重要になるだろう
つまりは100万回じゃんけんを回す要件ができたときに書き直せばいい
最初から100%最速で、かつイケてるプログラムを書こうとしてはいけない
C++で性能を出すとするとwinner表は、二次配列で実装するだろう
みんなが書いているようにgoo choki parを0 1 2にいちいち対応させないといけないかもしれない
群論を用いてやる方法も書いてあったが、たぶん実装すると遅いはず
二次元配列で表を作ったほうがメモリアクセスだけで済むし、余計な計算はいらないからな
ただ二次元配列を定義するとメモリを少しばかり使うわけで、
場合によっては群論的アプローチをとったほうが、メモリを食わないことだってあるわけだ
もしビッグデータでじゃんじゃん配列使うとメモリオーバーフローなんてかんたんに起こすからな、3Dも同じだね
ライブラリを使いたくないってのは、理由が2つあって
1つ、ライブラリが理解できないってことだ、ありがたみもわからないから使いたくないというわけだ
2つ目は、ライブラリがいけてないと思っているからだ、自分が書きたいようにかけないと感じているからだ
そういうやつは例え間抜けなことであっても車輪の再生産をする、ライブラリを一から作る
俺もインタフェース(入出力)が気に入らなかったり信用できなかったりしたら一から作る
ただ一個人が作るオレオレライブラリより、ゲームエンジンのほうが遥かに信頼性高いからな
いけてないインタフェースってのも性能を出すためにしゃーなしでそうなってるってことも多い
472:片山博文MZ ◆T6xkBnTXz7B0
17/02/19 21:01:07.92 258Rl1AZ.net
雄弁すぎる!
473:デフォルトの名無しさん
17/02/19 21:01:12.67 7wQmZFsK.net
長い
474:デフォルトの名無しさん
17/02/19 21:04:57.43 zCzNbcF8.net
ようはプログラマの悩みっていうのは楽に書きたいところと
性能を出すために機械に寄り添って丁寧に記述しないといけないところのバランスをとることだ
それをするためにアーキテクチャが必要になる、ライブラリが必要になる
問題を本質的に記述したいっていうのであれば、
まずLand of Lispでも買ってきた方がいい、これが2つ目の参考書だ
上記で指摘したデータ構造とは何なのかを非常に簡単に勉強できる
もしC++ですべて理解します、できますっていうのならやらなくていい
Clojureは現代的lispで俺も使っているが、めんどくさいところもあるので初学者にはおすすめしない。
Lispの考え方にJavaの考え方が混ざっているので、全く初学者にはおすすめできんということだ
今のゲームエンジンは化物が作っているし、めちゃめちゃ金かかってる、それも一握りの人間だけだ
ゲームエンジンは中学生の目標として間違ってると思う
自分でゲーム作りたいよ、ってなら結局エンジン開発することになるが、いきなり3Dはきつすぎる
まあ到底達成し得ない目標を持つ前にまず学校いけやというわけだ
UnityでもUnreal Engineでもいいから試しに使ってみて
自分が作りたいゲームとやらの試作品をまず出力してみろやということだ
マッチ棒人間でも、どんな貧弱な3Dモデルでもいいから作って見て動かしてみればいい
どんなにコードは汚くてもいいから自分が欲しい出力に近いものを出してみろ
そのengineに何があれば、本当に自分がほしい出力が出るのかを考えてみろ
中学生なんで時間を多少無駄にしても許されるが、
ここらへんの答えを出せずにC++やってても仕方あらへんで
475:デフォルトの名無しさん
17/02/20 11:02:21.49 SvwDOwJX.net
中学生の人は、本体である34歳のほうが別スレでフルボッコになって
落ち込んでいるのでしばらく出てきません。
別人設定ですが常にアクティビティは連動します。
476:34歳うんぬん
17/02/20 15:58:38.18 /5CJGiw4.net
>>457
だから別人だってば。
IDも違うでしょう。
477:デフォルトの名無しさん
17/02/20 17:05:53.80 wG2rez/P.net
IDは同一人物の書き込みかどうかはわかるけど、別人かどうかの判定には使えないからなぁ
478:片山博文MZ ◆T6xkBnTXz7B0
17/02/20 20:36:03.95 1VVy2QiC.net
ねねっちはどこ?
479:デフォルトの名無しさん
17/02/20 20:40:26.71 1VVy2QiC.net
(^q^)(^q^)(^q^)(^q^)(^q^)(^q^)(^q^)(^q^)(^q^)(^q^)(^q^)(^q^)
480:デフォルトの名無しさん
17/02/20 20:50:49.73 MaezVUMf.net
片山=ねねっち
481:デフォルトの名無しさん
17/02/20 21:10:55.48 1VVy2QiC.net
(^q^)←これ、ぬーぶさんだよね?
482:ぬーぶ ◆upkqfrxkrw
17/02/20 22:33:35.23 V+LMJhmi.net
お好み焼き美味しいよね
>>463
違うよー
483:デフォルトの名無しさん
17/02/21 12:11:34.81 b2Z1gvCR.net
if(true) {
printf("ひふみんは俺の嫁/n");
}
else {
printf("りんさんは俺の嫁/n");
}
484:ふつけら ◆f5STnaEXUk
17/02/21 12:11:39.48 UIONV0tM.net
>IDは同一人物の書き込みかどうかはわかるけど
485:片山博文MZ ◆T6xkBnTXz7B0
17/02/21 13:34:46.02 FgNvmkSQ.net
当たり判定は、完全に代数幾何学と計算量削減の問題になる。
代数幾何学は、中学・高校の数学で習う。真面目に授業を受けろよ。
486:デフォルトの名無しさん
17/02/21 15:28:32.49 aFqTV30T.net
>>465
スラッシュw
487:デフォルトの名無しさん
17/02/21 21:23:18.86 fGVxTzaX.net
このスレの一番の問題点ってさ、素人がど素人に教えてるところじゃないの?
現役のゲームプログラマーなんて一人もいないっしょw
ID:zCzNbcF8の言ってることが正解でさ、まあまずはUnity+C#からはじめなよ
いきなりコンシューマーを目指すのではなく、ソシャゲのガワ部分を作ってみるといい