控制台的小游戏

C++实现2048小游戏(控制台版的) 无聊,在公司写了个2048小游戏的程序,聊以自娱。(事实是我手机坏了,没得玩)。 很简单,直接上代码了。 #include #include #include using namespace std; int const ROW = 4; int const COL = 4; int game[ROW][COL] = {0}; //上下左右 int const UP = 1; 阅读详情

最近有点闲昨天中午搞个好玩的,vc6控制台编译,有兴趣的试试看。

我很懒不怎么上Blog的,有C++的可以试一试啊

 

// main.cpp

#include <windows.h>
#include <ctime>
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;

int main()
{
 srand(time(NULL));
 
 // 初始化地图 和 蛇
 char map[30][40];
 memset(map, ' ', sizeof(map));
 for(int i=0; i<30; i++)
 {
  map[i][0] = '#';
  map[i][39] = '#';
 }
 for(i=0; i<40; i++)
 {
  map[0][i] = '#';
  map[29][i] = '#';
 }
 map[10][20]='$';
 list<int> snake;
 snake.push_back(10*256+10);
 snake.push_back(9*256+10);
 snake.push_back(8*256+10);
 
 int score = 0;
 while(true)
 {
  // 处理键盘 找出方向
  static char dir = 'R';
  if(GetAsyncKeyState(VK_UP) && dir!='D')
   dir='U';
  else if(GetAsyncKeyState(VK_DOWN) && dir!='U')
   dir='D';
  else if(GetAsyncKeyState(VK_LEFT) && dir!='R')
   dir='L';
  else if(GetAsyncKeyState(VK_RIGHT) && dir!='L')
   dir='R';
  
  // 找出下一点
  int dx=0, dy=0;
  if(dir=='U')
   dy=-1;
  if(dir=='D')
   dy=1;
  if(dir=='L')
   dx=-1;
  if(dir=='R')
   dx=1;
  int nextX=snake.front()/256+dx;
  int nextY=snake.front()%256+dy;
  
  // 碰撞检测
  list<int>::iterator findResult = find(snake.begin(), snake.end(), nextX*256+nextY);
  bool inSnake = findResult!=snake.end();
  if(inSnake)// 撞自己
  {
   break;
  }
  else if(map[nextY][nextX]=='#')// 撞墙
  {
   break;
  }
  else if(map[nextY][nextX]=='$')// 撞吃的
  {
   score+=100;
   map[nextY][nextX]=' ';
   snake.push_front(nextX*256+nextY);
   int fruitX, fruitY;
   while(true)
   {
    fruitX = rand()%40;
    fruitY = rand()%30;
    list<int>::iterator findResult = find(snake.begin(), snake.end(), fruitX*256+fruitY);
    bool inSnake = findResult!=snake.end();
    if( (!inSnake) && (map[fruitY][fruitX]==' ') )
     break;
   };
   map[fruitY][fruitX]='$';
  }
  else// 行动
  {
   snake.push_front(nextX*256+nextY);
   snake.pop_back();
  }
  
  // 显示
  char map2[30][40];
  memcpy(map2, map, sizeof(map));
  for(list<int>::iterator p=snake.begin(); p!=snake.end(); p++)
  {
   int x=(*p)/256;
   int y=(*p)%256;
   map2[y][x] = 'O';
  }
  map2[nextY][nextX]='@';
  system("cls");
  for(int i=0; i<30; i++)
  {
   for(int j=0; j<40; j++)
   {
    cout<<map2[i][j];
   }
   cout<<endl;
  }
  cout<<"score: "<<score<<endl;
  
  _sleep(250);
 }
 
 cout<<"Game Over"<<endl;
 system("pause");
}

孤独之旅控制台小游戏 我们会发布更多的作品的! #include<iostream> #include<conio.h> #include<unistd.h> #include<cstdlib> using namespace std; int energy=500,go,money=50,pick,picked,pp; float km=0.00,day=1,hour=0; int stone,wood,carrot,carrot_soup,eat,carrot_s; int m 阅读详情

相关推荐

控制台小游戏

控制台小游戏本文背景介绍一、角色的攻击方法1.1代码部分1.2运行结果1.2.1 ‘物理’攻击1.2.1 ‘技能’攻击二、怪物的攻击方法2.1代码部分2.2运行结果2.2.1 随机的‘物理’攻击2.2.1 随机的‘技能’攻击三、战斗的方法3.1代码部分3.2运行结果总结 本文背景介绍 学习小组开发合作一个控制台小游戏,参考《伏魔录》的游戏项目需求,完成控制台小游戏项目。我在小组中主要负责玩家的角色和怪物之间战斗的代码。我的想法是玩家有一个手动的攻击方法,而怪物是随机两种攻击的方法,两者都有单独的伤害被返.

