Coder Social home page Coder Social logo

mayerui / sudoku Goto Github PK

View Code? Open in Web Editor NEW
913.0 14.0 208.0 74 KB

C++实现的跨平台数独游戏,命令行操作易上手,可以在开发间隙用来放松身心。数百行代码,初学者也可以轻松掌握。

License: GNU General Public License v3.0

C++ 92.58% CMake 6.04% Batchfile 0.19% Shell 0.19% C 1.00%
sudoku linux windows cpp game macos

sudoku's Introduction

sudoku

C++ 实现的跨平台数独游戏,命令行操作易上手,可以在开发间隙用来放松身心。数百行代码,初学者也可以轻松掌握。 欢迎通过pull request的方式来添加功能或修复缺陷。

感谢贡献者

@ChungZH @Gusabary @lingdianlink @RoninKagome

特性

  1. 跨平台/编译器 : Linux/Windows/macOS
  2. 多语言:English/中文
  3. 无第三方库依赖
  4. 控制台运行

依赖

  1. cmake 3.12及以上
  2. C++17

构建

  1. Windows 下一键编译: build.bat
  2. macOS/Linux 下一键构建: sh build.sh (可能需要 chmod +x build.sh 赋予执行权限)

运行

构建步骤生成的 sudoku 可执行文件在 bin 目录下

./sudoku  # 直接启动
./sudoku -l filename  # 读取游戏进度文件
./sudoku -h  # 获取帮助信息

操作说明

  • 0 删除已填入数字
  • u 撤销上一步操作
  • enter 尝试通关
  • esc 退出游戏

普通模式

  • w 光标上移↑
  • a 光标左移←
  • s 光标下移↓
  • d 光标右移→

VIM模式

  • k 光标上移↑
  • h 光标左移←
  • j 光标下移↓
  • l 光标右移→

项目结构

│--.gitignore  
│--build.bat        // Windows 一键编译脚本  
│--build.sh         // Linux/macOS 一键编译脚本  
│--CMakeLists.txt   // CMake 项目文件  
│--README.md     
└--src              // 源代码目录  
   │--block.cpp     // 数独格子组合类,可代表行、列、九宫格  
   │--block.h  
   │--color.h       // 颜色类  
   │--command.cpp   // 命令类,实现了撤销功能  
   │--command.h     
   │--common.h      // 公共头文件  
   │--input.cpp     // 输入类  
   │--input.h   
   │--main.cpp      // 入口文件  
   │--scene.cpp     // 游戏场景类  
   │--scene.h   
   │--test.cpp      // 测试文件  
   │--test.h  
   └--utility.inl   // 一些实用的全局函数  

sudoku's People

Contributors

chungzh avatar fallingstarsarelikerain avatar gusabary avatar italofan avatar laialaodi avatar lingdianlink avatar mayerui avatar ronin49 avatar timeofmei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sudoku's Issues

Debian Linux下运行程序时棋盘不整齐

  • 我在编译好此程序后执行时打印的棋盘并不整齐,而且指针所在的那一行比其他的要短
    这是截图:
    2021-06-01 09-47-18屏幕截图
  • 还有一点,按下方向键时会首先输入Esc符号,容易误触退出。希望能够加一个检测

按键问题

为啥我按方向键会弹出退出提示呢?而且这个退出提示不论输入Y还是N都是返回continue
image

在windows平台导入vs产生的两个问题及解决方法

  1. 程序由于中文符号不能正确编译,报“编译错误提示:error C2001:常量中有换行符”,其实是由于input.cpp中的中文“!”造成的,删除!即可编译成功,但执行后命令行依旧会有中文乱码问题,因此建议直接将所有中文输出修改为英文;

  2. 不能断点调试,提示断点被跳过不能进行调试,不能调试的原因是cmake中有地方写的没兼容msvc.去掉CmakeLists.txt中的
    SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb ")#就是这两行东东
    SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
    去掉这两行就好了

Windows10 中文乱码问题-已解决

我使用clion进行编译,之后控制台中文乱码。
解决办法:
将右下方的编码方式从UTF-8换成GBK,点击转换,重新编译运行即可。

更新 CMakeLists.txt 文件

在 CMakeLists.txt 文件最后生成可执行文件部分的代码

# 也可以这么写
add_executable(chess  # 输出名为chess的可执行文件
   ./src/main.cpp
   ./src/utils.cpp
)

其中的 utils.cpp 已经没有了

C++ ANSI控制码无法改变字体颜色

windows下VS2017
代码:
int main()
{
cout << "\033[" << 34 << "m"<<" test....";
system("pause");
return 0;
}
输出:
�[34m test....请按任意键继续. . .

应该输出蓝色字体的 test.... 才对

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.