井字棋游戏初步完成
实现功能:输入位置数据->打印棋盘->判断是否胜利->继续游戏/退出游戏
缺点:没有清屏函数   判断胜利方法太过无脑 
 
 package MYGAME;

 import java.util.Scanner;

 public class Mygame {
static int winnerx = 0;
static int winnero = 0;
static int row; // 行
static int rank; // 行
static int[][] x = new int[3][3]; // X玩家的棋子
static int[][] o = new int[3][3]; // O玩家的棋子 public static void main(String[] args) {
inputmap();
for (int p = 0; p < 9; p++) {
if (p % 2 == 1) {
oplay();
if (winnero==1){
System.out.println("o选手胜利");
break;
}
} else {
xplay();
if (winnerx==1){
System.out.println("x选手胜利");
break;
}
}
}
System.out.println("游戏结束");
} // 输出棋盘
public static void inputmap() {
System.out.println(" ");
for (int m = 0; m < 3; m++) {
for (int n = 0; n < 3; n++) {
if (x[m][n] == 1) {
System.out.print("x|");
} else if (o[m][n] == 1) {
System.out.print("o|");
} else {
System.out.print(" |");
}
}
System.out.println(" ");
}
} // x选手开始下棋
public static void xplay() {
Scanner input = new Scanner(System.in);
System.out.print("轮到x选手下棋\n");
System.out.print("请选择第几行\n");
row = input.nextInt() - 1;
System.out.print("请选择第几列\n");
rank = input.nextInt() - 1;
x[row][rank] = 1;
inputmap();
win();
} // o选手开始下棋
public static void oplay() {
Scanner input = new Scanner(System.in);
System.out.print("轮到o选手下棋\n");
System.out.print("请选择第几行\n");
row = input.nextInt() - 1;
System.out.print("请选择第几列\n");
rank = input.nextInt() - 1;
o[row][rank] = 1;
inputmap();
win();
} // 手动清屏=。=
public static void cleanscreen() {
for (int i = 0; i < 50; i++) {
System.out.println("");
}
} //判断是否胜利
public static void win() {
if (
(x[0][0] == 1 & x[1][0] == 1 & x[2][0] == 1)||
(x[0][1] == 1 & x[1][1] == 1 & x[2][1] == 1)||
(x[0][2] == 1 & x[1][2] == 1 & x[2][2] == 1)||
(x[0][0] == 1 & x[0][1] == 1 & x[0][2] == 1)||
(x[1][0] == 1 & x[1][1] == 1 & x[1][2] == 1)||
(x[2][0] == 1 & x[2][1] == 1 & x[2][2] == 1)||
(x[0][0] == 1 & x[1][1] == 1 & x[2][2] == 1)||
(x[0][2] == 1 & x[1][1] == 1 & x[2][0] == 1)
){
winnerx=1;
}
if (
(o[0][0] == 1 & o[1][0] == 1 & o[2][0] == 1)||
(o[0][1] == 1 & o[1][1] == 1 & o[2][1] == 1)||
(o[0][2] == 1 & o[1][2] == 1 & o[2][2] == 1)||
(o[0][0] == 1 & o[0][1] == 1 & o[0][2] == 1)||
(o[1][0] == 1 & o[1][1] == 1 & o[1][2] == 1)||
(o[2][0] == 1 & o[2][1] == 1 & o[2][2] == 1)||
(o[0][0] == 1 & o[1][1] == 1 & o[2][2] == 1)||
(o[0][2] == 1 & o[1][1] == 1 & o[2][0] == 1)
){
winnero=1;
}
} }