Jester_J的博客 1093

「C++控制台生存游戏」暗黑体素 DarkVoxel 控制台版

控制台也能写出如此奇葩的生存游戏!

cjz2005的博客 1327

空战小游戏(控制台应用) c/c++实现

笔者也算是学了小半年的c++,之前都停留在控制台做做题,最近觉得这样实在是差点成就感,于是就想试试写一写简单的小游戏,在用打砖块,flappy bird等小游戏练练手后,在查阅书籍,查找一些网络资料后写了一个完成度还算高的空战小游戏的控制台应用,希望能对其他觉得迷茫的c++新手提供一些方向 游戏的完成效果: 先看看游戏的主要框架: #include<iostream> #include...

saw96x的博客 2196

<C语言>关于使用控制台实现扫雷游戏的代码实现

说明:ROW和COL为输出的棋盘大小,即9x9棋盘;ROWS和COLS为布置雷后的棋盘大小,即11x11棋盘;同时定义了布置雷的数量EASY_COUNT为10个。使用常量方便后续调整棋盘的大小。

weixin_65327229的博客 1107

C语言控制台小游戏,打砖块

C语言控制台小游戏,打砖块 这个问题是我在领扣上面看到的一道困难问题,原题是这样的: #include "stdafx.h" #include<stdio.h> int a[10][10] = { { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 }, { 0, 0, 1, 1, 1, 1, 0, 1, 1, 0 }, { 0, 0, 0, 0,...

heibai97的博客 4074

排雷小游戏,踩雷游戏,扫雷小游戏Java控制台输出

