Java练习用Java写双人游戏简单四子棋
为了应付Java老师,借鉴了同学思想,自己动手敲了一个四子棋游戏。代码很不规范,为了赶时间。结果写的和C语言一样。源码在本文结尾处
首先看看游戏规则,
游戏规则
四子棋的棋盘共有6行7列,棋盘是垂直摆放,每名玩者有21只圆形棋子,以不同颜色辨别。两名玩者轮流每次把一只棋子放进棋盘任何未全满的一行中,棋子会占据一行中最底未被占据的位置。两名玩者任何一方先以四只棋子在横,竖或斜方向联成一条直线,便可获胜,游戏亦结束。假如棋盘已完全被棋子填满,但仍未有任何一方成功把四只棋子成一直线,则成为和局。
棋盘
用了一个二维数组6*7的二维数组来构造棋盘。每次选择要下的行号行号即可。
isfour()
用来判断下的棋有没有连成四字,每次下完都判断一次。
judge()
用来判断所下的棋成功与否,即所下位置是否有棋和棋盘是否能放下
主要用了就这么多,只创建了一个类connect类来建立一个四子棋游戏。。。。
package connect;
import java.util.*;public class connect
{public static void main(String args[]){int start=0;int count=0;int count_max=42;connect_four one=new connect_four();one.display_board();do{System.out.println("请白子先行");Scanner in=new Scanner(System.in);int cow=in.nextInt();if(one.judge(cow, 1) == 1){start=1;count++;}else{start=0;}}while(start==0);one.display_board();System.out.println();int color=2;do{//one.getcolor();System.out.println("对手出棋");Scanner in=new Scanner(System.in);//int raw=in.nextInt();int cow=in.nextInt();if(one.judge(cow,color)==0){System.out.println("出棋失败,请重新出棋");}else{count++;if(one.is_four(cow, color, 0, 1)==1){if(color==1)System.out.print("\t\t\t\t圈圈");elseSystem.out.print("\t\t\t\t叉叉");System.out.print("胜出\n");one.display_board();System.out.println();return ;}if(color==2)color=1;else color=2;}one.display_board();}while(count<count_max);if(count==count_max){System.out.println("\t\t\t\t\t和局");one.display_board();System.out.println();}}}class connect_four
{private int flag=0; //private int max_i=6; //最大行private int max_j=7; //最大列private int row; //行值private int cow; //列值private int [] []chessboard_status=new int[6][7];//棋盘状态private int [] a = new int[7]; //列的行值private int chess_color; //棋子颜色public connect_four() //构造函数初始化棋盘{flag=0;max_i=6;max_j=7;row=0;cow=0;for(int i=0;i<max_i;i++){for(int j=0;j<max_j;j++){a[j] = 5;chessboard_status[i][j]=0;}}}public int judge(int j,int color){switch(j){case 0: if(a[j]>=0) {chessboard_status[a[j]][j]=color;a[j]--;break;}//二维数 //组存放else return 0; case 1: if(a[j]>=0) {chessboard_status[a[j]][j]=color;a[j]--;break;}else return 0;case 2: if(a[j]>=0) {chessboard_status[a[j]][j]=color;a[j]--;break;}else return 0;case 3: if(a[j]>=0) {chessboard_status[a[j]][j]=color;a[j]--;break;}else return 0;case 4: if(a[j]>=0) {chessboard_status[a[j]][j]=color;a[j]--;break;}else return 0;case 5: if(a[j]>=0) {chessboard_status[a[j]][j]=color;a[j]--;break;}else return 0;case 6: if(a[j]>=0) {chessboard_status[a[j]][j]=color;a[j]--;break;}else return 0;default: ;}return 1;}public int judge_status(int i,int j){if(i>-1&&i<max_i&&j>-1&&j<max_j)if(chessboard_status[i][j]==0)return 0;else if(chessboard_status[i][j]==1)return 1;//白色elsereturn 2;//黑色else return -1;//位置输入超框}public void getcolor(){if(flag==1)System.out.print("白棋");elseSystem.out.print("黑棋");System.out.println("\n");}public void display_board(){char a=1;char b=0;System.out.print(" ");for(int j=0;j<max_j;j++){System.out.print(j+" ");}System.out.println();for(int i=0;i<max_i;i++){for(int j=0;j<max_j;j++){if(j==0)System.out.print(i);switch(chessboard_status[i][j]){case 0: System.out.print(" *");break;case 1: System.out.print(" ○");break;case 2: System.out.print(" ×");break;}}System.out.println();}}public int is_four(int j,int color,int num,int direction){int m=a[j]+1,n=j;do{switch(direction){case 1: m=m+1;n=n;break;case 2: m=m+1;n=n-1;break;case 3: m=m;n=n-1;break;case 4: m=m-1;n=n-1;break;case 5: m=m-1;n=n;break;case 6: m=m-1;n=n+1;break;case 7: m=m;n=n+1;break;case 8: m=m-1;n=n-1;break;default :break;}if(judge_status(m,n)==color){num++;if(num==3){return 1;}}else {m=a[j]+1;n=j;num=0;direction++;}}while(direction!=9);if(num==3) return 1;else return 0;}
}
Java练习用Java写双人游戏简单四子棋相关推荐
- java四子棋实验报告_Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
游戏规则:双方轮流选择棋盘的列号放进自己的棋子, 若棋盘上有四颗相同型号的棋子在一行.一列或一条斜线上连接起来, 则使用该型号棋子的玩家就赢了! 程序实现游戏,并将每局的数据保存到本地的文件中 首先我 ...
- 基于LC3模拟器的简单游戏设计:简易四子棋
一.实验目的 分析和理解指定的需解决问题. 利用LC-3的汇编代码设计实现相关程序. 通过LC-3仿真器调试和运行相关程序并得到正确的结果. 二.实验内容 四子棋是一款普遍流行的简易型桌面游戏,据说, ...
- 四子棋 java_java智能四子棋人机大战游戏设计(附项目,以及原创PSD,设计文档)...
本项目是使用java技术+自创"假设下子"算法开发的人机大战四子棋游戏客户端. 具体项目,以及原创PSD,设计文档,在文件末尾的百度云连接. 一. 小组说明: 组名:CST 组长: ...
- 四子棋游戏--bingo game
最近自己编了一个四子棋的游戏.说明如下: 游戏简介: 一种常见的四子棋游戏,可以是人机对战,两人对战,或者网上对战. 游戏的双方轮流落子,每人持有21颗子.棋子共有6*7个位置,玩家的棋子总是落到 当 ...
- 深圳大学 计系1实验四—四子棋实验
实验要求 本实验需要在LC-3中实现简易版四子棋的游戏,两位选手通过键盘和输出窗口轮流交互操作,棋盘由6 X 6的网格组成. 游戏规则如下: 两位选手依次轮流落子: 选手不能悔棋: 有子的地方不能继续 ...
- python人机对战的实验步骤_人机对战初体验:Python实现四子棋游戏
继去年3月人机大战引发全球瞩目以来,围棋AI(人工智能)再度引发跨领域的关注:一个叫Master的围棋AI,几天时间,面对中日韩顶尖职业围棋选手,已取得60胜0败的恐怖战绩,展现出的围棋技艺已经到了人 ...
- 深圳大学计系汇编语言实验--四子棋游戏
题面 四子棋是个双人游戏,两人轮流下棋,棋盘由行和列组成的网格,每个选手每次下一个子直到两人中有一人的棋子连成一条水平线.垂直线或者是对角线. 本实验需要在LC-3中实现简易版四子棋的游戏,两位选手通 ...
- 人机对战初体验:Python基于Pygame实现四子棋游戏
人机对战初体验-四子棋游戏 继去年3月人机大战引发全球瞩目以来,围棋AI(人工智能)再度引发跨领域的关注:一个叫Master的围棋AI,几天时间,面对中日韩顶尖职业围棋选手,已取得60胜0败的恐怖战绩 ...
- 【原创】【程序小游戏】平面四子棋 C++
平面四子棋 事先声明: 代码是我自个儿写的,规则不是我发明的~~~~. 我觉得我真是太不务正业了! 规则 在一个7*12的棋盘里,下四子棋.只不过,这个棋盘是竖立着的,它的棋子是从上往下掉的. 比如说 ...
- 四子棋 freepython
四子棋,是黑白棋的一种.是一种益智的棋类游戏.黑白两方(也有其它颜色的棋子)在8*8的格子内依次落子.黑方为先手,白方为后手.落子规则为,每一列必须从最底下的一格开始.依此可向上一格落子.一方落子后另 ...
最新文章
- struts2 select 默认选中
- banana pi BPI-R1 原理图下载地址:
- [网络安全自学篇] 五十五.Windows系统安全之构建ROP链绕过DEP及原理详解
- 手机运行服务器无响应,《最强蜗牛》服务器无响应怎么办 服务器无响应解决方法...
- Bootstrap 响应式设计
- php有哪些程序结构,PHP常用控制结构
- java static 变量存在哪_Java中的静态方法和静态变量存储在哪里?
- totoisegit不显示对勾_暗黑2画质不满意?教你简单安装高分辨率补丁
- 华为HG255d刷石像鬼OpenWrt,体验强大的QOS功能
- 微信HOOK-微信逆向-微信公众号爬虫系统
- Android平台集成华为AGC性能管理服务问题处理指南
- 使用usb有线网卡u-boot无法ping通虚拟机
- WPS2019 Ubuntu可以插入公式
- vscode、windows快捷键
- 全国多年太阳辐射空间分布数据1981-2022年、气温分布数据、蒸散量数据、蒸发量数据、降雨量分布数据、日照数据、风速数据
- idea 运行单个main方法_idea如何运行main方法
- Elasticsearch相关操作梳理
- reset.css normalize.css,normalize与css reset的区别
- Linux共享内存使用常见陷阱与分析
- 计算机二级考试python+C语言通过记录
热门文章
- 齐齐哈尔大学计算机考研资料汇总
- vue3学习笔记一:createApp, ref, reactive, onMounted,computed
- linux 保存bmp 图片
- 如何用Java打开PDF文件
- python三国演义人物 统计分析_使用python统计《三国演义》小说里人物出现次数前十名,并实现可视化。...
- 2012 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
- 基本数据类型----Python初体验——Hello World
- 计算机登录界面怎么切换用户,windows10开机界面怎么切换用户
- ETF操作实战记录:2022-2-24
- 如何选用GPU云服务器?