★★ Java の宿題ここで答えます Part 53 ★★

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2005/12/04(日) 09:42:01
>948
んと、コメント付けるだけでいいのかな?
953デフォルトの名無しさん:2005/12/04(日) 09:43:05
あ、間違いました。
948の人ですが、プログラムのほうにコメントをつけるだけいいのかな?
954デフォルトの名無しさん:2005/12/04(日) 12:31:35
>>938
JDK1.0の頃かな
955デフォルトの名無しさん:2005/12/04(日) 12:44:35
>>943
ポーカーやってみたんですが、
カードをクリックすると、選択した左側のカードが
選ばれるのですが、私だけですか?
956デフォルトの名無しさん:2005/12/04(日) 13:04:02
>>952
インスタンス変数に i j k l といった無意味な文字を使わないでください。
どうしても、演算処理で1 なら +、2なら - ・・・とするのであれば、最低限
private static final int PLUS = 1;
としてください。

読みにくいと直しにくいです。
957デフォルトの名無しさん:2005/12/04(日) 15:05:03
【 課題 】
アプレットを作成するに当たって拡大、縮小ボタンをセットし、拡大ボタンを押すと縦横幅を1.5倍に拡大し
縮小ボタンを1/1.5倍に縮小する機能を付けた物を作成してください。それにあたって拡大、縮小を繰り返しても
四角形の大きさが最初の大きさに戻るように工夫して作りなさい。
【 期限 】
今日まで
【 補足 】
丸投げ
疑問点は拡大、縮小を繰り返しても四角形の大きさが最初の大きさに戻るように
コーディングするやり方がどうもわかりません。
958デフォルトの名無しさん:2005/12/04(日) 15:35:47
結局、>>903 のポーカーを作ると予告した人は逃げちゃったのかよ・・・
一番困るパターンだな。
予告すると誰も回答しなくなるんだよ。土壇場でしかも報告もせずに
逃げるんだんて、嫌がらせ以外のなにものでもない。
959957:2005/12/04(日) 15:48:18
/* <applet code="samp.class" width="500" height="500"></applet> */
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class samp extends Applet implements ActionListener{
int x,y,x0,y0,x1,y1,x2,y2;
int oldx, oldy;//未使用
int count = 0;
Font font;
Color color;
Button Button1, Button2;

public void init(){
font = new Font("Serif",Font.BOLD,72);
color = new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));

y1 = x = y = 10;
x1 = 200;
oldx = x2 = x0 = 80;
oldy = y2 = y0 = 100;
Button1 = new Button("拡大");
Button2 = new Button("縮小");
exButton.addActionListener(this);
reButton.addActionListener(this);
add(Button1);
add(Button2);
}

960957:2005/12/04(日) 15:48:50
public void paint(Graphics g){
g.setFont(font);
g.setColor(color);
/* これでいいのか!? */
if(count == 0){
x0 = 80;
y0 = 100;
}
g.fillRect(x,y,x0,y0);

/* デバッグ関数 */
g.fillRect(x1,y1,x2,y2);
g.drawString(String.valueOf(x0),10,200);
g.drawString(String.valueOf(y0),10,250);
g.drawString(String.valueOf(x2),10,300);
g.drawString(String.valueOf(y2),10,350);
g.drawString(String.valueOf(count),10,400);
}

public void actionPerformed(ActionEvent e){
if(e.getSource() == Button1){
x0 *= 1.5;
y0 *= 1.5;
count++;
}else if(e.getSource() == Button2){
x0 /= 1.5;
y0 /= 1.5;
count--;
}
repaint();
}
}
961957:2005/12/04(日) 15:51:32
>>959,960
一応こうすればできるんですが何か納得いきません

それにあたって拡大、縮小を繰り返しても
四角形の大きさが最初の大きさに戻るように工夫して作りなさい。

