本篇内容主要讲解“java如何实现简单三子棋游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java如何实现简单三子棋游戏”吧!
JOptionPane类的使用
编写程序,实现简单的三子棋游戏。在三子棋中,双方在3×3的棋盘中轮流下棋,一方用*示,另一方用O表示。如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜。如果棋盘已被棋子占满,但没有一方获胜则出现平局。在程序中,一方为用户,用户在界面上输入每次下棋的位置;另一方下棋的位置为随机自动生成。示例界面如图所示。
提示:(1) 采用Scanner类或者JOptionPane类中提供的方法输入,输出采用System.out中的方法或JOptionPane类提供的方法。 (2) 字符串处理可以使用String或StringBuffer类。
实现代码:
import java.util.Random;
import javax.swing.*;
public class Main {
public static boolean check(StringBuffer st,int pos){ //检查pos上的棋子有没有获胜
char des=st.charAt(pos);
char []s=new char[10];
for(int i=1;i<=9;i++) s[i]=st.charAt(i);
if((s[3]==des&&s[6]==des&&s[9]==des)||
(s[1]==des&&s[4]==des&&s[7]==des)||
(s[2]==des&&s[5]==des&&s[8]==des)||
(s[1]==des&&s[3]==des&&s[2]==des)||
(s[6]==des&&s[4]==des&&s[5]==des)||
(s[9]==des&&s[7]==des&&s[8]==des)||
(s[1]==des&&s[5]==des&&s[9]==des)||
(s[3]==des&&s[5]==des&&s[7]==des)) return true;
return false;
}
public static void main(String[] args) {
StringBuffer s= new StringBuffer("0123456789");
String tp;
for(int i=0;i<=5;){
int k=-1;
tp=JOptionPane.showInputDialog("---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"请输入落子位置(1~9):");
boolean f=true;
if(tp.length()==1){
k=tp.charAt(0)-'0';
if(k>=1&&k<=9){
if(s.charAt(k)>='1'&&s.charAt(k)<='9'){
i++; //有效下棋
f=false;
}
}
}
while(f){
tp=JOptionPane.showInputDialog("---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"输入错误,请重新输入落子的位置:");
if(tp.length()==1){
k=tp.charAt(0)-'0';
if(k>=1&&k<=9){
if(s.charAt(k)>='1'&&s.charAt(k)<='9'){
i++; //有效下棋
f=false;
}
}
}
}
//在k处落子
s.replace(k,k+1,"O");
if(check(s,k)){
//获胜
JOptionPane.showMessageDialog(null,"---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"恭喜你,你赢了!");
break;
}
//电脑随机落子
if(i==5) {
JOptionPane.showMessageDialog(null,"---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"平局!");
break;
}
Random rs=new Random();
k=rs.nextInt(9)+1;
while(k<1||k>9||s.charAt(k)=='*'||s.charAt(k)=='O') k=rs.nextInt(9)+1;
s.replace(k,k+1,"*");
if(check(s,k)){
//电脑胜
JOptionPane.showMessageDialog(null,"---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"你输了,再接再厉吧!");
break;
}
}
}
}
到此,相信大家对“java如何实现简单三子棋游戏”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。