效果图: package sll; import java.util.Random; import java.util.Scanner; import static java.lang.System.out; public class sl{ //埋地雷 private static void mai_lei(char[][] d, int row, int col,int num) { int i = 0,j = 0,x = 0,y =0; for

Bo_Sir的博客 490

【C#项目实战】控制台游戏勇士斗恶龙(1)——游戏初始设置以及开始界面

通过简单项目带你入门C#游戏编程!!!

君兮_的博客 3239

python控制台小游戏

刚刚接触python的小垃圾,哈哈哈,用一维的列表来制作的地图,通过操作列表中的数据再显示在控制台上就成了一个小游戏。一开始本来想用二维的列表来制作的可是想到数据交换的时候没有一维的便利就果断放弃了,果然做了之后发现还是一维的列表好用。主要的逻辑是这样的:先初始化10*10的地图,然后将地图中点的数据替换成角色来初始化角色,用同生成角色一样的方法来初始化金币和敌人,之后在死循环中放入地图刷新显示、角色控制代码和敌人自动的代码就完成游戏的主要流程。

NOHEADLITTLEGBG的博客 839

用C语言写个控制台扫雷游戏(附完整代码)

C语言编写控制台扫雷游戏

apull的专栏 7048

[Python控制台小游戏]大航海时代

功能5 银行 可以在打工中输入 作弊码 showmethemoney +10000金币。功能6 出海 打海盗。

weixin_57336987的博客 833

C++控制台打飞机小游戏

文章目录前言介绍 前言 我终于决定还是把这个放出来。 这是我在纪中颓废的时候写的。 介绍 先来视频: 具体信息主界面上都有写。 按空格暂停,建议暂停后再升级属性。 记录最高分的文件进行了加密。 有boss。 挺好玩的。 可能有bug,不想改了,整体体验不错就行了。 更多控制台操作可以看之前写的鼠标操作的文章,也可以直接在这个上面复制。 MinGW编译无错误无警告。 只有一个文件,没有任何其他的东西...

ixRic 2万+

简单好玩的Windows控制台游戏集合应用

Console Games是Windows商店中的一款控制台游戏集合应用,其中包含12款经典的休闲游戏。

BinField的专栏 1323

【C++/控制台】(附源码)控制台小游戏 —— 电子斗蛐蛐

一个C++控制台小游戏,附上一篇优优优质的实现思路。

Siro_sama的博客 1980

【C++】控制台小游戏

W向上,S上下,A向左,D向右。

Ub4959d11430的博客 1739

STM32平台下FreeModbus TCP协议栈集成指南

深入讲解在STM32平台如何移植和配置freemodbus协议栈,实现TCP通信功能。结合嵌入式开发细节,帮助开发者快速掌握freemodbus的应用与调试技巧。

weixin_36001279的博客 1144

深入GSConv代码:逐行解析这个混合了标准卷积与深度可分离卷积的‘新算子’

本文深入解析GSConv代码,详细介绍了这个混合标准卷积与深度可分离卷积的‘新算子’的设计哲学与实现框架。通过PyTorch代码逐行分析,揭示GSConv如何在轻量级卷积神经网络中平衡计算效率与特征表达能力,特别适用于Slim-Neck架构,显著降低计算量同时保持高精度。

weixin_29860267的博客 322

C#控制台相关并在控制台运行小游戏移动逻辑

本文介绍了C#控制台的基本操作方法,包括输入输出、控制台设置和颜色控制等内容。重点讲解了如何利用这些方法实现一个简单的控制台游戏:通过WASD键控制黄色方块的移动。文章提供了完整的代码示例,实现了方块移动、边界检测和退出功能,同时说明了控制台窗口大小、光标位置和颜色设置等关键技术点。这个示例展示了如何将基础控制台操作组合成一个简单的交互式应用。

a704981991的博客 1008

相机中的归一化实现讲解

本分讲解了图像处理中常出现的两个相机归一化操作

weixin_42102084的博客 1475

用控制台写类窗体2048小游戏

原文地址:用控制台写类窗体2048小游戏作者:余文 2048是一个很简单的小游戏,这是我自己实现的一个版本。 这个版本有两个特色 这是一个高仿窗体程序的控制台程序。 通过使用指针将四个方向的移动简化成了一个方向的移动。 当初刚出来2048小游戏的时候,玩的不亦乐乎。之后根据游戏规则自己花了一下午时间用控制台写了一个玩,没有参考源码。 当时只实现了游戏的移动逻辑和胜负判定逻辑,界...

weixin_30437337的博客 179

Bochs源码分析 - 26:8259中断控制器介绍

前言 现在我们跟着《x86/x64体系探索及编程》来分析17章内容 -- 8259中断控制器。这个是涉及硬件的,很遗憾,除了大学期间使用STM32搞过一个计算器,其余就没多少硬件编程经验,我在淘宝上找了下大概是这个东东。 https://pdos.csail.mit.edu/6.828/2010/readings/hardware/8259A.pdf 上面是8259A的芯片手册,里面讲的还是挺详细的,虽然里面很多东西还是看不太懂,但是结合着《x86/...

WriteAnything_的博客 970

YOLOv11涨点改进 | NeurIPS2025最佳论文!注意力改进篇| 引入Gated Attention门控注意力模块、太牛了!直接拯救了大模型的发展,助力目标检测、图像分割、图像分类有效涨点

本文提出了一种基于门控注意力机制(GatedAttention)的YOLOv11改进方法。该模块通过在标准注意力机制中引入头部特定的sigmoid门控,有效提升了模型性能和训练稳定性。实验表明,GatedAttention能够增强模型对关键信息的聚焦能力,减少无关区域关注,提高检测精度。同时,门控机制带来的非线性和稀疏性优化了计算效率,并缓解了训练不稳定性问题。文章详细介绍了模块原理、实现代码及三种改进方案配置方法,为YOLOv11在复杂场景下的目标检测提供了有效解决方案。

Ai缝合怪、助力小伙伴高效发论文 495

C++俄罗斯方块简单控制台小游戏

C++俄罗斯方块简单控制台小游戏

re1ife的博客 1251

医院批量排班实战指南(三)日期列表生成与时段批量操作

在上一篇《批量排班功能实现指南(二):日期与时段设置》中,我们完成了日期范围选择和重复规则配置的界面搭建,实现了从第一步到第二步的跳转功能。现在我们已经可以选择日期范围和重复规则,但还缺少最关键的功能——根据规则生成日期列表并进行时段配置。本篇将继续深入批量排班的核心功能——日期列表生成与时段批量操作。根据日期范围和重复规则智能生成日期列表为每个日期配置上午、下午、夜诊时段批量时段操作提升配置效率日期列表的展示与管理。

低代码布道师的博客 1347

简易[C#]个人项目_控制台基础小游戏 2048

一次基础练手作,加强熟悉相关方法使用和思路铺设,暂未到达目前商业使用级别,优化空间巨大。

pandaxia520age的博客 854

高通平台开发系列讲解(系统篇)系统关机流程

📢本篇章主要图解高通平台系统关机流程。

内核笔记 3213

【SpringBoot 4.x 第29节】Spring Security 7 入门:先理解认证和授权!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 553
下一篇: 验证码识别技术
anders0821
博客等级 码龄21年 48粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值