用面向过程写一个五子棋
来源:互联网 发布:360手机数据恢复 编辑:程序博客网 时间:2024/06/01 07:57
package com.lanou;
import java.util.Scanner;
public class WuZiQi {
//用面向过程的方法写一个五子棋,“1”代表白棋,“2”代表黑棋。
publicstatic void main(String[] args) {
//创建一个二维数组作为棋盘
int[][]cherker = new int[9][9];
for(int i = 0; i < cherker.length; i++) {
for(int j = 0; j < cherker[i].length - 1; j++) {
System.out.print(cherker[i][j]+ " ");
}
System.out.println();
}
intsum1 = 0;
intsum2 = 0;
inttemp = 0;
inttemp2 = 0;
//
while(true) {
//设定白棋的位置
Scannersc = new Scanner(System.in);
System.out.println("请输入白棋的横坐标:从0-" +(cherker.length - 1));
intwrow = sc.nextInt();
if(wrow < 0 || wrow > cherker.length - 1) {
System.out.println("白棋脱离棋盘");
return;
}
System.out.println("请输入白棋的纵坐标:从0-" +(cherker[wrow].length - 1));
intwcol = sc.nextInt();
if(wcol < 0 || wcol > cherker[wrow].length - 1) {
System.out.println("白棋脱离棋盘");
return;
}
//判断白棋落下的位置是否有棋子
if(cherker[wrow][wcol] == 0) {
cherker[wrow][wcol]= 1;
}else {
while(true) {
System.out.println("此操作无效,请重新输入白棋的横坐标:");
wrow= sc.nextInt();
if(wrow < 0 || wcol > cherker.length - 1) {
System.out.println("白棋脱离棋盘");
return;
}
System.out.println("此操作无效,请重新输入白棋的纵坐标:从0-" + (cherker[wrow].length - 1));
wcol= sc.nextInt();
if(wcol < 0 || wcol > cherker[wrow].length - 1) {
System.out.println("白棋脱离棋盘");
return;
}
if(cherker[wrow][wcol] == 0) {
cherker[wrow][wcol]= 1;
}
return;
}
}
//输入白棋后的棋面
intj = 0;
for(int i = 0; i < cherker.length; i++) {
for(j = 0; j < cherker[i].length - 1; j++) {
System.out.print(cherker[i][j]+ " ");
if(cherker[i][j] == 1 && cherker[i + 1][j] == 1 && cherker[i +2][j] == 1 && cherker[i + 3][j] == 1
&&cherker[i + 4][j] == 1) {
temp= 1;
}
else if (cherker[i][j] == 1 && cherker[i + 1][j + 1] == 1 &&cherker[i + 2][j + 2] == 1&&cherker[i + 3][j + 3] == 1 && cherker[i + 4][j + 4] == 1) {
temp= 2;
}
else if (cherker[i][j] == 1 && cherker[i][j + 1] == 1 &&cherker[i][j + 2] == 1 &&cherker[i][j + 3] == 1 && cherker[i][j + 4] == 1) {
temp= 3;
}
}
System.out.println();
}
sum1= sum1 + cherker[wrow][wcol];
if(temp == 1 || temp == 2 || temp == 3) {
System.out.println("白棋赢了,游戏结束");
return;
}
//判断白棋输赢
//设定黑棋的位置
System.out.println("请输入黑棋的横坐标:从0-" +(cherker.length - 1));
intbrow = sc.nextInt();
if(brow < 0 || brow > cherker.length - 1) {
System.out.println("黑棋脱离棋盘");
return;
}
System.out.println("请输入黑棋的纵坐标:从0-" +(cherker[brow].length - 1));
intbcol = sc.nextInt();
if(bcol < 0 || bcol > cherker[brow].length - 1) {
System.out.println("黑棋脱离棋盘");
return;
}
//判断黑棋落下的位置是否有棋子
if(cherker[brow][bcol] == 0) {
cherker[brow][bcol]= 2;
}else {
while(true) {
System.out.println("此操作无效,请重新输入黑棋的横坐标:");
brow= sc.nextInt();
if(brow < 0 || brow > cherker.length - 1) {
System.out.println("黑棋脱离棋盘");
return;
}
System.out.println("此操作无效,请重新输入黑棋的纵坐标:从0-" + (cherker[brow].length - 1));
bcol= sc.nextInt();
if(bcol < 0 || bcol > cherker[brow].length - 1) {
System.out.println("黑棋脱离棋盘");
return;
}
if(cherker[brow][bcol] == 0) {
cherker[brow][bcol]= 2;
}
return;
}
}
//判断黑棋输赢
for(int i = 0; i < cherker.length; i++) {
for(j = 0; j < cherker[i].length - 1; j++) {
System.out.print(cherker[i][j]+ " ");
if(cherker[i][j] == 2 && cherker[i + 1][j] == 2 && cherker[i +2][j] == 2 && cherker[i + 3][j] == 2
&&cherker[i + 4][j] == 2) {
temp2= 1;
}else if (cherker[i][j] == 2 && cherker[i + 1][j + 1] == 2 &&cherker[i + 2][j + 2] == 2
&&cherker[i + 3][j + 3] == 2 && cherker[i + 4][j + 4] == 2) {
temp2= 2;
}else if (cherker[i][j] == 2 && cherker[i][j + 1] == 2 &&cherker[i][j + 2] == 2
&&cherker[i][j + 3] == 2 && cherker[i][j + 4] == 2) {
temp2= 3;
}
}
System.out.println();
}
sum1= sum1 + cherker[wrow][wcol];
if(temp2 == 1 || temp2 == 2 || temp2 == 3) {
System.out.println("黑棋赢了,游戏结束");
return;
}
}
}
}
- 用面向过程写一个五子棋
- [001]新手,用java面向过程思维写的五子棋小游戏。
- 一个寒假写的五子棋
- 面向过程简单的五子棋逻辑
- 提高:写一个五子棋的游戏
- 面向对象与面向过程的“五子棋“诠释
- 用C#写的五子棋
- 面向过程写SQL
- 本人用 C 和 WinAPI 写的一个 带AI的五子棋
- 用C++写的五子棋 [转]
- 一个比较牛的Js写的五子棋
- 新手学java-运用数组写一个五子棋小程序
- 利于二维数组写一个五子棋,棋盘14x14
- 用面向过程写简单推箱子逻辑
- c#,用面向对象思想写一个计算器
- 用面向对象的思想写一个计算器
- 写了个五子棋
- 写五子棋游戏有感
- 十个JDBC的最佳实践
- CSU1215
- 读《程序员》2017年5期
- SFTPUtils工具类及使用
- Linux系统自己用到的一些基本命令总结(一)
- 用面向过程写一个五子棋
- easyui dialog属性
- jsonTree
- redis--内部结构--dict
- teaxtarea文本框剩余字数显示
- android studio如何开启与禁用版本控制VCS
- 【记忆化搜索】POJ
- mysql语句
- java内存管理与继承