java判断输赢代码 java判断输入几个数字

java程序设计,五子棋判断输赢#define MAX_LINE 15
#define MAX_ROW 15
int Map[MAX_LINE][MAX_ROW];
int CheckWin() //返回0表示都没赢,返回1表示白棋赢,返回2表示黑棋赢
{
int i,j,k;
int tmp;
/* 判断所有横行 */
for(i=0;iMAX_LINE;i)
{
for(j=0;jMAX_ROW-5;j)
{
tmp=Map[i][j];
if( tmp != 0)
{
for(k=1;k5;k)
if(Map[i][j k] != tmp)/* 判断Map[i][j 0]到Map[i][j 4]是否都相等(且不等于0) */
break;
if(k==6)
return tmp;
}
}
}
/* 判断所有纵行 */
for(i=0;iMAX_LINE-5;i)
{
for(j=0;jMAX_ROW;j)
{
tmp=Map[i][j];
if( tmp != 0)
{
for(k=1;k5;k)/* 判断Map[i 0][j]到Map[i 4][j]是否都相等(且不等于0) */
if(Map[i k][j] != tmp)
break;
if(k==6)
return tmp;
}
}
}
/* 判断所有斜行(撇) */
for(i=5;iMAX_LINE;i)
{
for(j=0;jMAX_ROW-5;j)
{
tmp=Map[i][j];
if( tmp != 0)
{
for(k=1;k5;k) /* 判断Map[i-0][j 0]到Map[i-4][j 4]是否都相等(且不等于0) */
if(Map[i-k][j k] != tmp)
break;
if(k==6)
return tmp;
}
}
}
/* 判断所有斜行(捺) */
for(i=0;iMAX_LINE-5;i)
{
for(j=0;jMAX_ROW-5;j)
{
tmp=Map[i][j];
if( tmp != 0)
{
for(k=1;k5;k)
if(Map[i k][j k] != tmp)/* 判断Map[i 0][j 0]到Map[i 4][j 4]是否都相等(且不等于0) */
break;
if(k==6)
return tmp;
}
}
}
return 0;
}
java五子棋源代码判断输赢 , 希望帮忙指出错误并完善判断5子连珠的方法
1:X相同
Y等差1
2:Y相同
X等差1
3:XY都等差1
假设你你确实是按照XY做的,那么 , 你将黑子的XY放在数组(ListINT,INT)里,白子也是 。
没落完一子
对数组里的进行排序,先按照X排,然后按照Y排 。每次只需要排最后一个就好了(可以不用LIST,其他方式也行 。) 。
判断结果
1:是否有5个差为1/0的X
2:是否有5个差为1/0的Y
1
2都满足 , 即获胜 。
玩家先输入一个数字,确定后系统在输入,按照游戏规则判断输赢的java代码怎么Scanner sc = new Scanner(System.in);//控制台输入数字
String i = sc.next();
int a = 0;
try {
a = Integer.parseInt(i);
System.out.println(a);
} catch (Exception e) {
System.out.println("输入的不是数字!请重新输入!");
}
double d = Math.random()*10;//随机生成0-10之间的数
System.out.println(d);
玩家输入一个数字使用控制台输入Scanner,系统输入则用Math随机生成数字 , 既然数字都有了,再根据需要的游戏规则去判断两个数字即可 。
JAVA五子棋判断输赢import java.awt.*;
import javax.swing.*;
public class ChessFrameextends JFrame{
private ChessPanel cp;
private ChessModel cm;
public ChessFrame(){
this.setTitle("五子棋");
cm=new ChessModel();
cp=new ChessPanel(cm);
this.add(cp);
}
public void showMe(){
this.setVisible(true);
this.setSize(480,400);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new ChessFrame().showMe();
}
}
----------------------------------------
import javax.swing.*;
public class ChessModel {
private int width,height;
private int x=0,y=0;
private int [][] arrMapShow;
private boolean isOdd,isExist;
public ChessModel(){
this.isOdd=true;
PaneInit(20,15);
}
private void PaneInit(int width,int height){
this.width=width;
this.height=height;
arrMapShow=new int[width 1][height 1];
for(int i=0;i=width;i){
for(int j=0;jheight 1;j){
arrMapShow[i][j]=5;
}
}
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int[][] getArrMapShow() {
return arrMapShow;
}
public void setArrMapShow(int[][] arrMapShow) {
this.arrMapShow = arrMapShow;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public boolean getisOdd() {
return isOdd;
}
public void setisOdd(boolean isOdd) {
if(isOdd)
this.isOdd = true;
else
this.isOdd=false;
}
public boolean isExist() {
return isExist;
}
public void setExist(boolean isExist) {
this.isExist = isExist;
}
private boolean badxy(int x,int y){
if(x=width 20||x0)
return true;
return y=height 20||y0;
}
public boolean chessExist(int i,int j){
if(this.arrMapShow[i][j]==1||this.arrMapShow[i][j]==2)
return true;
return false;
}
public void redyplay(int x,int y){
if(badxy(x,y))
return;
if(chessExist(x,y))
return;
this.arrMapShow[x][y]=3;
}
public void play(int x,int y){
if(badxy(x,y))
return;
if(chessExist(x,y)){
this.isExist=true;
return;
}else
this.isExist=false;
if(getisOdd()){
setisOdd(false);
this.arrMapShow[x][y]=1;
}else{
setisOdd(true);
this.arrMapShow[x][y]=2;
}
}
//判断胜利java判断输赢代码的条件
public boolean judgeSuccess(int x,int y,boolean isodd){
int num=1;
int arrvalue;
int x_temp=x,y_temp=y;
if(isodd)
arrvalue=https://www.04ip.com/post/2;
else
arrvalue=https://www.04ip.com/post/1;
int x_temp1=x_temp,y_temp1=y_temp;
//判断右边
for(int i=1;i=6;i){
x_temp1 =1;
if(x_temp1this.width)
break;
if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)
num;
else
break;
}
//判断左边
x_temp1=x_temp;
for(int i=1;i=6;i){
x_temp1-=1;
if(x_temp10)
break;
if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)
num;
else
break;
}
if(num==5)
return true;
//判断上方
x_temp1=x_temp;
y_temp1=y_temp;
num=1;
for(int i=1;i=6;i){
y_temp1-=1;
if(y_temp10)
break;
if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)
num;
else
break;
}
//判断下方
y_temp1=y_temp;
for(int i=1;i=6;i){
y_temp1 =1;
if(y_temp1this.height)
break;
if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)
num;
else
break;
}
if(num==5)
return true;
//判断左上
x_temp1=x_temp;
y_temp1=y_temp;
num=1;
for(int i=1;i=6;i){
x_temp1-=1;
y_temp1-=1;
if(y_temp10 || x_temp10)
break;
if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)
num;
else
break;
}
//判断右下
x_temp1=x_temp;
y_temp1=y_temp;
for(int i=1;i=6;i){
x_temp1 =1;
y_temp1 =1;
if(y_temp1this.height || x_temp1this.width)
break;
if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)
num;
else
break;
}
if(num==5)
return true;
//判断右上
x_temp1=x_temp;
y_temp1=y_temp;
num=1;
for(int i=1;i=6;i){
x_temp1 =1;
y_temp1-=1;
if(y_temp10 || x_temp1this.width)
break;
if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)
num;
else
break;
}
//判断左下
x_temp1=x_temp;
y_temp1=y_temp;
for(int i=1;i=6;i){
x_temp1-=1;
y_temp1 =1;
if(y_temp1this.height || x_temp10)
break;
if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)
num;
else
break;
}
if(num==5)
return true;
return false;
}
//五子成线后的提示
public void showSuccess(JPanel jp){
JOptionPane.showMessageDialog(jp,"java判断输赢代码你赢java判断输赢代码了java判断输赢代码 , 好厉害!","win",
JOptionPane.INFORMATION_MESSAGE);
new ChessFrame().showMe();
}
}
----------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.JPanel;
public class ChessPanel extends JPanel{
private int width, height;
private ChessModel cm;
public ChessPanel(ChessModel mm) {
cm = mm;
width = cm.getWidth();
height = cm.getHeight();
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e) {
int x=(e.getX()-10)/20;
int y=(e.getY()-10)/20;
cm.play(x,y);
repaint();
if(cm.judgeSuccess(x,y,cm.getisOdd())){
cm.showSuccess(null);
}
}
});
}
public void paintComponent(Graphics g){
super.paintComponent(g);
for(int j=0;j=height;j){
for(int i=0;iwidth;i){
int v=cm.getArrMapShow()[i][j];
draw(g,i,j,v);
}
}
}
public void setModel(ChessModel mm){
cm=mm;
width=cm.getWidth();
height=cm.getHeight();
}
public void draw(Graphics g,int i,int j,int v){
int x=20*i 20;
int y=20*j 20;
if(i!=widthj!=height){
g.setColor(Color.black);
g.drawRect(x, y, 20, 20);
}
if(i!=widthj!=height){
g.setColor(Color.black);
g.drawRect(x, y, 20, 20);
}
if(v==1){
g.setColor(Color.gray);
g.drawOval(x-8, y-8, 16, 16);
g.setColor(Color.black);
g.fillOval(x-8, y-8, 16, 16);
}
if(v==2){
g.setColor(Color.gray);
g.drawOval(x-8, y-8, 16, 16);
g.setColor(Color.white);
g.fillOval(x-8, y-8, 16, 16);
}
if(v==3){
g.setColor(Color.cyan);
g.drawOval(x-8, y-8, 316, 16);
}
}
}
三个类java判断输赢代码 , 可以直接使用了
一段java五子棋判断输赢的代码,谁能帮我分析以下它是怎么判断的?每一个for是一个方向java判断输赢代码,横竖4个斜方向
然后数到一个指定颜色java判断输赢代码的位置java判断输赢代码的话flag累加1java判断输赢代码,如果数到5就说明赢了java判断输赢代码,五子棋嘛
如果数到一个非指定颜色的位置(这时肯定没有数到5,不然就返回了),就把flag清0,不然不连续的5个也判断为赢就搞笑了
我想知道用Java编写的五子棋怎么判断输赢看坐标的位置x轴不变Y轴或-- 他们的颜色一样的 数量=5 就赢了; //横向
Y轴不变X轴或-- 他们的颜色一样的 数量=5就赢了; //纵向
X轴Y轴-- 或X轴--Y轴他们颜色一样 数量=5就赢了;
X轴Y轴或X轴--Y轴-- 他们颜色一样数量=5就赢了;//斜向
我也才看完视频教程:
代码:先把每个点放入2维数组里 定义一个 chess[x][y]
//这里的x,y是用mouseclick监听他的x,y 用arg0.getY(), arg0.getY() 方法取到的值
定义一个boolean类判断是否赢 flag
// 横向
boolean flag = false; //一开始不赢
int i1 = 1;//用他来循环第几个棋子
int count1 = 1; //用它来计数有多少个棋子连起来
while(chess[x][y] == chess[xi][y]){
i1;
count1;
}
while(chess[x][y] == chess[x - i][y]) {
i1;
count1;
}
if(count1 = 5){ flag = true; }//棋子=5就赢了 flag为true
//纵向
int i2 = 1;
int count2 = 1;
while(chess[x][y] == chess[x][yi]){
i2;
count2;
}
while(chess[x][y] == chess[x][y - i]) {
i2;
count2;
}
if(count2 = 5){ flag = true; }
//斜上
int i3 = 1;
int count3 = 1;
while(chess[x][y] == chess[xi][y - i]){
i3;
count3;
}
while(chess[x][y] == chess[x - i][yi]) {
i3;
count3;
}
if(count3 = 5){ flag = true; }
//斜下
int i4 =1;
int count4 = 1;
while(chess[x][y] == chess[xi][yi]){
i4;
count4;
}
while(chess[x][y] == chess[x - i][y - i]) {
i4;
count4;
}
if(count4 = 5){ flag = true; }
希望能帮到你,给你启发 。
还有什么疑问就自己去电驴上搜索 李兴华五子棋教学视频 , 里面吧方法和在一起写了一个简单的,不过这个很容易看懂 。
【java判断输赢代码 java判断输入几个数字】关于java判断输赢代码和java判断输入几个数字的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读