Java实现三子棋游戏

本文实例为大家分享了Java实现三子棋游戏的具体代码,供大家参考,具体内容如下

一、题目要求

编写程序,实现简单的三子棋游戏。在三子棋中,双方在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"
                     + "平局,还差一点哦");
        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现三子棋小游戏

    # 前言 之前在学习C语言的时候,做过一个三子棋的小游戏,最近开始学习Java,就想着能不能用Java再把之前的练习重新实现一边,既然有这个想法了,那就开始行动啦~. 再写的过程中,能感觉到面向过程语言和面向对象语言的一些差异.最让我头疼的是类的设计,感觉不仅得考虑功能得实现,还需要考虑类之间得逻辑关系,函数的功能是单一的,但函数与函数之间谈不上什么关系,你要用的上我,你就用,不用就拉倒.类在设计的时候需要考虑将哪些方法封装在哪个类当中,封装位置不合适,尽管也可能实现功能,但总感觉怪怪的.自己最

  • Java实现三子棋游戏

    本文实例为大家分享了Java实现三子棋游戏的具体代码,供大家参考,具体内容如下 一.题目要求 编写程序,实现简单的三子棋游戏.在三子棋中,双方在3×3的棋盘中轮流下棋,一方用*示,另一方用O表示.如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜.如果棋盘已被棋子占满,但没有一方获胜则出现平局.在程序中,一方为用户,用户在界面上输入每次下棋的位置:另一方下棋的位置为随机自动生成. 二.代码示例 import javax.swing.JOptionPane;   public class

  • Java实现三子棋小游戏简易版

    本文实例为大家分享了Java实现三子棋小游戏的具体代码,供大家参考,具体内容如下 游戏操作如图示: 原理: 主要借助3x3的二维数组 实现: 1.Main–主程序 public class Main {     public static void main(String[] args) {       Player player=new Player();//玩家       Game game=new Game(player);       //一次循环代表一次游戏       while

  • java实现简单三子棋游戏

    本文实例为大家分享了java实现简单三子棋游戏的具体代码,供大家参考,具体内容如下 JOptionPane类的使用 编写程序,实现简单的三子棋游戏.在三子棋中,双方在3×3的棋盘中轮流下棋,一方用*示,另一方用O表示.如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜.如果棋盘已被棋子占满,但没有一方获胜则出现平局.在程序中,一方为用户,用户在界面上输入每次下棋的位置:另一方下棋的位置为随机自动生成.示例界面如图所示. 提示:(1) 采用Scanner类或者JOptionPane类中提

  • C语言实现简易版三子棋游戏

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 什么是多文件? 多数大型的工程的头文件和源文件非常多,我们也不可能把所有的代码都写在同一个文件里,这样也不方便代码的阅读与维护,通常都会根据不同的功能将代码分别书写到多个源文件与头文件中. 游戏介绍 三子棋是个简单的双人游戏,双方在3X3的棋盘上轮流落子,当一条直线上出现三颗连续且相同的棋子时即获胜.此程序让玩家先落子,电脑在棋盘上随机落子.游戏结束时显示胜负,玩家可以选择是否继续玩游戏. 代码实现 chess.h 通

  • C语言实现三子棋游戏(初级版)

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 game.h #include<stdio.h> #include<stdlib.h> #include<time.h> #define ROW 3 #define COL 3 //声明函数 void InitBoard(char board[ROW][COL], int row, int col); //打印棋盘 void PrintBoard(char board[ROW][COL], i

  • C语言实现简单的控制台三子棋游戏

    用C语言实现简单的控制台三子棋游戏 首先,确定一局游戏的基本流程: 1.创建棋盘并初始化.(将棋盘看作一个二维数组) 2.打印显示出棋盘. 3.玩家落子(玩家通过输入行列坐标的方式来落子). 4.判定胜负关系.(如果玩家胜出,则退出游戏.) 5.电脑落子(随机位置落子) . 6.判定胜负关系(如果电脑胜出,退出游戏.否则,回到步骤 2 继续执行.) 第一步,此处通过构造menu()函数搭建一个简单的交互菜单和玩家交互,用来判断是否开始进行一局游戏. #define _CRT_SECURE_NO_

  • JavaSE实现三子棋游戏

    目录 main函数 棋盘模块设计 玩家模块设计 AI(电脑)模块设计 游戏模块设计 本文实例为大家分享了JavaSE实现三子棋游戏的具体代码,供大家参考,具体内容如下 用面向对象的思维把实现三子棋划分为四个模块: main函数 public class main {     public static void main(String[] args) {         player player1 = new player();         game game1 = new game(pl

  • C语言实现三子棋游戏

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<time.h> void chess_board(char arr[3][3]) //打印棋盘 { int i = 0; int j = 0; for (i = 0; i < 3; i++) { printf( " %c | %c | %c \n", arr [i][0], a

  • C语言实现简单三子棋游戏

    本文实例为大家分享了C语言实现简单三子棋游戏的具体代码,供大家参考,具体内容如下 游戏介绍:使用C语言中二维数组和函数的基本知识实现一个三子棋游戏,这个游戏要实现的基本功能有初始化棋盘.棋盘的打印.玩家下棋.电脑下棋.判断输赢. 代码框架: 1.头文件(game.h) #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<st

  • C语言实现简单的三子棋游戏

    C语言:三子棋游戏,供大家参考,具体内容如下 首先,我们从main函数开始写起,分析游戏的整体逻辑 int main() { int input=0; srand((unsigned int)time(NULL)); do { menu(); printf("请选择:"); scanf("%d",&input); switch(input) { case 1: game(); break; case 0: printf("退出游戏\n")

随机推荐