井字棋
来源:互联网 发布:最新java培训视频教程 编辑:程序博客网 时间:2024/05/17 00:55
题目内容:
嗯,就是视频里说的那个井字棋。视频里说了它的基本思路,现在,需要你把它全部实现出来啦。
你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长。比如n=3就表示是一个3x3的棋盘。然后,要读入n行,每行n个数字,每个数字是1或0,依次表示[0,0]到[n-1,n-1]位置上的棋子。1表示X,0表示O(大写字母O)。
你的程序要判断其中是否存在某一方获胜,获胜的条件是存在整行或整列或整条对角线或整条反对角线上是相同的棋子。如果存在,则输出代表获胜一方字母:X或O(大写字母X或O);如果没有任何一方获胜,则输出NIL(三个大写字母)。
注意:所给的棋盘上的棋子分布可能出现同一个棋子有多处满足获胜的条件,但是不会出现两种棋子都获胜的情况。
输入格式:
一个代表棋盘大小的数字n,后面跟上nxn个数字。
输出格式:
三种输出之一:
X
O
NIL
均为大写字母。
输入样例:
4
1 0 0 1
0 1 0 0
0 0 1 0
1 0 0 1
输出样例:
X
时间限制:500ms内存限制:32000kb
语言:JAVA
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int [][] board = new int[n][n]; int numofx =0; int numofo =0; boolean getbreak =false; for(int i=0 ;i<board.length; i++) { for(int j =0;j<board[i].length; j++) { board[i][j] = scan.nextInt(); } } //检查行,列 for(int i=0; i<board.length; i++) { numofx = 0; numofo = 0; for(int j = 0; j<board[i].length; j++) //行 { if(board[i][j] ==0) { numofo ++; } else numofx ++; } if(numofo == n || numofx ==n) { getbreak =true; break; } numofo=0; numofx=0; for(int j =0; j<board[i].length; j++) //列 { if(board[j][i]==0) { numofo++; } else numofx++; if(numofo == n || numofx ==n) { getbreak =true; break; } } } //交叉/反交叉 if(!getbreak) { numofo=0; numofx=0; for(int i=0; i<board.length; i++) { if(board[i][i] ==0) { numofo++; } else numofx++; } if(numofo==n || numofx ==n) { getbreak = true; } } if(!getbreak) { numofo=0; numofx=0; for(int i =0; i<board.length; i++) { if(board[i][n-1-i] ==0) { numofo++; } else numofx++; } if(numofo ==n|| numofx== n) { getbreak =true; } } //输出 if(!getbreak) { System.out.print("NIL"); } else if(numofo ==n) { System.out.print("O"); } else System.out.print("X"); }}
0 0
- 井字棋
- 井字棋
- 井字棋
- 井字棋
- 井字棋
- 井字棋
- 井字棋
- 井字棋
- 井字棋
- 井字棋
- 【C++】井字棋
- 井字棋代码
- C井字棋
- 井字棋游戏
- 数组:井字棋
- Python 井字棋
- 立体井字棋
- 井字棋AI
- 22. Generate Parentheses(第六周)
- github上比较好用的第三方库
- 58到家入驻微信钱包的技术优化
- 自定义滚轮
- 给定K个有序序列,输出合并后有序序列
- 井字棋
- [LeetCode]349. Intersection of Two Arrays(两数组的交集)
- 一个低概率core dump问题的解决------static搞起
- Tensorflow--GPU/CPU/ contain variables in different devices
- spring+TestNG 单元测试
- 微信为啥不丢“离线消息”?
- 根据Hibernate映射文件和实体类生成数据库
- bootstrap table 主子表 局部数据刷新(刷新子表)
- solr入门学习