Java 8.9 游戏:井字游戏(C++Java)
思路框架同8.20 :
C++:
#include<iostream>
#include<string>
using namespace std;
class Chess {
public:Chess(); //初始化成员数据void show(); //显示棋盘int input(int x,int y,int key); //下棋int judge(int x,int y); //判断结果string C[2] = { "X","O" };
private:string Graph[3][3];int R = 9; //棋盘剩余空格
};
Chess::Chess(){for (int i = 0; i < 3; i++) { //初始化Graphfor (int j = 0; j < 3; j++) {Graph[i][j] = " "; }}
}
void Chess::show(){for (int i = 0; i<3 ; i++) {cout << "-------------" << endl;cout << "|";for (int j = 0; j < 3; j++) cout <<" "<< Graph[i][j] << " |";cout << endl;}cout << "-------------" << endl;
}
int Chess::input(int x,int y,int key) {if (y > 3 || y < 0){ //越界检测cout << "y is out of range[0,6]" << endl;return 1;}if (x > 3 || x < 0) {cout << "x is out of range" << endl;return 1;}if (Graph[x][y] != " ") { //不能在同一格下棋cout << "(" << x << "," << y << "): has exist" << endl;return 1;}Graph[x][y] = C[key % 2]; //赋值R--; //剩余格子减一return 0;
}
int Chess::judge(int x,int y) {int kx[8] = { 0, 1, 1, 1 }, //八个方向(4个正方向,另外4个负方向取反)ky[8] = { 1, 1, 0,-1 };int a, b, count = 0;for (int i = 0; i < 4; i++) { //八个方向检测a = x; //数据初始化b = y;count = 0;for (int j = 0; j < 2; j++) { //检测四个正方向a += kx[i];b += ky[i];if (b > 2 || a > 2 || a < 0 || b < 0 || Graph[a][b] == " ") //边界检测break;if (Graph[a][b] == Graph[x][y] )count++;}a = x;b = y;for (int j = 0; j < 2; j++) { //检测四个负方向a -= kx[i];b -= ky[i];if (b > 2 || a > 2 || a < 0 || b < 0 || Graph[a][b] == " ") //边界检测break;if (Graph[a][b] == Graph[x][y])count++;}if (count == 2) //四子相连,此人胜出return 1;}if(R==0)return -1;return 0;
}
int main() {Chess myChess;myChess.show();int x,y,key;for (int i = 0;;) { //i奇偶决定颜色cout << "Enter a row (0, 1 or 2) for player "<< myChess.C[i % 2] <<": ";cin >> x;cout << "Enter a column (0, 1 or 2) for player " << myChess.C[i % 2] << ": ";cin >> y;if (myChess.input(x, y, i)) //bug检测continue;system("cls"); //清屏myChess.show();key = myChess.judge(x, y); //key判断输赢,平局if (key==1) {cout << myChess.C[i % 2] << " player won" << endl;break;}else if (key == -1) {cout << "Chess draw" << endl;break;}i++;}
return 0;
}
Java:
请自己写
转载于:https://www.cnblogs.com/F-itachi/p/9974348.html
Java 8.9 游戏:井字游戏(C++Java)相关推荐
- java格斗代码_一款Java网络格斗游戏源码JAVA游戏源码下载
一款JAVA网络格斗游戏,分服务端和游戏端,通过这个源代码你能够了解到用JAVA编写网络服务端的实例,还可了解到JAVA游戏的显示类.游戏控制类.游戏界面绘制类和声音调用类等. 一款Java网络格斗游 ...
- java吃豆游戏_利用java编写的精灵吃豆的游戏
学完线程的时候做了一个精灵吃豆的小游戏. 窗体类: package www.csdn.net.zuoye; //用窗体实现精灵吃豆子的小游戏 import java.awt.Color; import ...
- java d打字游戏_练习--java实现的打字游戏
[实例简介] 简单的打字游戏.分别用单线程和多线程两种方式实现,多线程没有同步. [实例截图] [核心代码] 打字游戏 └── 打字游戏 ├── bin │ └── com │ └── qsl ...
- java实现stg游戏_一些Java小游戏源码
一些Java小游戏源码 2016-04-18·Mr.Xia 10092 次浏览 ## SRPGWar(黄金护卫队) 链接:[http://pan.baidu.com/s/1c2BHZUS](http: ...
- java web小游戏_用java web小游戏源代码。期末结课老师让做,急用,谢了
展开全部 import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import javax. ...
- java实现大富翁游戏(附完整源码)
java实现大富翁游戏 以下是 Java 实现大富翁游戏的完整源码: import java.util.Random; import java.util.Scanner;public class Mo ...
- java实现军旗游戏(附完整源码)
java实现军旗游戏 以下是Java实现军旗游戏的完整源码: import javax.swing.*; import java.awt.*; import java.awt.event.MouseA ...
- linux java脚本怎么写,linux 执行java脚本
linux 执行java脚本 [2021-02-02 20:32:43] 简介: linux停止php的方法:首先在后台执行命令"sudo ps -ef|grep php":然后 ...
- 井字游戏java代码_井字游戏(java)
井字游戏(java) 井字游戏(java) 分析:游戏方式只有赢和平两种方式 赢:有一方有3个连成一条线就赢了(横,竖,对角线).想要赢填子的数量必须大于等于5,所以填前面4个格子时不需要判断. 考虑 ...
- java通用象棋游戏_在通用国际象棋界面周围模拟GraphQL包装器
java通用象棋游戏 The Universal Chess Interface (UCI) has been around a long time and used by many chess en ...
最新文章
- OpenCV中的霍夫线变换、概率霍夫线变换
- 蓝桥杯C++ AB组辅导课
- Iterator、Iterable接口的使用及详解
- 在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类
- win7与linux共享文件夹共享,Ubuntu+Win7+Samba实现文件共享
- kafka一直rebalance故障,重复消费
- SQL查询中having和where的异同点
- 全排列算法解析(视频+详解+代码+STL)
- response.setcontenttype的參数
- 使用字节流复制一个文件夹
- 队列在层次遍历中的应用
- 并发设计模式之Guarded Suspension模式
- C++基础::运算符重载
- html中火星文字体样式,火星文对照表
- matlab示波器的峰值测量,峰峰值定义_示波器峰峰值怎么看
- Smart3D系列教程5之 《案例实战演练2——大区域的地形三维重建》
- word安全模式解除方法
- KPI and evaluation decouple verification
- 重装系统后如何恢复mysql服务
- 解决大多数pip install出现Could not install packages due to an EnvironmentError错误