From 120b67a7e9b9f86ec551d0cdf5cd7370ba0f571d Mon Sep 17 00:00:00 2001 From: fumiama Date: Mon, 5 Apr 2021 22:53:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E9=A3=9F=E7=89=A9=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addfood.asm | 4 +++- append.asm | 9 --------- head.asm | 4 +++- main.asm | 28 ++++++++++------------------ snake.prg | Bin 1122 -> 1114 bytes 5 files changed, 16 insertions(+), 29 deletions(-) delete mode 100644 append.asm diff --git a/addfood.asm b/addfood.asm index d361361..89f26af 100644 --- a/addfood.asm +++ b/addfood.asm @@ -52,7 +52,9 @@ addfood: beq - cmp #cblk beq - - lda #csnk + cmp #crnd + beq - + lda #crnd dey sta (_ptr), y rts diff --git a/append.asm b/append.asm deleted file mode 100644 index 8788428..0000000 --- a/append.asm +++ /dev/null @@ -1,9 +0,0 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; append 增加蛇长 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -append: -.scope - inc c ; 蛇长加一 - ; 其他代码 - rts -.scend \ No newline at end of file diff --git a/head.asm b/head.asm index 2b5f825..22972ef 100644 --- a/head.asm +++ b/head.asm @@ -1,6 +1,7 @@ .alias cblk $66 ; 边框 .alias csnk $a0 ; 像素 .alias csps $20 ; 空白 +.alias crnd $51 ; 食物 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 按钮配置,调试时使用WASD控制 @@ -23,5 +24,6 @@ .alias field $0428 ; 蛇所在屏幕内存区 .data -.org $c000 +.org $c000 +.space eat 1 .text \ No newline at end of file diff --git a/main.asm b/main.asm index 26a9e29..e350a2a 100644 --- a/main.asm +++ b/main.asm @@ -5,9 +5,6 @@ main: .scope -.data -.space lopcnt 1 ; 循环次数计数 -.text `init jsr getchar ; 等待输入任意字符开始游戏 jsr erasehint ; 游戏开始,清空提示 @@ -18,28 +15,24 @@ main: jsr printfail jsr getchar rts - clc -* jsr judgefood ; 判断是否吃到食物 +* clc + lda #0 + sta eat + jsr judgefood ; 判断是否吃到食物 bcc + - jsr append + inc c ; 蛇长加一 + lda #1 + sta eat + jsr addfood * jsr calcscore ; 计算得分 jsr printscore ; 打印分数 lda #32 jsr delay ; 延时期间最后一个按键位于d lda d - beq ++ cmp #ed_g bne + rts -* sta d -* inc lopcnt - lda lopcnt - cmp #16 - bmi ----- - lda #0 - sta lopcnt - jsr addfood - jmp ----- +* jmp ---- .scend ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -50,7 +43,7 @@ main: jsr chrout lda #$00 sta s - lda #$00 + sta eat sta s + 1 ; 初始化分数为0 jsr printscore ; 打印分数 lda #csnk @@ -69,7 +62,6 @@ main: .require "hint.asm" .require "getchar.asm" .require "addfood.asm" -.require "append.asm" .require "delay.asm" .require "judge.asm" .require "move.asm" diff --git a/snake.prg b/snake.prg index 7d3a4bd100a146b3b1a816f48c4610ecec5b191d..a9f7847242c4dde7819e8e19b4b1cb0288a6f0af 100644 GIT binary patch delta 234 zcmaFFaf@R@aD6YsfmT+9bsQ@f^nPY-WmfRuQmE%z8QjXGAjYHcgiB#Hmx2qAgn|># z1a^g~TtJZoiIogMO$yFD6S$r+uVe(VUvVk8@_-CcP*CPs%5*aD0%L+t35UcYh6M}? zAO5dQTg0z$>HnzFq1#g}S%nBMj3cfrbjS33dJWH8Au%8UPz?jg=^p4@cT80BB1q_a_Wawo$ zpzxW?r+DHzaqdS8I1~bSGFD_LyqI{wlRKYNp_x-*C#M1{*JKq&E5?Ay@r-}D>bO>> zO=Mfis8BaKjY&;<{{k+Eo&uSa}U3x_LQM8l&jS1sxOF5)|(J?-e-E R$9JHI=Rm?U=E=$|<^Vm9ObY-2