学校の宿題は俺にやらせて下さい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
>>914
ありがとう。
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
実行すりゃすぐわかる。
どうしてここで聞くのかがわからん。
918911:04/07/07 12:27
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=144&fi=no
どうも最強 CPU です。
ヒットアンドブローを平均 6 手位で解きます。
class CPU を追加しました、class Q904 はほとんど弄っていません。
遊んでみると楽しいですよ。
919デフォルトの名無しさん:04/07/07 13:01
>>917
その通りでした
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ボタンを押すと回答が表示されるようにしたいのですが。

>>921

ttp://black.sakura.ne.jp/~third/system/java/Gjava20.html
とりあえず、ここらへんが参考になると思う
これに書き足して作ってみては。
>914
実はもう一個誤りがあったり。。。
3. getInstanceで同期とってないのでタイミングによっては複数インスタンスが作れる
924デフォルトの名無しさん:04/07/07 22:20
>>922
どうも921です。でもなんかそのサイトにアクセスできない...。
時間もあまりないので誰か教えて下さい。
お願いします。
イメージアイコン使うのが一番楽
926921:04/07/07 23:01
イメージアイコンですか。使ってますけど、上手くできないんですよね。
できたら上の部分のプログラムだけでも実際に書いて貰えるとかなり
助かります。ほんと申し訳ないです。
927初心者:04/07/08 01:48
http://www.h5.dion.ne.jp/~nnempire/gate/Gate.html
において、ソースをコンパイルするとエラーが出るのですが、解決の方法をどなたか教えていただけないでしょうか?
>>927
どんなエラーかくらい書けや
929初心者:04/07/08 01:53
2つあって、両方とも「シンボルを解決できない」と出ます。
8行目と223行目で、
クラス:ViewPort
場所:Gateのクラス
で、両方ともViewPortの「V」のところにチェックが付いています。
930初心者:04/07/08 01:55

誤)クラス:ViewPort
正)シンボル:クラス ViewPort
です。助けて下さい・・・
ViewPortが無いよ
動かすだけでよいのならViewPort.classをもらってくれば?
>>930
シンボルを解決してみ
933デフォルトの名無しさん:04/07/08 09:48
>>923
同期をとるとはなんでしょうか?
934デフォルトの名無しさん:04/07/08 09:52
>>933
メソッドにsynchronizedを付けるがいい
>>926
今君の書いてるプログラムにあわせたものでないと
何の参考にもならんと思う
936プログラミング大好き:04/07/08 16:24
コマンドラインで指定した回数だけ、2つの乱数の組x、yを発生させ、その乱数を元に
円周率πを求めるプログラムPaiPai.javaを作成せよ。

ってヤツだけどさ、(x,y)の点を表示させて、その点が、円の範囲内に入ればいいんじゃないの??
学校の課題かな?
ちょっと、プログラム組んでみようか??
どうぞご自由に
938親切大好き:04/07/08 17:01
>>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);
942939:04/07/08 20:38
8つダーっと数字を入力したら合計が出るようにするプログラムです

例えば








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(); //ランダムの宣言
こんなものでどうだろう??

ここってよーするに、
宿題やってもらうスレ?

宿題やってくださいじゃ相手にされないから
こういうスレタイにしてんの?
>>945
答えてるのは全部>>1さんですよ
でも>>1は俺だよ?
そろそろ新スレ?
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
>>953
なかったですが・・・
なければ自分で立てるんだ。人に頼るな!
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
>>956

ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=249
しかし、MAX_INT とは、
一瞬だけそんな定数があると思ってしまった自分が腹立たしい、
Integer.MAX_VALUE じゃないかよ!!!

まぁ、ダイクストラのアルゴリズムを書かされるということは情報系?
それとも教官の横暴?

教官の横暴ならいいけど、情報系なら・・・・・・。