From acd4bfe3164644f717d2f041025f98c28a81b6b5 Mon Sep 17 00:00:00 2001 From: fumiama Date: Tue, 13 Apr 2021 18:39:21 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=88=86=E6=95=B0=E4=B8=BA=E6=97=B6=E9=97=B4=EF=BC=8C=E6=9B=B4?= =?UTF-8?q?=E6=94=B9SCORE=E4=B8=BASNAKE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calcscore.asm | 4 +++- printscore.asm | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/calcscore.asm b/calcscore.asm index 03c2d0c..883ab42 100644 --- a/calcscore.asm +++ b/calcscore.asm @@ -4,5 +4,7 @@ calcscore: .scope inc s - rts + bne + + inc s+1 +* rts .scend \ No newline at end of file diff --git a/printscore.asm b/printscore.asm index 732ca8b..6c8acba 100644 --- a/printscore.asm +++ b/printscore.asm @@ -21,4 +21,4 @@ printscore: rts .scend -score_str: .byte "SCORE",0 \ No newline at end of file +score_str: .byte "SNAKE",0 \ No newline at end of file From df69598ec25d136224ad0ec72162bcf3620ec3f6 Mon Sep 17 00:00:00 2001 From: fumiama Date: Tue, 13 Apr 2021 18:40:37 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=BC=96=E8=AF=91=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- snake.prg | Bin 1059 -> 1063 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/snake.prg b/snake.prg index 28bdec9ef5d37352e299bf95a37a683cb418776d..d4c7059d195bf24865a9a297a698bf5ebab0eec5 100644 GIT binary patch delta 90 zcmZ3?v7BSVX;D$0j1?IQ4>=a`D_r`2>cX#tU_VFii4O`HMK=dAax;p9^o%v3m92$+0mDYN4{SgaPF(nw002iQBvk+a delta 86 zcmZ3^v6y4RX;DF*j1?IQ4>=a`D_r`2>cX#tU}yiJi4O`H1vdvVax;p9nH Date: Tue, 13 Apr 2021 20:43:08 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0judge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- judge.asm | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 162 insertions(+), 7 deletions(-) diff --git a/judge.asm b/judge.asm index 1e27090..dd69529 100644 --- a/judge.asm +++ b/judge.asm @@ -1,19 +1,174 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; 日期:2021-4-11 +; 食物:crnd $51 +; 墙:cblk $66 +; 像素:csnk +; 蛇头 (shead) +; 键入方向d(8bit)-> +; 宽38 高23 +;;;;;;;;;;;;;;;;;;;;撞墙伪码;;;;;;;;;;;;;;;;;;;;;;;;; +; ((shead) 与 d(new)运算)的位置的内容 CMP cblk +; 忘了 = ->sec +; 忘了 = ->clc +;;;;;;;;;;;;;;;;;;;撞自己伪码;;;;;;;;;;;;;;;;;;;;;;;; +; ((shead) 与 d(new)运算)的位置的内容 CMP csnk +; 忘了 = ->sev +; 忘了 = ->clc +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; judgeout 判断是否出界/撞到自身 ; 是->sec 即进位标志置1 ; 否->clc 即进位标志置0 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;关于指令cmp: +;;相等Z=1;不等Z=0 +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; judgeout: .scope - rts -.scend + lda d + ;;方向向上 + cmp #go_u + beq _gup + ;;方向向下 + cmp #go_d + beq _gdown + ;;方向向左 + cmp #go_l + beq _gleft + ;;方向向右 + cmp #go_r + beq _gright + jmp _End1 ;什么都没有撞 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;是否撞墙;是否考虑溢出情况;撞墙撞自己要不要分开写? +_gup: ;地址-40?实现:/减法/地址跳跃 + lda shead + sec + sbc #40 + sta _ptr + lda shead+1 + sbc #0 + sta _ptr+1 + ldy #0 + lda (_ptr),y + + cmp #cblk + beq _End2 + jmp _selfx + +_gdown: ldy #40 ;地址+40,好像有问题,这个(shead)是蛇头地址的地址了 拟修改:lda (取低位用啥来着)(shead),sec, adc #40, + lda (shead),y + cmp #cblk + beq _End2 + jmp _selfx + +_gleft: + lda shead + sec + sbc #1 + sta _ptr + lda shead+1 + sbc #0 + sta _ptr+1 + ldy #0 + lda (_ptr),y + + cmp #cblk + beq _End2 + jmp _selfx + +_gright:ldy #1 ;地址+1,好像有问题,这个(shead) 拟修改:lda (取低位用啥来着)(shead),sec,adc # + lda (shead),y + cmp #cblk + beq _End2 + +_selfx: cmp #csnk + beq _End2 + +;蛇没死 +_End1: clc + rts +;蛇死了 +_End2: sec + rts + +.scend +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; judgefood 判断是否吃到食物 ; 是->sec 即进位标志置1 ; 否->clc 即进位标志置0 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;食物伪码;;;;;;;;;;;;;;;;;;;;;;; +; ((shead) 与 d(new)运算)的位置的内容 CMP crnd +; 忘了 = ->sec +; 忘了 = ->clc +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + judgefood: .scope - rts + lda d + ;;方向向上 + cmp #go_u + beq _gup + ;;方向向下 + cmp #go_d + beq _gdown + ;;方向向左 + cmp #go_l + beq _gleft + ;;方向向右 + cmp #go_r + beq _gright + jmp _End1 ;输入了一个无效字符,,,,,? + +;是否撞墙;是否考虑溢出情况-不用;撞墙撞自己要不要分开写? +_gup: + lda shead + sec + sbc #40 + sta _ptr + lda shead+1 + sbc #0 + sta _ptr+1 + ldy #0 + lda (_ptr),y + + cmp #crnd + beq _End2 + bne _End1 + +_gdown: ldy #40 ;地址+40 + lda (shead),y + cmp #crnd + beq _End2 + bne _End1 + +_gleft: + + lda shead + sec + sbc #1 + sta _ptr + lda shead+1 + sbc #0 + sta _ptr+1 + ldy #0 + lda (_ptr),y + + cmp #crnd + beq _End2 + bne _End1 + +_gright:ldy #1 ;地址+1 + lda (shead),y + cmp #crnd + beq _End2 + +;没吃到 +_End1: clc + rts +;吃到了 +_End2: sec + rts + + .scend \ No newline at end of file