- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
.model small.data;variables needed for snake bodyhead db '@', '$' ;head and body symbolstail db ' ', '$' ;tail part set color to blacksnake_length db 3 ; 1-2 body 3 tailcopy_snake_length db ? ;for loopsEnd db ?head_col db 40 ;starting col for snake head_row db 12 ;starting row for snake; snake movement algorithm; always copy the coordinates of the symbol in front.copy_col db ?copy_row db ?delaytime db 1;variable for control keysinput db ?.stack 100h.code;to delay timedelay proc mov ah, 00 int 1Ah mov bx, dxjmp_delay: int 1Ah sub dx, bx cmp dl, delaytime jl jmp_delay retdelay endp;make snake head go to the rightrighty proc cmp head_col,79 je resetposl zero: inc head_col jmp rightyie resetposl: mov head_col, 0 rightyie: mov dl,head_col mov dh,head_row xor bh, bh mov ah, 02h int 10h ret righty endpstartgame proc mov dh, 12 ;row mov dl, 40 ;column xor bh, bh mov ah, 02h int 10h mov dx, offset head mov ah, 09h int 21hretstartgame endpmov cl, head_rowmov copy_row,clmov cl, head_colmov copy_col, cl;print headmov dh, head_rowmov dl, head_colxor bh, bhmov ah, 02hint 10h mov dx, offset headmov ah, 09hint 21hmain proc mov ax, @data mov ds, ax ;set video mode mov al, 03h mov ah, 00h int 10h ;clear screen ;only need it once (reason no need to use function) mov ax, 0600h mov bh, 07h xor cx, cx mov dx, 184fh int 10h mov cx, 3200h ;stop cursor blinking mov ah, 01h int 10h;set start head snake in the middle of the screen call startgame;controlmov ah,00hint 16hmov input, 'd';to change direction or to keep on goinggetinput:mov ah, 01hint 16hjz keymov ah,00hint 16hmov input,al;control keyskey:;cmp input, 'w';je w ;cmp input, 's';je s ;cmp input, 'a';je a cmp input, 'd'je djne rakd: mov cl, head_row mov copy_row,cl mov cl, head_col mov copy_col, cl mov dh, head_row mov dl, head_col xor bh, bh mov ah, 02h int 10h mov al, tail mov bh, 0 mov bl, 000h mov cx, 1 mov ah, 09h int 10hmov cl, snake_lengthmov copy_snake_length, cldec copy_snake_lengthmov bl,0printbody:mov al, head_rowmov copy_row,almov al, head_colmov copy_col, alcall righty;print head;coordinates mov dh, head_row mov dl, head_col xor bh, bh mov ah, 02h int 10h ;printing "@" mov dx, offset head mov ah, 09h int 21h; inc copy_col to update the head.inc copy_colmov al,copy_colmov head_col,alinc bl; now loop to print other characterscmp bl,copy_snake_lengthjl printbodydec head_coljmp rakrak: call delayjmp getinputmov ax, 4c00hint 21hmain endpend main
如果您想尝试代码,请按 d 移动角色。
问题是,当它到达最后一列时,我的函数应该正确地将 head_col 更改为 0,这样它看起来就像到达了屏幕的末尾。不幸的是,它在第 80 列末尾遗漏了一个字符,然后继续打印但在下一行。
然后当它到达第 13 行的末尾时,它不会在 col 0 处留下一个字符,但仍然会下降到另一行,并且在 3 继续打印之后,它似乎又回到了原始行,然后当它到达起点它不再打印任何东西。
最佳答案
The problem is that when it reaches the last column, my function righty suppose to change head_col to 0 so that it looks like it reaches the end of the screen. Unfortunately, it leaves out one character at the end col 80 then it continues to print but in the next row.
您正在使用 DOS 函数 9 来显示您的蛇,但忘记了 DOS 使光标前进。您不应输入第 80 列。将 79 的限制更改为 78,看看问题是否消失。或者使用 BIOS 功能 9 来显示蛇头。您已经将它用于蛇尾。
关于assembly - 蛇形组件 8086 : not moving correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29459705/
C++ 中的标准“映射”容器允许您插入右值: T x; std::map m; // m[1]; // populate "1" auto it = m.insert(std::make_pair(
我们知道 std::move does not actually move anything .它只是将左值引用 (&) 转换为右值引用 (&&)。 那么在下面的例子中,拷贝构造函数是如何被调用的呢?
http://en.cppreference.com/w/cpp/language/rule_of_three 几个月前我开始使用 c++11并观看了五人规则。 所以..我开始将复制构造函数/复制赋值
这个问题在这里已经有了答案: In what scenarios should I expect to explicitly need to implement a move constructor
我有一个类似于下面的对象,我正在尝试为它实现一个 move 构造函数,这样你就可以为 std::vector 插入一个. struct Mesh { std::vector vPoint
这个问题在这里已经有了答案: How to create an std::function from a move-capturing lambda expression? (3 个回答) 关闭7年前
我有一个源文件,我正在使用它 move 到一个存档目录 关闭。 move (srcfile,dstdir) 但是当存档目标目录中已经存在相同的文件时,它会抛出一个错误,指出无法 move 文件已经存在
这应该有效,但无效并给出以下错误(如下)。 我读过几篇关于 stackoverflow 的帖子 here和 here但在这种情况下似乎没有一个好的答案。我真的希望我只是错过了一些愚蠢的东西,我已经在这
我似乎无法弄清楚为什么会这样。当我运行以下代码时: $uref = APACHE_ROOT . UPLOAD_PATH . $applicant . "_ref_{$email}_{$year}";
我似乎无法弄清楚为什么会这样。当我运行以下代码时: $uref = APACHE_ROOT . UPLOAD_PATH . $applicant . "_ref_{$email}_{$year}";
我的表格行可以上下 move ,但我的问题是数据表行取代了表格标题(第一行)。 我想要一个固定的第一行,这样当您单击向上箭头时,您就不会向上 move 该行来替换标题。 我尝试了一些条件逻辑来检查当前
正如我在Move constructor/operator=中询问的那样,过了一段时间,我同意并接受了这个问题的正确答案,我只是在想,是否有类似“移动析构函数” 这样的东西会在每次移动的对象上调用会有
如果我有一个像这样的 C 类: class C { std::string s; public: C(std::string& s) : s(s) {} C(std::str
我是 C++11 的新手,发现 move 语义和复制省略非常适合编写优雅高效的代码。不过我有一些问题想请教。这里我写了一个模板类 matrix.hpp 并用它来测试 move 语义的行为。 #incl
我在我们的项目中遇到了这样的代码: class A { public: A(A&& obj): valid_(false), data_(obj.data_) {} //... void
move 语义在这个例子中是如何工作的: struct test { int ii[10]; int i; }; test f() { test a; std::cou
假设我有一个类型为 A 的对象 a。 如果我想将其 move 到函数foo(A)。 一个选择是执行 foo(std::move(a)),这将调用 move 构造函数。 但是,假设我正在使用一个我无法控
我用 move 复制构造函数和 move 复制赋值运算符创建了一个简单的应用程序,并且在它们中的每一个上我都做了一个 cout 语句来告诉我,它们正在执行。但是在执行过程中,我没有看到 move 复制
相关问题: Why this move constructor is not called wtih rvalue temporary? [duplicate] Move Constructor vs
我正在努力研究 move 构造函数,并希望通过这个问题获得更多见解。这是一个简单的类。 class A { private: vector Bs; public: /* ..
我是一名优秀的程序员,十分优秀!