の部分を数学的な式で書き換える事はできるんでしょうか?
962デフォルトの名無しさん:2005/12/04(日) 15:55:45
>>961
簡単だよ。
初期状態を変化させるのではなく、現在どの倍率で表示するか別の変数を用いるんだ。
表示させるときだけその倍率をかけてあげる。
963デフォルトの名無しさん:2005/12/04(日) 15:58:50
>>957
手抜き…ちゃんと動くか確認してください
public void paint(Graphics g) {
g.setFont(font);
g.setColor(color);
/* これでいいのか!? */
x0 = (int) (80 * Math.pow(1.5, count));
y0 = (int) (100 * Math.pow(1.5, count));
g.fillRect(x, y, x0, y0);

/* デバッグ関数 */
g.fillRect(x1, y1, x2, y2);
g.drawString(String.valueOf(x0), 10, 200);
g.drawString(String.valueOf(y0), 10, 250);
g.drawString(String.valueOf(x2), 10, 300);
g.drawString(String.valueOf(y2), 10, 350);
g.drawString(String.valueOf(count), 10, 400);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == Button1) {
count++;
} else if (e.getSource() == Button2) {
count--;
}
repaint();
}
964957:2005/12/04(日) 16:03:04
>>963
できました。
そういうやり方もあるのか(´・ω・`)

>>962,963
回答ありがとうございます。
965903:2005/12/04(日) 17:12:17
943氏のポーカーを元に、どなたかBlackJackを作っていただけませんか?
掛け金などは無く、
最初、Player1に2枚のカード、Player2に2枚のカードが配られる
次にカードが欲しい場合は[追加]ボタンをクリックしてカードを追加
どちらかが22以上になったら負けの表示
ttp://www.bozo2.com/uploader/upload/like.JPG
こんな感じに作っていただけたら幸いです。
966デフォルトの名無しさん:2005/12/05(月) 01:05:08
【 課題 】 ノルウェーの国旗のjpeg画像を読み込み、青色の部分だけのRGB値を取得しなさい。
RGB値は配列に入れ、青の部分のピクセル数で割った値を表示しなさい。
967デフォルトの名無しさん:2005/12/05(月) 03:12:06
白黒のjpeg画像を読み込んで、Point p = new Point();を使い、完全に白のところの座標を得るにはどうしたらいいですか?
968>>914 == >>921:2005/12/05(月) 07:38:54
969875:2005/12/05(月) 08:27:02
>968
有難うございます!!
これはまだアプレットに改良してないのですね。
提出日が火曜の午前12時までなので、もしやっていただけるのならばお願い
したいと思います。
もちろん、自分でも出来る限りの努力はしてみます。
宜しくお願いします。
970デフォルトの名無しさん:2005/12/05(月) 10:43:03
 課題 】お絵描きソフトを作る。描いた絵、文字は保存できるようにする。
【 期限 】提出日 12月7日 
【 Ver  】Eclipse SDK 3.1.1 j2SDK1.4.2
【 補足 】こちらのサイトにあるようなもので作っていきたいのですが
      http://www.sm.rim.or.jp/~shishido/ged1.html
      丸投げの状態であります ご助力をお願い致します。
971デフォルトの名無しさん:2005/12/05(月) 11:12:21
古いな・・・
972デフォルトの名無しさん:2005/12/05(月) 15:21:59
【 課題 】 以下の方針を応用し、左右に動く3つのオブジェクトが中央の領域で
       お互いに排他制御するようにしたアプレットのプログラムを作成せよ。
       import javax.swing.*; import java.awt.*;
class MovingObject {
public int x; public int y; public int dx; public int dy; public int width;
MovingObject(int _x, int _y, int _dx, int _dy, int __width) {
x = _x; y = _y; dx = _dx; dy = _ dy; width = _width; }
void show(Graphics g, Color clr) {  g.setCOLOR(clr);  g.fillOval(x, y, width, width); } }
public class Wig extends JApplet implements Runnable {
MovingObject redBall = new MovingObject(0, 20, 20, 0, 10);
MovingObject blueBall = new MovingObject(30, 80, 20, 0, 20);
Thread redThread = new Thread(this); Thread blueThread = new Thread(this);
int interval = 1;
public void start() { redThread = new Thread(this); blueThread = new Thread(this);
redThread.start(); blueThread.start(); }
public void run(); { MovingObject obj;
if(Thread.currentThread() == redThread) obj = redBall;
else obj = blueBall;
while(true) { { try { Thread.sleep(3);  } catch (InterruptedException e) { } }
if(obj.x + obj.dx < 0 || getWidth() < obj.x + obj.dx + obj.width)  obj.dx = -obj.dx; obj.x += obj.dx; repaint(); } }
public void paint(Graphics g) { super.paint(g); redBall.show(g, Color.RED); blueBall.show(g, Color.BLUE); } }
【 期限 】 12月6日12時
【 Ver  】 指定なし 
【 補足 】 丸投げ、お時間があるようでしたら、みなさまよろしくお願いします。
973デフォルトの名無しさん:2005/12/05(月) 15:45:36
【課題】Ecpliseを用いGUI電卓を作る
【期限】12月7日
【補足】丸投げの状態であります、どなたかお時間あるようでしたら、
    ご助力をお願い致します。


974デフォルトの名無しさん:2005/12/05(月) 16:10:16
Ecplise...
975デフォルトの名無しさん:2005/12/05(月) 16:19:11
>>972
出来上がってんじゃん
976972:2005/12/05(月) 16:34:08
>>975
できあがってるとはどういうことでしょうか?初心者なのでさっぱりわかりません
>>972で示したのは二つのオブジェクトなんですけど
977デフォルトの名無しさん:2005/12/05(月) 16:36:55
>>973

>377 にあるよ

>350の仕様を完全に無視した逆ポーランド記法用の電卓のソースを貼ってみます。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26031
から
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=26037
まで。
978デフォルトの名無しさん:2005/12/05(月) 16:37:27
>>972
それコンパイル通らないし
979デフォルトの名無しさん:2005/12/05(月) 17:59:25
>977
ページを表示できませんって出る。
980972:2005/12/05(月) 18:08:36
>>972は多少間違っていたのでもう一度貼ります
import javax.swing.*;
import java.awt.*;
class MovingObject {
public int x;
public int y;
public int dx;
public int dy;
public int width;
MovingObject(int _x, int _y, int _dx, int _dy, int _width) {
x = _x;
y = _y;
dx = _dx;
dy = _ dy;
width = _width;
}
void show(Graphics g, Color clr) {
g.setCOLOR(clr);
g.fillOval(x, y, width, width);
}
}
public class Wig extends JApplet implements Runnable {
MovingObject redBall = new MovingObject(0, 20, 20, 0, 10);
MovingObject blueBall = new MovingObject(30, 80, 20, 0, 20);
Thread redThread = new Thread(this);
Thread blueThread = new Thread(this);
int interval = 1;
public void start() {
redThread = new Thread(this);
blueThread = new Thread(this);
981972:2005/12/05(月) 18:11:27
続き
redThread.start();
blueThread.start();
} 
public void run() {
MovingObject obj;
if(Thread.currentThread() == redThread)
obj = redBall;
else
obj = blueBall;
while(true) {
{
try {
Thread.sleep(3);
} catch (InterruptedException e) {
}
}
if(obj.x + obj.dx < 0 || getWidth() < obj.x + obj.dx + obj.width)
obj.dx = -obj.dx;
obj.x += obj.dx;
repaint();
}
}
public void paint(Graphics g) {
super.paint(g);
redBall.show(g, Color.RED);
blueBall.show(g, Color.BLUE);
}
}
982デフォルトの名無しさん:2005/12/05(月) 18:50:21
>>972

ttp://www.wikiroom.com/java/index.php?HW972%20Wig%20MovingObject

既知のバグ:
後ろから追突されても向きが変わるときがあります
ダブルバッファリング処理を施していないので画面がチラツキます
983デフォルトの名無しさん:2005/12/05(月) 18:51:14
ああ、3つか、作り直しだな
984 :2005/12/05(月) 19:24:00
980を越えたので、次スレを立てました

http://pc8.2ch.net/test/read.cgi/tech/1133778112/l50
985デフォルトの名無しさん:2005/12/05(月) 20:01:03
>>982さんありがとうございました
986943:2005/12/05(月) 20:18:33
>955
確認しました。Windowsだとピクセル単位でずれるっぽい。
修正したソースを載せておきました。
DQPokerFrame#mouseClicked()を直しました。
987デフォルトの名無しさん:2005/12/05(月) 23:57:18
http://page.freett.com/kb100000/4.txt
明日までです。よろしくお願いします。
988デフォルトの名無しさん:2005/12/06(火) 12:13:25
989デフォルトの名無しさん:2005/12/06(火) 17:34:09
>>808さんのソースに注釈をつけていただけませんか?
よろしくおねがいいたします
990デフォルトの名無しさん:2005/12/06(火) 17:45:11
【課題】Canvasクラスを使い、図形を描画するプログラムを作成。(図形は何でも良い。)
その時、レイアウトを用いて、Canvasクラスの上部にLabelクラスを配置し、
描画した絵のタイトルを記述すること。

【期限】12月7日午前中
【補足】丸投げで申し訳ありません。どうかお願い致します。
991987:2005/12/06(火) 20:46:26
>>988
返信ありがとうございます。
これは972さんの回答と同じということでしょうか??
992デフォルトの名無しさん:2005/12/06(火) 21:00:02
>>991
ダブルバッファしたものとしてないものがある訳だから兼用でOKだと思う
993デフォルトの名無しさん:2005/12/06(火) 21:08:13
994デフォルトの名無しさん:2005/12/06(火) 21:32:02
>>993
それコンパイル通らないよ
995デフォルトの名無しさん:2005/12/06(火) 21:42:17
>>994
貼るときに壊したかな?
エラーメッセージ出してみて
996デフォルトの名無しさん:2005/12/06(火) 21:45:06
>979
今ならつながる。
逆ポーランド記法の電卓でいいのかどうかは知らんが。
997デフォルトの名無しさん:2005/12/06(火) 21:47:41
>>994
うちは動いてるよ。
もう一回こぴぺしてみて。

あと、ファイル名は Bmp2Jpeg.java にしないとだめだよ。
大文字小文字も一字一句違うとだめ。
998デフォルトの名無しさん:2005/12/06(火) 21:48:47
>>994
あと、念のためだけど、 J2SDK 1.4.2 で確認した。
999デフォルトの名無しさん:2005/12/06(火) 21:49:22
1000デフォルトの名無しさん:2005/12/06(火) 21:50:36
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。