Java 小游戏 - 井字棋 v1.0 (初步完成) (2018.4.16更新)的更多相关文章

  1. Pascal小游戏 井字棋

    一个很经典的井字棋游戏 Pascal源码Chaobs奉上 注意:1.有的FP版本不支持汉语,将会出现乱码.2.别想赢电脑了,平手不错了. 井字过三关: program TicTacToe; uses ...

  2. C++小游戏——井字棋

    #include<cstdio> #include<windows.h> #include<ctime> int main() { srand(time(NULL) ...

  3. Java实现简单井字棋

    Java第一次实验,老师让做一个井字棋,电脑随机下棋. 然后就想能不能聪明一点,可以判断出走哪一步棋:然后只能做到不会输,还是不够聪明,只能呆板地堵住用户,smartRobot的第三个判断逻辑找不到最 ...

  4. python 游戏(井字棋)

    1. 游戏思路和流程图 实现功能,现实生活中的井字棋玩法 游戏流程图 2. 使用模块和游戏提示 import random def game_info(): print('欢迎来到井字棋游戏') pr ...

  5. [HTML5实现人工智能]小游戏《井字棋》发布,据说IQ上200才能赢

    一,什么是TicTacToe(井字棋)   本 游戏 为在下用lufylegend开发的第二款小游戏.此游戏是大家想必大家小时候都玩过,因为玩它很简单,只需要一张草稿纸和一只笔就能开始游戏,所以广受儿 ...

  6. 『HTML5实现人工智能』小游戏《井字棋》发布,据说IQ上200才能赢【算法&代码讲解+资源打包下载】

    一,什么是TicTacToe(井字棋) 本游戏为在下用lufylegend开发的第二款小游戏.此游戏是大家想必大家小时候都玩过,因为玩它很简单,只需要一张草稿纸和一只笔就能开始游戏,所以广受儿童欢迎. ...

  7. Java井字棋游戏

    试着写了一个井字棋游戏,希望各位能给予一些宝贵的建议. 一.棋盘类 package 井字棋游戏; public class ChessBoard { private int number; Perso ...

  8. 井字棋小游戏(C语言)

    最近沉迷于<NetHack>.<DCSS>等字符游戏,对其很感兴趣,于是用C语言写了个字符界面的井字棋小游戏.欢迎大家指教. 编写时遇到了一些问题,我原先准备用循环,直到读取到 ...

  9. 程序设计入门—Java语言 第五周编程题 2井字棋(5分)

    2 井字棋(5分) 题目内容: 嗯,就是视频里说的那个井字棋.视频里说了它的基本思路,现在,需要你把它全部实现出来啦. 你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长.比如n ...

随机推荐

  1. 体感在js中的调用

    体感技术,在于人们可以很直接地使用肢体动作,与周边的装置或环境互动,而无需使用任何复杂的控制设备,便可让人们身临其境地与内容做互动. 体感分为三大类: 惯性感测:主要是以惯性传感器为主,例如用重力传感 ...

  2. 【ST开发板评测】使用Python来开发STM32F411

    前言 板子申请了也有一段时间了,也快到评测截止时间了,想着做点有意思的东西,正好前一段时间看到过可以在MCU上移植MicroPython的示例,就自己尝试一下,记录移植过程. MicroPython是 ...

  3. 【ZJOI 2014】力

    Problem Description 给出 \(n\) 个数 \(q_i\),给出 \(F_j\) 的定义如下: \[F_j=\sum_{i<j} \frac{q_iq_j}{(i-j)^2} ...

  4. three.js通过canvas实现球体世界平面地图

    概况如下: 1.SphereGeometry实现自转的地球: 2.THREE.CatmullRomCurve3实现球体线条地图点确定: 3.THREE.Math.degToRad,Math.sin,M ...

  5. Locust压测结果准确性验证

    最近闲着没事做,就重新研究了一下基于python语言的Locust性能测试框架 发现在压测的过程中,虽然设置了100并发,但是通过实际监控,完全看不到100并发压测的效果 通过代码AOP日志监控接口的 ...

  6. 假设高度已知,请写出三栏布局,其中左右各为300px 中间自适用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 对cookie-parser的理解(签名、加密)

    1.为什么说要利用签名防止cookie被恶意篡改 我们在浏览器输入用户名和密码发送post请求到后端服务器,后端服务器验证合法,返回响应,并Set-Cookie为sessionid=***;usern ...

  8. 《数据挖掘导论》实验课——实验一、数据处理之Numpy

    实验一.数据处理之Numpy 一.实验目的 1. 了解numpy库的基本功能 2. 掌握Numpy库的对数组的操作与运算 二.实验工具: 1. Anaconda 2. Numpy 三.Numpy简介 ...

  9. 【python3基础】python3 神坑笔记

    目录 os 篇 os.listdir(path) 运算符篇 is vs. == 实例 1:判断两个整数相等 实例 2:argparse 传参 实例 3:np.where 命令行参数篇 Referenc ...

  10. JVM-10-JAVA 四种引用类型

    JAVA  四中引用类型   1.  强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用. 当一个对象被强引用变量引用时,它处于可达状态,不可能被垃圾回 ...