Gamepanel

package 巴什博奕;
import javax.swing.*;

import javax.swing.Timer;
import java.awt.;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.
;
public class Gamepanel extends JPanel implements KeyListener,ActionListener {

int N;//表示总糖数
int m;//最多取多少糖
int a[] = new int[2];//表示两个选手
int p=1;
Random random = new Random();//随机生成
Timer timer = new Timer(100,this);
boolean isStart =false;//表示游戏开始
boolean isFail = false;//判断游戏结束
JTextField jtx=new JTextField(25);
//构造器
	public Gamepanel(){
		init();
		//获取键盘的监听事件
		this.setFocusable(true);
		this.addKeyListener(this);
		timer.start();//让时间动起来
	}
	//初始化

public void init(){
	
	N = random.nextInt(100);
	m = random.nextInt(10);
}
protected void paintComponent(Graphics g){
	super.paintComponent(g);//清屏
	this.setBackground(Color.red);//设置背景的颜色
	//Data.header.paintIcon(this, g, 25, 11);//画标志
	g.fillRect(0,0,900,720);//绘制游戏区域
	if(isStart==false){
		g.setColor(Color.red);
		g.setFont(new Font("微软雅黑",Font.BOLD,40));
		g.drawString("要开始了",350,350);
	}		
	if(isFail){
		//表述死亡
		g.setColor(Color.RED);
		g.setFont(new Font("微软雅黑",Font.BOLD,40));
		g.drawString("你输了", 300, 300);
	}
	g.drawString("游戏规则:", 10, 500);
	g.drawString("只有一堆n个物品,两个人轮流从这堆物品中取物", 10, 550);
	g.drawString("只有一堆n个物品,两个人轮流从这堆物品中取物", 10, 600);
	//画分
	g.setColor(Color.blue);
	g.setFont(new Font("微软雅黑",Font.BOLD,18));
	g.drawString("N总糖数"+N, 200, 100);
	g.drawString("m最多取的糖"+m, 200, 200);
	g.drawString("人取"+a[1], 200,300);
	g.drawString("机器取"+a[0], 200, 400);
}
@Override
public void keyPressed(KeyEvent e) {
	// TODO Auto-generated method stub
	int keyCode  = e.getKeyCode();
	if(keyCode==KeyEvent.VK_SPACE){
		if(isFail){//失败,游戏再来一次
			isFail=false;
			init();//重新开始,初始化游戏
		}else{//暂停游戏
			isStart = !isStart;
		}
		//isStart = !isStart;
		repaint();//刷新页面
	}
	
	if(N%(m+1)==0){
		//此时人先取
		
	}else {
		//此时AL先取
		a[0]=N%(m+1);
		N  = N-a[0];
	}
	if(keyCode==KeyEvent.VK_1){
		p=1;
	}else if(keyCode==KeyEvent.VK_2){
		p=2;
	}else if(keyCode==KeyEvent.VK_3){
		p=3;
	}else if(keyCode==KeyEvent.VK_4){
		p=4;
	}else if(keyCode==KeyEvent.VK_5){
		p=5;
	}else if(keyCode==KeyEvent.VK_6){
		p=6;
	}else if(keyCode==KeyEvent.VK_7){
		p=7;
	}else if(keyCode==KeyEvent.VK_8){
		p=8;
	}else if(keyCode==KeyEvent.VK_9){
		p=9;
	}
}
@Override
public void actionPerformed(ActionEvent e) {
	//如果游戏处于开始状态,并且游戏没有结束
	if(isStart && isFail==false){
			if(p==1){
				a[0]=1;
				a[1]=(m+1)-a[0];
			}else if(p==2){
				a[0]=2;
				a[1]=(m+1)-a[0];
			}else if(p==3){
				a[0]=3;
				a[1]=(m+1)-a[0];
			}else if(p==4){
				a[0]=4;
				a[1]=(m+1)-a[0];
			}else if(p==5){
				a[0]=5;
				a[1]=(m+1)-a[0];
			}else if(p==6){
				a[0]=6;
				a[1]=(m+1)-a[0];
			}else if(p==7){
				a[0]=7;
				a[1]=(m+1)-a[0];
			}else if(p==8){
				a[0]=8;
				a[1]=(m+1)-a[0];
			}else if(p==9){
				a[0]=9;
				a[1]=(m+1)-a[0];
			}
			N = N - (m+1);
			if(N==0){//结束判断
				isFail=true;
		    }
		repaint();
	}
	timer.start();//让时间动起来
	
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}

}

你可能感兴趣的:(java)