文档详情

北京邮电大学_智能卡实验报告.docx

发布:2017-02-05约2.13万字共22页下载文档
文本预览下载声明
智能卡实验报告需求分析身份反馈:收到00 a0 00 00 00 0f时反馈由十位学号及6位的姓名组成的代码,所以我的是:2013211209C1F5B2A9CEC5。初始化:创立3X3棋盘存储空间(9位数组)默认存储为00,人下棋存储为01,电脑下棋存储为02。确定先后手:确定是人或机器先下。下棋过程:人将存储空间中数据更改为1,计算机将存储空间中数据更改为2。判断棋局情况:判断此时棋局状态为哪一方胜、和棋或者尚未完成。纠错机制:已下过棋子的位置,不允许重复落子。结束:当判断棋局状态为哪一方胜或者和棋时,游戏结束。设计系统结构图子程序流程图 身份反馈流程图 初始化流程图 人类先手流程图 人类后手流程图APDU命令设计表1 APDU命令设计功能CLAINSP1P2LCDATALE返回值身份反馈00a00000——102013211209C1F5B2A9CEC5初始化00a10300/01——0200 90 00—成功 电脑先手选0009 90 00—成功 人先手63 01—初始化失败下棋00a200-0800——0203 9000 成功落子未完01 9000 成功落子人赢了—02 9000 成功落子电脑赢了00 9000 成功落子和局 —6301 落子失败打印棋盘00a30000——080x 0x 0x 0x 0x 0x 0x 0x 0x 棋盘情况 测试数据选中/select 627570742e67616d652e31选中身份反馈/send 00a0000010身份反馈初始化/send 00a1030002初始化棋盘并人先手/send 00a1030102初始化棋盘并AI先手落字/send 00a2000002落字到左上角/send 00a2010002落字到第一行中间/send 00a2020002落字到右上角/send 00a2030002落字到中间靠左/send 00a2040002落字到中心/send 00a2050002落字到中间靠右/send 00a2060002落字到左下角/send 00a2070002落字到最后一行中心/send 00a2080002落字到右下角 打印棋盘/send 00a3000008关键代码游戏初始化模块: private void init(APDU apdu){byte[] buffer = apdu.getBuffer();//棋盘维数——报错if(buffer[ISO7816.OFFSET_P1] != (byte)0x03){ISOException.throwIt(WRONG_P1);}//先后手——报错if(buffer[ISO7816.OFFSET_P2] != (byte)0x01){if(buffer[ISO7816.OFFSET_P2] != (byte)0x00)ISOException.throwIt(WRONG_P2);} //将临时变量放进RAMboard=JCSystem.makeTransientByteArray((short) 9,JCSystem.CLEAR_ON_DESELECT);order=JCSystem.makeTransientByteArray((short)1,JCSystem.CLEAR_ON_DESELECT)[0];turn=JCSystem.makeTransientByteArray((short)1,JCSystem.CLEAR_ON_DESELECT)[0]; depth=JCSystem.makeTransientByteArray((short)1,JCSystem.CLEAR_ON_DESELECT)[0]; answer=JCSystem.makeTransientByteArray((short)1,JCSystem.CLEAR_ON_DESELECT)[0]; result=JCSystem.makeTransientByteArray((short)1,JCSystem.CLEAR_ON_DESELECT)[0]; this.board[0]=(byte)0x00;this.board[1]=(byte)0x00;this.board[2]=(byte)0x00;this.board[3]=(byte)0x00;this.board[4]=(byte)0x00;this.board[5]=(byte)0x00;this.board[6]=(byte)0x00;this.board[7]=(byte)0x00;this.board[8]=(byte)0x00; this.depth=(byte)0x09; this.order=(byte)0x09; this.turn=(byte)
显示全部
相似文档