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) {}
}