命令贪吃蛇2_0

命令贪吃蛇2_0

游戏规则

  吃食物变长,撞到墙里或咬到自己死亡,占满全屏算赢。

代码

  运行前先把输入法调至英文!(我因为没调在测试时死了无数次)

  http://www.cnblogs.com/cbattle/p/6383867.html

过程 

  看了大佬推荐的博客( http://blog.sina.com.cn/s/articlelist_2233904382_0_1.html ),通过移动光标插入字符解决了频繁闪烁的问题。 

  

        Console.SetCursorPosition(2 * y, x);
        Console.Write(c);

  百度到可以隐藏光标的方法

Console.CursorVisible = false;

  

  输入后字母依旧存在。用空格遮盖。

  但是输入较快时个别字母跳至后面位置,无法清除。用了个笨办法,写了个循环,强行进行4次替换。

  后来发现每次计算光标跳转位置(x、y是反的,还有2倍关系)太麻烦,就写了个函数,实现跳转替换调回

  

        void draw(int x, int y, char c)
        {
            Console.SetCursorPosition(2 * y, x);
            Console.Write(c);
            Console.SetCursorPosition(0, _sca);
        }    

  把读取按键和移动写在一个循环里,运行是发现卡顿明显。用多线程解决。

        Thread th = new Thread(new ThreadStart(ReadKey));//Thread th = new Thread(new ThreadStart(fun_name));
        th.Start();

  想加入按下按键时的声音,用Console.Beep(),但是运行时延时严重,放弃了。

  运行时发现有一个回头的bug

    假设现在方向是向右,快速按上(w)左(a)或下(s)左(a)蛇会原路返回,撞向自己的身体,如果未吃任何食物,身体不够长,会穿透过去,有吃过食物就直接死了。

  后来发现是读取按键时间间隔小于移动时间间隔导致的。读取按键时间间隔不能比移动时间间隔大太多,会卡顿明显。故把读取按键时间间隔设为比移动时间间隔多

  1ms。

  字母bug(未解决)

    有时字母会直接出现在游戏框中

    大概是因为多线程造成的。光标跳到框内时正好输入

    尝试用一个bool型drawing来表示draw()函数的运行状态,drawing==true时不运行ReadKey,无效。没有读入,但是可以输入显示在屏幕上。

玩家体验

  偶尔会有bug,字母会显示出来。但是对游戏影响不大。

  

时间: 2024-10-11 07:43:34

命令贪吃蛇2_0的相关文章

c++命令行贪吃蛇

方向键控制贪吃蛇移动 1 #include <iostream> 2 #include <time.h> 3 #include <windows.h> 4 #include <conio.h> 5 6 using namespace std; 7 8 #define height 25 9 #define width 25 10 11 const int eachStep = height*width; 12 char road[height][width]

《结对-贪吃蛇游戏-开发环境搭建过程》

贪吃蛇开发环境搭建 Python和pygame的安装过程 成员0:2015035107074-孔令辉 成员1:2015035107067-张旭 1.去官网下载python和pygame.(需注意自己电脑是32位的还是64位的,我的是64位的,就下了个64位的) 2.安装pythone 和 pygame. 3.安装完成后,查看环境变量配置情况:计算机->属性->高级系统设置->环境变量->系统变量->Path. 4.在命令提示符中输入:python,验证是否安装成功,若提示是无

贪吃蛇—C—基于easyx图形库(1):基本控制函数 实现 画图程序

自从学了c语言,就一直想做个游戏,今天将之付之行动,第一次写的特别烂,各种bug:就不贴了.今天网上看了好几个贪吃蛇,重新写了一次,做出来的效果还可以. 下面是详细的构建过程,本节因为时间限制,先贴出比较重要的控制函数实现,并用它做一个很简单很简单很有趣的画图程序. 首先,要对贪吃蛇的结构有一个大概的了解:要有一个控制系统控制蛇上下左右移动,而且不能往反方向移动:要有食物产生系统,食物出现位置随机:吃到食物后蛇要变长:要有死亡判定系统...... 总结起来,就是这样: 我写的这个结构有点乱,不过

用Python写一个贪吃蛇

最近在学Python,想做点什么来练练手,命令行的贪吃蛇一般是C的练手项目,但是一时之间找不到别的,就先做个贪吃蛇来练练简单的语法. 由于Python监听键盘很麻烦,没有C语言的kbhit(),所以这条贪吃蛇不会自己动,运行效果如下: 要求:用#表示边框,用*表示食物,o表示蛇的身体,O表示蛇头,使用wsad来移动 Python版本:3.6.1 系统环境:Win10 类: board:棋盘,也就是游戏区域 snake:贪吃蛇,通过记录身体每个点来记录蛇的状态 game:游戏类 本来还想要个foo

javascript实现贪吃蛇

<html> <head> <style> body { background:#444; } .rect { border:1px solid #94F; width:680px; height:680px; } .gridred { width:38px; height:38px; background:red; border:1px #555 solid; float:left } .gridgreen { width:38px; height:38px; bac

结对编程 贪吃蛇项目-开发环境搭建过程

贪吃蛇开发环境搭建 Python和pygame的安装过程 1.去官网下载python和pygame.(需注意自己电脑是32位的还是64位的) 2.安装pythone 和 pygame. 3.安装完成后,查看环境变量配置情况:计算机->属性->高级系统设置->环境变量->系统变量->Path. 4.在命令提示符中输入:python,验证是否安装成功,若提示是无效的命令,重启计算机,再输入python验证. 5.在Python IDLE中输入import pygame和pygam

小项目特供 贪吃蛇游戏(基于C语言)

C语言写贪吃蛇本来是打算去年暑假写的,结果因为ACM集训给耽搁了,因此借寒假的两天功夫写了这个贪吃蛇小项目,顺带把C语言重温了一次. 是发表博客的前一天开始写的,一共写了三个版本,第一天写了第一版,第二天写了第二版和第三版. 相信C语言写个小游戏或小项目是大多数计算机相关专业的学生都做的事情,但是作为一个数学专业的学生,我们教研室的老师对C语言的要求也就比较低了,大一没有让我们做个小项目实践一次.至今为止用C/C++做过的三个小项目(大作业),一个是外校同学让我帮忙写的学生信息管理系统(天呐,这

Linux Curses编程实现贪吃蛇

curses库 简单而言,提供UNIX中多种终端 操作光标和显示字符 的接口.我们常见的vi就是使用curses实现的.现在一般都用ncurses库. Linux下curses函数库    Linux curses库使用      这两篇文章很详细地介绍了curses,在此就不重复了. ubuntu安装curses函数库 >sudo apt-get install ncurses-dev 用curses库,编译程序: gcc program.c -o program -lcurses 2.工作原

如何用Python写一个贪吃蛇AI

前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD,它把矩形中出现的食物吃了个遍, 然后华丽丽地把整个矩形填满,真心是看得赏心悦目.作为一个CSer, 第一个想到的是,这东西是写程序实现的(因为,一般人干不出这事. 果断是要让程序来干的)第二个想到的是,写程序该如何实现,该用什么算法? 既然开始想了,就开始做.因为Talk is cheap,要sho