学校の宿題は俺にやらせて下さいver.2.0βfor Java
private int play(String player, BufferedReader br) throws IOException {
Random rnd = new Random();
String answer = "";
boolean checks[] = new boolean[10];
for (int i=0; i<10; i++) {
checks[i] = false;
}
for (int i=0; i<4; i++) {
int num;
do {
num = rnd.nextInt(10);
} while (checks[num]);
answer += "" + num;
checks[num] = true;
}
String ask = "";
int count = 1;
while (! answer.equals(ask)) {
ask = null;
do {
if (ask != null) {
System.out.println("4ケタの数値を入力してください。");
}
System.out.println(player + "さんの" + count + "回目:4ケタの数値を入力してください。");
ask = br.readLine();
} while (ask.length() != 4);
int hit = 0, blow = 0;
for (int i=0; i<4; i++) {
for (int j=0; j<4; j++) {
if (ask.charAt(i) == answer.charAt(j)) {
if (i == j) {
hit++;
} else {
blow++;
}
}
}
}
if (hit < 4) {
count++;
System.out.println(hit + " ヒット " + blow + " ブローです");
}
}
System.out.println("正解です!あいうえおさんの記録は" + count + "回です!");
return count;
}
}
入力チェック甘し。回答入力のダブりチェックもしてない。60点のでき。
あらら先越されちゃいましたか。
おつかれさまです。
でも自分がやりたかったことは、
おまけで対 CPU の試行ルーチンをつくって、
どのくらい強くなるかを試したかったので、
私もこのソースを借用させていただきます。
>>911 お先しました。
あなたの作ったのに負ける自信有り。苦手だから 25回とか30回とか頻出。
テストするのめんどいめんどい(答え表示しとけつーの)
成績ドローだとどうすればいいのかな? 日和ってしまったけど。
入力チェックは例外処理も多くなるし、初心者的には不問でいいのかな。
913 :
デフォルトの名無しさん:04/07/07 10:27
Java VM にインスタンスが1つだけ存在することを保証しようとした
ものであるが、誤りが2箇所ある。
public class Test {
private static Test test;
public Test() {
}
public Test getInstance() {
if( test == null ) {
test = new Test();
}
return test;
}
}
説明もお願いします。
914 :
デフォルトの名無しさん:04/07/07 10:35
>>913 1. コンストラクタがpublicなのでいくつでもインスタンスが生成できてしまう
2. getInstanceメソッドがstaticでないので、インスタンスがないと呼び出せない
915 :
デフォルトの名無しさん:04/07/07 11:27
916 :
デフォルトの名無しさん:04/07/07 11:28
次のプログラムの出力を記せ。
class A {
char x = 'A';
void whoami() {
System.out.println("A");
}
}
class Test extends A {
char x = 'T';
void whoami() {
System.out.println("Test");
}
public static void main( String[] args ) {
A a = new Test();
a.whoami();
System.out.println( a.x );
}
}
>>916 実行すりゃすぐわかる。
どうしてここで聞くのかがわからん。
919 :
デフォルトの名無しさん:04/07/07 13:01
920 :
デフォルトの名無しさん:04/07/07 14:10
class A {
}
class B extends A {
}
で、エラーになるのはどっち?でエラーになる理由と
エラーにならない理由は?
(1) A a = new B();
(2) B b = new A();
921 :
デフォルトの名無しさん:04/07/07 15:58
ちょっとあんまりJAVAを理解できてないので助けてください。
今GUIパーツを用いるクイズゲームのアプレットを作っているんですけど、
ONボタンが押されたら
ユーザーの答えが現在の問題の答えと合っているかどうかを調べる
正解だったら
画像を表示するフラグをtrueにする
正解画像の番号を指定する
というプログラムをかくにはどうすればいいんでしょうか?
ちなみに答えはチョイスボタンから選択し、OKボタンを押すと回答が表示されるようにしたいのですが。
>914
実はもう一個誤りがあったり。。。
3. getInstanceで同期とってないのでタイミングによっては複数インスタンスが作れる
924 :
デフォルトの名無しさん:04/07/07 22:20
>>922
どうも921です。でもなんかそのサイトにアクセスできない...。
時間もあまりないので誰か教えて下さい。
お願いします。
イメージアイコン使うのが一番楽
イメージアイコンですか。使ってますけど、上手くできないんですよね。
できたら上の部分のプログラムだけでも実際に書いて貰えるとかなり
助かります。ほんと申し訳ないです。
2つあって、両方とも「シンボルを解決できない」と出ます。
8行目と223行目で、
クラス:ViewPort
場所:Gateのクラス
で、両方ともViewPortの「V」のところにチェックが付いています。
↑
誤)クラス:ViewPort
正)シンボル:クラス ViewPort
です。助けて下さい・・・
ViewPortが無いよ
動かすだけでよいのならViewPort.classをもらってくれば?
933 :
デフォルトの名無しさん:04/07/08 09:48
934 :
デフォルトの名無しさん:04/07/08 09:52
>>933 メソッドにsynchronizedを付けるがいい
>>926 今君の書いてるプログラムにあわせたものでないと
何の参考にもならんと思う
936 :
プログラミング大好き:04/07/08 16:24
コマンドラインで指定した回数だけ、2つの乱数の組x、yを発生させ、その乱数を元に
円周率πを求めるプログラムPaiPai.javaを作成せよ。
ってヤツだけどさ、(x,y)の点を表示させて、その点が、円の範囲内に入ればいいんじゃないの??
学校の課題かな?
ちょっと、プログラム組んでみようか??
どうぞご自由に
>>936 >>891 >>892で解決済み
今後のために注意を上げておくと、
> コマンドラインで指定した回数だけ、2つの乱数の組x、yを発生させ、その乱数を元に
> 円周率πを求めるプログラムPaiPai.javaを作成せよ。
>>890と書くと親切
> ってヤツだけどさ、(x,y)の点を表示させて、その点が、円の範囲内に入ればいいんじゃないの??
モンテカルロ法といえば一言で済む
> 学校の課題かな?
スレタイ読め
> ちょっと、プログラム組んでみようか??
最初からこれを貼る
939 :
デフォルトの名無しさん:04/07/08 18:50
・8つの数を読み込んで
その合計を表示するプログラムを「while」使ってお願いします
940 :
デフォルトの名無しさん:04/07/08 19:06
Matlabで、2次元の(長方形を用いた平面の)補間の
プログラムはどうしたらよいのでしょう?
>>939 int i = 0, sum = 0;
while (i < 8) {
sum += //読み込む、とは? 何から読み込むの?
i++;
}
System.out.println("合計:" + sum);
8つダーっと数字を入力したら合計が出るようにするプログラムです
例えば
3
3
3
4
4
4
5
5(と入力したら)
合計は31です
ってなるような感じで
import java.io.*;
public class Summer { //嘘英語
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int i = 0, sum = 0;
while (i < 8) {
sum += Integer.parseInt(br.readLine());
i++;
}
System.out.println("合計は" + sum + "です");
} catch (IOException ex) {
}
}
}
944 :
プログラミング大好き:04/07/08 21:20
> コマンドラインで指定した回数だけ、2つの乱数の組x、yを発生させ、その乱数を元に
> 円周率πを求めるプログラムPaiPai.javaを作成せよ。
>>890 のプログラムだけど、キャンバスは、
class Canvas extends Canvas{
private static int ans;
public void paint (Graphics g){
g.lock();
g.clearRect(0,0,getWidth(),getHeight());
setSoftLabel(Frame.SOFT_KEY_1,"計算");
setSoftLabel(Frame.SOFT_KEY_2,"戻る");
int uti = 0; //円の内側に発生する点の数
int a = 70; //円の半径の設定
g.setOrigin(((getWidth()-a)/2),((getHeight()-a)/2)+a); //座標原点の移動
g.drawRect(0,-a,a,a); //点の発生する四角形の描画
Random r=new Random(); //ランダムの宣言
こんなものでどうだろう??
ここってよーするに、
宿題やってもらうスレ?
宿題やってくださいじゃ相手にされないから
こういうスレタイにしてんの?
そろそろ新スレ?
949 :
デフォルトの名無しさん:04/07/09 20:40
次のプログラムはN(1以上であるとする)の階乗(N!)を求めるプログラムである。
このプログラムを完成させなさい
public class Factorial {
static int N=10;
public static void main(String args []) {
int factorial =1 ;
for (int i = N; i > ? ; ? ) {
factorial ? i ;
}
System.out.println("Factrial " + N + "! = "+ factorial) ;
}
}
おしえてー
順に
0
i--
*=
951 :
デフォルトの名無しさん:04/07/09 20:54
あーなるほどー
*= ってのがあったんですかー
ありがとうございましたー
952 :
デフォルトの名無しさん:04/07/09 21:58
Delphi使ったPascalの宿題があるのですが
やってもらってもええですか?
Javaじゃないとだめっすかね・・・
「学校の宿題は俺にやらせてください for Pascal」スレがあるだろ
954 :
デフォルトの名無しさん:04/07/09 23:14
なければ自分で立てるんだ。人に頼るな!
956 :
デフォルトの名無しさん:04/07/10 00:22
Dijkstra法を用いて、ノード0からノード3までの最短経路長を求めて出力するプログラムを作成しなさい。
(図では、0→2→1→3の経路のコスト20が最小)
なお、各地点間のコストは、cost配列で与えられるものとする。コストは負でないとする
K
0━━━1
| /|
G | / |I←コスト
|/ |
2━━━3
N
//cost[i][j]はノードi からノードj へのコスト。無限大をMAX_INTで表現
//ノードi からノードi へは移動しないので、移動コスト無限大と仮定。
int[] [] cost = { { MAX_INT 12 ,8 ,MAX_INT} , {12 ,MAX_INT , 2 , 10} ,{ 8 , 2 ,MAX_INT , 15} , {MAX_INT ,10 ,15,MAX_INT} } ;
//計算途中で用いる各ノードまでの旅程(最短経路長)(MAX_INTで初期化)
int [] mincost = {MAX_INT, MAX_INT , MAX_INT , MAX_INT } ;
教えてください、お願いします
957 :
デフォルトの名無しさん:04/07/10 00:24
図を修正・・・
K
0━━━1
| /|
G | / |I←コスト
|/ |
2━━━3
N