JAVA学习交流
互帮互助,共同进步!
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
4 随笔 :: 6 文章 :: 26 评论 :: 0 Trackbacks
<
2006年12月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔档案
(4)
2006年9月 (4)
文章档案
(6)
2006年12月 (1)
2006年9月 (5)
相册
1
收藏夹
文章收藏
(rss)
JAVA相关站点
JAVA中文网
JAVA官方站点
搜索
最新评论
1. re: 作业答疑
评论内容较长,点击标题查看
--tiny
2. 顶
很感动,大哥你太厉害了,我也要像你那样好好学习,考过scjp
--学java的人
3. re: 作业答疑
想了N 天的问题,作业一直没有交.请高人指点.
司机这个类里面要求没有车,那在drive函数里面司机开什么呀.
--曾崇杰
4. 请问我的方法为什么不好
评论内容较长,点击标题查看
--luomeilun
5. 请问我的方法为什么不好
评论内容较长,点击标题查看
--luomeilun
阅读排行榜
1. 作业答疑(801)
2. 关于环境变量设置和HelloWorld的讨论(311)
3. 让我们成为Java的主宰者(275)
4. 求解(267)
评论排行榜
1. 作业答疑(14)
2. 求解(6)
3. 关于环境变量设置和HelloWorld的讨论(2)
4. 让我们成为Java的主宰者(0)
作业答疑
请同学们积极提问!
posted on 2006-09-29 08:33
Green
阅读(801)
评论(14)
编辑
收藏
评论
#
re: 作业答疑
2006-09-29 12:57
wy
vb
回复
更多评论
#
re: 作业答疑
2006-10-07 23:27
编程菜鸟lzq
对与我来说学习java的确有很大的难度。
主要是我的基础太烂了,c和c++都没有学好,对好多的基本概念都不是很熟悉。但是我很想把java学好,对与我的情况,我应该如何一步一步地学java。
回复
更多评论
#
re: 作业答疑
2006-10-08 13:46
刘发君
我在做第二组作业的第四题时,有两个问题。请大家提提意见,帮忙解决一下。
第一个问题是:输入的最后一个月(12月)不能够显示出来(当然,我用的循环的方法我认为是可以显示的)。相应在统计年总天数的时候,就不能够统计到最后一个月的天数。以至于总的天数少了31天。
第二个问题:对当前月不知道怎样用下划线来表明。
回复
更多评论
#
re: 作业答疑
2006-10-08 20:44
小余
因为你的数组长度设为12,但是你是以0开头的,以11结束,所以不能显示12月,你应该在输出的时候每个月份,也就是你的下标加1
回复
更多评论
#
re: 作业答疑
2006-10-10 10:36
Teacher
我只提几个问题:
1:你每天了用多少时间学习Java?有一个小时吗?
2:教材上的演示例子你都运行过吗?运行了你修改过吗?
3:当你遇见问题时你请教过吗?你有没有不解决就誓不修的精神?
4:基础差你努力过吗?知道自己的不足就要加倍的付出, 你做到了吗?
基础差不是借口, 努力才有机会. 从现在做起为时未晚!!
回复
更多评论
#
re: 作业答疑
2006-10-10 20:09
Teacher
@编程菜鸟lzq
我只提几个问题:
1:你每天了用多少时间学习Java?有一个小时吗?
2:教材上的演示例子你都运行过吗?运行了你修改过吗?
3:当你遇见问题时你请教过吗?你有没有不解决就誓不修的精神?
4:基础差你努力过吗?知道自己的不足就要加倍的付出, 你做到了吗?
基础差不是借口, 努力才有机会. 从现在做起为时未晚!!
回复
更多评论
#
re: 作业答疑
2006-10-17 15:49
谯老师
public class RandomTest {
public static void main(String[] args) {
anotherMethod(5);
}
static void oneMethod(int length) {
String s = "";
String s1 = "";
int j = 0;
/**
* 利用字符串来比较是否重复,有重复则重选一个,选几个,i就小于几就行了
*/
for (int i = 0; i < length; i++) {
/**
* 调用random方法,随机选数,它选出的是0-0.999...之间的数,
* 所以乘以length,就是1-length之间的整型数。
*/
j = (int) (Math.random() * length);
s1 = j + "";
if (s.indexOf(s1) != -1) {
i--;
continue;
}
s = s + " " + s1;
//大出来看看,绝对不重,保存下来就行了
System.out.println(j);
}
}
static void anotherMethod(int length) {
int[] a = new int[length];
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * length)+1;
for (int j = 0; j < i; j++) {
if (a[j] == a[i]) {
i--;
break;
}
}
}
for (int j = 0; j < length; j++) {
System.out.println(a[j]);
}
}
static void thirdMethod(int length) {
int numbers[] = new int[length];
/**
* 初始化数字
*/
for (int k = 0; k < length; k++) {
numbers[k] = k;
}
int random[] = new int[length];
/**
* 比如ranInt(54)产生一个随机数5,把a[5]的牌抽出数组,
* 然后再用ranInt(53)抽出另外一张,ranInt(52)
*/
for (int i = length - 1; i >= 0; i--) {
int selected = (int) (Math.random() * i)+1;
random[i] = numbers[selected];
numbers[selected] = numbers[i];
}
for (int i = 0; i < length; i++) {
System.out.print(random[i]);
}
}
static int genRandomCut(int length) {
int randomnum = (int) (Math.random() * length);
//System.out.print(randomnum);
return randomnum ;
}
static int[] getRandom(int length){
int[] a = new int[length];
loop:
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * length);
for (int j = 0; j < i; j++) {
if (a[j] == a[i]) {
i--;
continue loop;
}
}
}
for (int j = 0; j < length; j++) {
System.out.println(a[j]);
}
return a;
}
static void cutCard(int length) {
int[] cards = new int[length];
cards = getRandom(length);
int randomcut = genRandomCut(length);
int temp[] = new int[length];
int startPoint = randomcut;
for(int i=0; i<length-randomcut; i++){
temp[i]=cards[startPoint++];
}
for(int k=0; k<randomcut; k++){
temp[length-randomcut+k] = cards[k];
}
System.out.println("RandomCut:"+randomcut);
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]);
}
}
}
回复
更多评论
#
re: 作业答疑
2006-10-18 13:06
SKYLCT
老师介绍一下现在最流行的界面开发工具(JAVA类)!!
回复
更多评论
#
re: 作业答疑
2006-10-19 09:28
Raylay Zhang
import java.util.List;
import java.util.Collections;
import java.util.ArrayList;
import java.util.Random;
class Card{
private String value; //扑克牌的值
private String color; //扑克牌的花色
public Card(String s1,String s2){
.....
}
public String GetValue(){
.....
}
public String GetColor(){
.....
}
}//一张牌的类型
我已经建立好了一个Card[]Porke=new Card[54];且对其进行了初始化及相关赋值,即建立好了一副牌.
主要问题是出在洗牌的时候.部分代码如下:
List cards = new ArrayList();
//向其中添加元素;
for(int i = 0; i < 54; i++) {
cards.add(Porke[i]); //即将Porke中各张牌给这个list中
}
Collections.shuffle(cards,new Random()); //将cards中元素顺序打乱
建立一个新的Card newcard[54];
newcard=cards.toArray(); //将list cards转化成对应元素类型的数组
可是在执行的时候就是这个地方出错.错误是: 类型不一致
回复
更多评论
#
re: 作业答疑
2006-10-31 13:37
谯老师
名称: 实现洗牌算法
分析:
识别类:
public class Card{}; //一张牌
public class Poker{}; //一副牌
public class PlayGame{}; //对牌进行的相关操作,包括洗牌,切牌
识别属性:
Card应包括的属性有: private color(花色),private value(大小);
Poker应包括的属性有:Card Cards[54]; //包含54张牌元素的数组,用来描述一副牌;
public String color[4]; //包含4种花色
public String value[13]={"A","2","3",......,"K"}
定义类:
Card{
属性: private color //花色
private value //值,大小
构造函数:
根据需要,牌大致可划分为两种,一种是A,2....K.(普通牌),另外一种就是大王,小王
Card(String value,String color){} //用来初始化普通牌
Card(String value){} //传入一个参数,用来初始化大王,小王
方法:
为了得到private的属性,定义以下方法来获取
String getColor(){}; //得到这张牌的花色
String getValue(){}; //用来得到这张牌子的大小;
}
Poker{
属性: 因为每副牌都有共同属性:四种花色,有从A,2....K十三种值类型,每副牌都有54张,故有以下属性
public String color[4]={.....}
public String Value[13]={.....}
Card Cards[54];
构造函数:
根据以上的属性,分析可知一副牌初始化时不需要传参,
Porke{
......
}
方法:
每副牌都应该要有一个显示的方法,打印出Cards[54]的内容.如下:
public void print(){}
}
PlayGame{
分析可知,在该类中我们需要做的是定义一个洗牌的方法,切牌的方法,还可包括main函数。
无需构造函数,
方法:
洗牌方法: public Poker XiPai(){}
洗牌算法描述:
用random产生一组随机且不重复的数,用int array[54] 来保存,其中每一个元素都对应 着Cards[54]的下标,
将Cards[54]以该int array[54]的值的顺序来存放,则是一组随机的Card元素,从而实现了洗 牌算法
最后返回值为新的序列的Cards[54]
切牌方法:
public Poker DaoPai(){}
切牌算法描述:
用random产生一个随机数,找到该随机数为下标的Cards[54]的元素。将该元素以前的元素 接到该Cards[54]数组的后面。最后返回一个新的序列的Cards[54]。从而实现倒牌算法
main函数:
通过对Poker new一个新的对象,来进行洗牌,倒牌的操作
}
回复
更多评论
#
请问我的方法为什么不好
2006-11-02 22:35
luomeilun
我的方法也可以得到结果,代码也少,但是感觉我的方法不好,我基础差不知道不好在那些方面
public class RandomTest {
static void oneMethod(int length)
{
String s = "";
String s1 = "";
int j = 0;
for (int i = 0; i < length; i++)
{
j = (int) (Math.random() * length);
s1 = j + "";
if (s.indexOf(s1) != -1)
{
i--;
continue;
}
s = s + " " + s1;
String a[]={"黑2","红2","方快2","梅花2","方三",} //太长老要写54个暂时写5个
System.out.println(a[j]);
}
}
public static void main(String[] args){
RandomTest M=new RandomTest() ;
;
M. oneMethod(5);
}
}
回复
更多评论
#
请问我的方法为什么不好
2006-11-02 22:35
luomeilun
我的方法也可以得到结果,代码也少,但是感觉我的方法不好,我基础差不知道不好在那些方面
public class RandomTest {
static void oneMethod(int length)
{
String s = "";
String s1 = "";
int j = 0;
for (int i = 0; i < length; i++)
{
j = (int) (Math.random() * length);
s1 = j + "";
if (s.indexOf(s1) != -1)
{
i--;
continue;
}
s = s + " " + s1;
String a[]={"黑2","红2","方快2","梅花2","方三",} //太长老要写54个暂时写5个
System.out.println(a[j]);
}
}
public static void main(String[] args){
RandomTest M=new RandomTest() ;
;
M. oneMethod(5);
}
}
回复
更多评论
#
re: 作业答疑
2006-12-25 21:42
曾崇杰
想了N 天的问题,作业一直没有交.请高人指点.
司机这个类里面要求没有车,那在drive函数里面司机开什么呀.
回复
更多评论
#
re: 作业答疑
2009-03-29 15:15
tiny
要实现小球在往返弹动效果。。请问怎么修改,
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
public class GameFrame {
public GameFrame() {
Frame app = new Frame("GameFrame");
app.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
drawBall drawB = new drawBall();
app.add(drawB, BorderLayout.CENTER);
app.pack();
app.setVisible(true);
app.setLocationRelativeTo(null);
drawB.gameLoop();
}
public class drawBall extends JPanel implements Runnable {
private int x,dx;
private int y,dy;
private int diameter;
private int width;
private int heigth;
private Image im;
private Graphics dbg;
private Thread gamethread;
private static final int FPS=100;
public drawBall() {
x=100;y=100;
dx=0;dy=0;// 球的移动量
diameter=100;//半径
width=500;
heigth=500;
setBackground(Color.pink);
setPreferredSize(new Dimension(width, heigth));
}
public void gameStart(){
gamethread = new Thread(this);
gamethread.start();
}
public void gameLoop(){
while(true){
gameUpdate();
gameRender();
gamePaint();
}
}
public void gamePaint() {
Graphics g;
try {
g = this.getGraphics();
if (g != null && im != null) {
g.drawImage(im, 0, 0, null);
}
g.dispose();
} catch (Exception e) {
}
}
public void gameRender() {
if (im == null) {
im = createImage(width, heigth);
if (im == null) {
System.out.println("im is null");
} else {
dbg = im.getGraphics();
}
}
dbg.setColor(Color.pink);
dbg.fillRect(0, 0, width, heigth);
dbg.setColor(Color.blue);
dbg.fillOval(x, y, diameter, diameter);
}
public void gameUpdate() {
Random random = new Random();
switch (random.nextInt(4)) {
case 0:
x +=5;
break;
case 1:
x -=5;
break;
case 2:
y +=5;
break;
case 3:
y -=5;
break;
}
//x += dx; y += dy;
if(x>=width-diameter||x-diameter<=0) {
y+=dy;
x-=dx;
dx=(-dx);
}// 超出左右边界
if(dx>0){ x=x+dx+randomNum; dy=(-dy+randomNum); }
else { x=x+dx-randomNum; dy=(-dy-randomNum); }
else if (y>=heigth-diameter||y-diameter<=0){
y-=dy;
x+=dx;
dy=(-dy);
}// 超出上下边界
}
public void run() {
long beforeTime,timeDiff,sleepTime;
long period=1000/FPS;
beforeTime = System.currentTimeMillis();
while(true){
gameUpdate();
gameRender();
gamePaint();
timeDiff=(System.currentTimeMillis() - beforeTime)/1000000L;
sleepTime = period - timeDiff;
if(sleepTime<=0)
sleepTime=2;
try {
Thread.sleep(sleepTime);
} catch (InterruptedException ex) { }
beforeTime=System.currentTimeMillis();
System.out.println("sleepTime is:"+sleepTime);
}
}
}
public static void main(String[] args) {
new GameFrame();
}
}
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © Green