Java游戏

导入Java . util . random;

导入javax . swing . *;

导入Java . awt . borderlayout;

导入Java . awt . container;

导入Java . awt . event . *;

公共类SmallGame扩展JFrame {

私有随机r;

私弦[]框= { "剪刀","石头","布" };

私有JComboBox选择;

私人JTextArea ta

二等兵JLabel lb

private int win = 0;

私有int loss = 0;

private int equal = 0;

公共小型游戏(){

initial();//调用初始方法,定义如下。这个方法主要是初始接口。

pack();

SetTitle(“游戏主界面”);

setDefaultCloseOperation(JFrame。EXIT _ ON _ CLOSE);

setLocation(400,300);

set visible(true);

}

公共静态void main(String[] args) {

new small game();

}

public void initial() {

r = new Random();//生成随机数

choice = new JComboBox();//初始化选择的下拉框。也就是你选择剪刀或者石头的下拉框。..

for(int I = 0;我& ltbox .长度;I++) {//为下拉框赋值。使用之前定义的私有String[] box = { "剪刀","石头","布" };附加价值。所以下拉框里有三个选项。..

choice . additem(box[I]);

}

ta =新JTextArea(3,15);//初始化文本字段3行15列。

ta . set editable(false);//这样用户就不能编辑那个文本字段,也就是说,他们不能在里面写东西。

JButton ok but = new JButton(" Push ");//创建新的按钮

好吧但是。AddActionListener(New Action Listener()){//向按钮添加监视器。这意味着监听这个按钮,看看用户是否点击了它...如果单击,则执行以下方法。

public void action performed(action event e){//就是这个方法。

ta . settext(get result());//为文本字段赋值...也就是说,显示结果的赋值是getResult()方法获得的返回值。这种方法将在下面讨论。

lb . settext(getTotal());//为分数的标签赋值...就是显示分数...赋值是getTotal()方法获得的返回值。

}

});

JButton clear but = new JButton(" clear score ");//创建一个新的带有清晰分数的按钮。

清楚但是。addactionlistener(new action listener(){//同上给他一个监视器。

public void action performed(action event e){//如果用户单击该方法,则执行该方法。

ta . settext(" ");//将值赋给文本字段作为“”...其实就是知道他的内容。

win = 0;//win赋给0。

损失= 0;//同上

等于= 0;//同上

lb . settext(getTotal());//给显示分数赋值...因为所有先前的值都被赋值为0..所以这句话的意思是显示分数全是0。

}

});

lb = new JLabel(getTotal());//初始化显示分数的东西。

JPanel choice panel = new JPanel();//定义一个面板..面板相当于画画的东西..你可以在上面添加按钮,文本字段什么的。..

choicePanel.add(选择);//将下拉框添加到面板。

choice panel . add(ok but);//将按钮添加到面板。

choice panel . add(clear but);//将“清除分数”按钮添加到面板中。

JScrollPane result panel = new JScrollPane(ta);//向可滚动面板添加文本字段...JScrollPane是一个可滚动面板...这样,如果文本字段中内容过多,就会出现一个滚动条...而不是变大。

JPanel total panel = new JPanel();//定义另一个面板...显示分数。..

total panel . add(lb);//给它添加显示分数的标签。

container content pane = getContentPane();//这里是布局。..

content pane . set layout(new BorderLayout());

contentPane.add(choicePanel,BorderLayout。北);

contentPane.add(resultPanel,BorderLayout。中心);

contentPane.add(totalPanel,BorderLayout。南);

}

Public String getResult() {//获取结果的方法返回一个字符串...该返回值将用于显示在文本字段中。

字符串tmp =

int box peop = choice . getselectedindex();//获取所选内容的索引...从0开始。..

int box comp = getbox comp();//从计算机中获取索引...这是一个0-2的随机数。

Tmp += "你出去:\ t "+box[box peop];//下面你应该明白了。..

tmp+= " \ n计算机输出:\ t "+box[box comp];

tmp+= " \ n result:\ t "+check(boxPeop,boxComp);

返回tmp

}

Public int getBoxComp() {//是生成一个0-2的随机数。..

返回r . nextint(3);//Random的nextInt(int i)方法是生成一个[0-i]的随机整数,所以nextInt(3)是一个[0-2]的随机数。

}

Public string check (int boxPeop,int box comp){//这是判断你的选择和计算机的选择的比较结果。这是一场胜利还是平局..Box peop是您的选择..盒子comp是电脑的选择。..

字符串结果= " ";

If(box peop = =(box comp+1)% 3){/(box comp+1)% 3如果计算机选择,将1相加并除以3得到余数...也就是说,如果计算机选择0,这就是1..这个判断意味着,如果计算机选择0,而你选择65438。

//private String[] box = { "剪刀","石头","布" };下标0..你选择了下标1...这意味着电脑选择剪刀,而你选择石头...所以你赢了...如果计算机选择1...(boxcomp+1)% 3是2...也就是说。

//电脑选了石头,你选了布...所以你赢了...在另一种情况下,你明白吗...只有三个案子,你赢了...所以它包括所有...也只有这三种情况。..

结果= "你赢了!";

win++;//如果赢了,记录赢的次数的变量加1。

} else if (boxPeop == boxComp) {//等于,当然是偶数。

Result = "扁平";

等于++;//同上

} else {//除了赢得和平,当然是失去。..

结果= "你输了!";

loss++;//同上

}

返回结果;

}

public int getPoint() {

return(赢输)* 10;

}

公共字符串getTotal() {

返回“赢:“+赢+”平局:“+等于+”输:“+输+”得分:

+getPoint();

}

}

我希望你能理解。。