怎么用Java实现三子棋游戏
作者:归人云淡风轻
时间:2023-04-27
来源:互联网
浏览:0
一、题目要求编写程序,实现简单的三子棋游戏。在三子棋中,双方在3×3的棋盘中轮流下棋,一方用*示,另一方用O表示。如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜。如果棋盘已被棋子占满,但没有一方获胜则出现平局。在程序中,一方为用户,用户在界面上输入每次下棋的位置;另一方下棋的位置为随机自动生成。二、代码示例importjavax.swing.JOptionPane;publicclassMain{publicstaticvoidmain(String[]args){char[]s
一、题目要求
编写程序,实现简单的三子棋游戏。在三子棋中,双方在3×3的棋盘中轮流下棋,一方用*示,另一方用O表示。如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜。如果棋盘已被棋子占满,但没有一方获胜则出现平局。在程序中,一方为用户,用户在界面上输入每次下棋的位置;另一方下棋的位置为随机自动生成。
二、代码示例
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
char []s=new char[9];
for(int i=0;i<9;i++) {
s[i]=(char)(i+49);
}
int i=0;
while(i++<5) {
String str=JOptionPane.showInputDialog("------------------\n"
+"| "+s[0]+" | "+s[1]+" | "+s[2]+" |\n"
+"| "+s[3]+" | "+s[4]+" | "+s[5]+" |\n"
+"| "+s[6]+" | "+s[7]+" | "+s[8]+" |\n"
+"------------------\n"
+ "请输入位置:");
while(str.length()==0||(str.charAt(0)-49)<0||(str.charAt(0)-49)>8) {
str=JOptionPane.showInputDialog("------------------\n"
+"| "+s[0]+" | "+s[1]+" | "+s[2]+" |\n"
+"| "+s[3]+" | "+s[4]+" | "+s[5]+" |\n"
+"| "+s[6]+" | "+s[7]+" | "+s[8]+" |\n"
+"------------------\n"
+ "输入错误,请重新输入:");
}
char index=str.charAt(0);
while(s[index-49]=='*'||s[index-49]=='o') {
str=JOptionPane.showInputDialog("------------------\n"
+"| "+s[0]+" | "+s[1]+" | "+s[2]+" |\n"
+"| "+s[3]+" | "+s[4]+" | "+s[5]+" |\n"
+"| "+s[6]+" | "+s[7]+" | "+s[8]+" |\n"
+"------------------\n"
+ "此位置已占用,请重新输入:");
index=str.charAt(0);
while(str.length()==0||(str.charAt(0)-49)<0||(str.charAt(0)-49)>8) {
str=JOptionPane.showInputDialog("------------------\n"
+"| "+s[0]+" | "+s[1]+" | "+s[2]+" |\n"
+"| "+s[3]+" | "+s[4]+" | "+s[5]+" |\n"
+"| "+s[6]+" | "+s[7]+" | "+s[8]+" |\n"
+"------------------\n"
+ "输入错误,请重新输入:");
}
}
s[index-49]='*';
if((s[0]=='*'&&s[3]=='*'&&s[6]=='*')||
(s[1]=='*'&&s[4]=='*'&&s[7]=='*')||
(s[2]=='*'&&s[5]=='*'&&s[8]=='*')||
(s[0]=='*'&&s[1]=='*'&&s[2]=='*')||
(s[3]=='*'&&s[4]=='*'&&s[5]=='*')||
(s[6]=='*'&&s[7]=='*'&&s[8]=='*')||
(s[0]=='*'&&s[4]=='*'&&s[8]=='*')||
(s[2]=='*'&&s[4]=='*'&&s[6]=='*'))
{
JOptionPane.showMessageDialog(null, "------------------\n"
+"| "+s[0]+" | "+s[1]+" | "+s[2]+" |\n"
+"| "+s[3]+" | "+s[4]+" | "+s[5]+" |\n"
+"| "+s[6]+" | "+s[7]+" | "+s[8]+" |\n"
+"------------------\n"
+ "恭喜你赢了");
break;
}
int b=(int)(Math.random()*9);
while(s[b]=='*'||s[b]=='o')
{
b=(int)(Math.random()*9);
}
s[b]='o';
if((s[0]=='o'&&s[3]=='o'&&s[6]=='o')||
(s[1]=='o'&&s[4]=='o'&&s[7]=='o')||
(s[2]=='o'&&s[5]=='o'&&s[8]=='o')||
(s[0]=='o'&&s[1]=='o'&&s[2]=='o')||
(s[3]=='o'&&s[4]=='o'&&s[5]=='o')||
(s[6]=='o'&&s[7]=='o'&&s[8]=='o')||
(s[0]=='o'&&s[4]=='o'&&s[8]=='o')||
(s[2]=='o'&&s[4]=='o'&&s[6]=='o'))
{
JOptionPane.showMessageDialog(null, "------------------\n"
+"| "+s[0]+" | "+s[1]+" | "+s[2]+" |\n"
+"| "+s[3]+" | "+s[4]+" | "+s[5]+" |\n"
+"| "+s[6]+" | "+s[7]+" | "+s[8]+" |\n"
+"------------------\n"
+ "失败了,再接再励");
break;
}
}
if(i==6) {
JOptionPane.showMessageDialog(null, "------------------\n"
+"| "+s[0]+" | "+s[1]+" | "+s[2]+" |\n"
+"| "+s[3]+" | "+s[4]+" | "+s[5]+" |\n"
+"| "+s[6]+" | "+s[7]+" | "+s[8]+" |\n"
+"------------------\n"
+ "平局,还差一点哦");
}
}
}
作者最新文章
荣耀MagicOS 11发布计划与Agent Harness架构解析
2026-09-08 19:23
AI重构企业业务架构:超聚变“智企”范式核心解析
2026-09-08 18:39
PDF合并工具怎么选?在线合并5步实操指南
2026-09-04 17:05
PDF图片压缩工具推荐与批量处理实操指南
2026-09-03 12:14
照片如何转成PDF格式?三种图片转PDF操作方法
2026-09-03 11:04
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















