关于一款c++贪吃蛇小游戏
好久不资瓷了。
首先声明,这个东西为转载(窝不会写这个。)
原作者:洛谷dalaoWZK20080124。
代码如下:
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <fstream>
using namespace std; char ch='w',o; int i=,j=,a[][],b[],c[],u=,gh=,i1=,j1=,h=,s=,m=,su=; int main() { ifstream data("D:\\max.data");
int dd,d;
while (data >> dd) {
d=dd;
}
data.close();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
cout << "-";
for(int k=; k<=; k++)
cout << "--";
cout << "\n";
for(int k=; k<=; k++) {
cout << "| ";
for(int u=; u<=; u++)
cout << " ";
cout << "|\n";
}
cout << "-";
for(int k=; k<=; k++)
cout << "--";
cout << "\n当前得分:0 当前速度:18\n历史最高分:"<< d;
while(true) {
Sleep((-su)*);
gh++;
b[gh]=i;
c[gh]=j;
a[i][j]=;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {j*,i});
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN );
printf("█");
if(kbhit()) {
o = getch();
if(o=='+'&&su+<=) {
su++;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {,});
cout << su << " ";
}
if(o=='-'&&su->=) {
su--;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {,});
cout << su << " ";
}
if(o=='w'&&a[i-][j]!=)
ch=o;
if(o=='s'&&a[i+][j]!=)
ch=o;
if(o=='a'&&a[i][j-]!=)
ch=o;
if(o=='d'&&a[i][j+]!=)
ch=o;
}
switch (ch) {
case 'w':
i--;
break;
case 's':
i++;
break;
case 'a':
j--;
break;
case 'd':
j++;
break;
default:
break;
}
if(i>)
i=;
if(i==)
i=;
if(j>)
j=;
if(j==)
j=;
if(a[i][j]==) {
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {,});
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
cout << "游戏结束 按1退出";
char uuu;
while(uuu!='')
uuu=getch();
system("cls");
if(s>d) {
cout << "破记录了";
std::ofstream outFile;
outFile.open("D:\\max.data");
outFile << s;
outFile.close();
}
return ;
}
if(i==i1&&j==j1) {
h=;
m=;
s=s+su;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {,});
cout << s;
}
a[i][j]=;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {j*,i});
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE );
printf("█");
while(m==) {
i1=(rand()%)+;
j1=(rand()%)+;
if(a[i1][j1]==) {
m=;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {j1*,i1});
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN|FOREGROUND_RED );
printf("█");
}
}
int k=;
if(h==) {
while(k<gh) {
k++;
if(b[k]!=) {
a[b[k]][c[k]]=;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {c[k]*,b[k]});
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
printf(" ");
b[k]=;
break;
}
}
}
h=;
}
}
有空的话可以颓一下(不是)
关于一款c++贪吃蛇小游戏的更多相关文章
- 贪吃蛇小游戏-----C语言实现
1.分析 众所周知,贪吃蛇游戏是一款经典的益智游戏,有PC和手机等多平台版本,既简单又耐玩.该游戏通过控制蛇头方向吃食物,从而使得蛇变得越来越长,蛇不能撞墙,也不能装到自己,否则游戏结束.玩过贪吃蛇的 ...
- C++ 简单的控制台贪吃蛇小游戏
由于比较懒,所以不怎么写,觉得这样不应该.我应该对自己学的做出整理,不管是高端低端,写出来是自己的. // 贪吃蛇.cpp : 定义控制台应用程序的入口点. // #include "std ...
- JS高级---案例:贪吃蛇小游戏
案例:贪吃蛇小游戏 可以玩的小游戏,略复杂,过了2遍,先pass吧 先创建构造函数,再给原型添加方法.分别创建食物,小蛇和游戏对象. 食物,小蛇的横纵坐标,设置最大最小值,运动起来的函数,按上下左右键 ...
- Java GUI学习,贪吃蛇小游戏
JAVA GUI练习 贪吃蛇小游戏 前几天虽然生病了,但还是跟着狂神学习了GUI的方面,跟着练习了贪吃蛇的小项目,这里有狂神写的源码点我下载,还有我跟着敲的点我下载,嘿嘿,也就注释了下重要的地方,这方 ...
- 用GUI实现java版贪吃蛇小游戏
项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public static void main(String[] args) { JFrame jFr ...
- Java 用java GUI写一个贪吃蛇小游戏
目录 主要用到 swing 包下的一些类 上代码 游戏启动类 游戏数据类 游戏面板类 代码地址 主要用到 swing 包下的一些类 JFrame 窗口类 JPanel 面板类 KeyListener ...
- html5面向对象做一个贪吃蛇小游戏
canvas加面向对象方式的贪吃蛇 2016-08-25 这个小游戏可以增加对面向对象的理解,可以加强js逻辑能力,总之认真自己敲一两遍收获还是不少啊!!适合刚学canvas的同学练习!! 废话不多说 ...
- 用python+pygame写贪吃蛇小游戏
因为python语法简单好上手,前两天在想能不能用python写个小游戏出来,就上网搜了一下发现了pygame这个写2D游戏的库.了解了两天再参考了一些资料就开始写贪吃蛇这个小游戏. 毕竟最开始的练手 ...
- Java贪吃蛇小游戏
贪吃蛇 思路 首先构思游戏布局,计算合理的坐标系. 绘制静态数据(广告.初始小蛇.提示信息.棋盘) 添加键盘监听事件,改变游戏状态以及小蛇运动方向 添加定时器,让小蛇在一段时间内移动一定的距离 随机产 ...
随机推荐
- 酷Q插件_SDK———入门与使用
1.这里使用的是易语言的SDK,所以请看不惯的人自行离开.{wymbf.} 1.2 这里不会直接给你工程,请用动手打代码,动脑思考. 1.3 不知道.不了解酷Q是干嘛的,请访问:https://cqp ...
- day29 元类及异常处理
元类及异常处理 元类 什么是元类 在python中,一切皆对象,对象是由类产生的,那么类是不是对象呢? 举例: class A: pass print(type(A)) # <class 'ty ...
- 彻底搞懂 Elasticsearch Java API
说明 在明确了ES的基本概念和使用方法后,我们来学习如何使用ES的Java API. 本文假设你已经对ES的基本概念已经有了一个比较全面的认识. 客户端 你可以用Java客户端做很多事情: 执行标准的 ...
- hdoj4812 D Tree(点分治)
题目链接:https://vjudge.net/problem/HDU-4812 题意:给定一颗带点权的树,求是否存在一条路经的上点的权值积取模后等于k,如果存在多组点对,输出字典序最小的. 思路: ...
- gdb移植(设备端本地版本)
Gdb下载地址:http://ftp.gnu.org/gnu/gdb/ ncurse下载地址:http://ftp.gnu.org/pub/gnu/ncurses/ 目录结构如下: ├── insta ...
- gRPC 本地服务搭建
RPC RPC 原理 主流 RPC 框架 gRPC 概述 特点 服务端创建 定义服务 生成 gRPC 代码 服务端实现 客户端实现 踩坑记录 源码 RPC RPC 原理 RPC 框架的目标就是让远程服 ...
- Remainder Problem(分块) Educational Codeforces Round 71 (Rated for Div. 2)
引用:https://blog.csdn.net/qq_41879343/article/details/100565031 下面代码写错了,注意要上面这种.查:2 800 0,下面代码就错了. ...
- Python3迭代器与生成器
迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退 ...
- 关于php性能优化
php性能优化 1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方 ...
- 数据库数据导入/导出报错:无法在只读列“Id”中插入数据。
本文仅供小白参考,大佬请随意...... 本例是:从vs 2017自带的localDB数据库的数据---导出到---->Sql Server 2008中的相应数据库中 1. 导出数据库: 2. ...