import java.awt.*;
import javax.swing.*;
public class ChessFrame extends 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;
}
}
//判断胜利的条件
public boolean judgeSuccess(int x,int y,boolean isodd){
int num=1;
int arrvalue;
int x_temp=x,y_temp=y;
if(isodd)
arrvalue=2;
else
arrvalue=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,"你赢了,好厉害!","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);
}
}
}
三个类,可以直接使用了
1、CELL:返回有关单元格格式、位置或内容的信息。
2、COUNTBLANK:计算区域中空单元格的个数。
3、ERROR.TYPE:返回对应于错误类型的数字。
4、INFO:返回有关当前操作环境的信息。
5、ISBLANK:如果值为空,则返回TRUE。
6、ISERR:如果值为除#N/A以外的错误值,则返回TRUE。
7、ISERROR:如果值为任何错误值,则返回TRUE。
8、ISEVEN:如果数为偶数,则返回TRUE。
9、ISLOGICAL:如果值为逻辑值,则返回TRUE。
10、ISNA:如果值为:#N/A错误值,则返回TRUE。
11、ISNONTEXT:如果值不是文本,则返回TRUE。
12、ISNUMBER:如果值为数字,则返回TRUE。
13、ISODD:如果数字为奇数,则返回TRUE。
14、ISREF:如果值为引用,则返回TRUE。
15、ISTEXT:如果值为文本,则返回TRUE。
16、N:返回转换为数字的值。
17、NA:返回错误值#N/A。
18、AND:如果所有参数为TRUE,则返回TRUE。
19、FALSE:返回逻辑值FALSE。
20、IF:指定要执行的逻辑检测。
21、NOT:反转参数的逻辑值。
22、OR:如果任何参数为TRUE,则返回TRUE。
23、TRUE:返回逻辑值TRUE。
24、ADDRESS:以文本形式返回对工作表中单个单元格的引用。
25、AREAS:返回引用中的区域数。
26、CHOOSE:从值的列表中选择一个值。
27、COLUMN:返回引用的列号。
28、COLUMNS:返回引用中的列数。
29、HLOOKUP:查找数组的顶行并返回指示单元格的值。
30、HYPERLINK:创建快捷方式或跳转,打开存储在网络服务器、企业内部网或INTERNET上的文档。
扩展资料:
Excel函数则是Excel中的内置函数。Excel函数共包含11类,分别是数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。
Excel函数调用的参数可以是数字、文本、形如 TRUE 或FALSE的逻辑值、数组、形如 #N/A 的错误值或单元格引用。给定的参数必须能产生有效的值。参数也可以是常量、公式或其它函数。
你好!
需要做一下假设:假设A1=10800.00,需要再B1中显示是奇数还是偶数
那么B1=if(mod(round(A1,0)),2)=1,"奇数","偶数")
感觉这题更多的是在考虑 mod 这个取余的函数~
本文转载自互联网,如有侵权,联系删除