我在Windows 7(x64)计算机上安装了Python 2.7/3.4.我想在Windows上测试curses.
Curses已安装但无法正常工作:
>>> import curses
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Tools\Python3.4.2\lib\curses\__init__.py", line 13, in <module>
from _curses import *
ImportError: No module named '_curses'
Run Code Online (Sandbox Code Playgroud)
该文件说:
因此,Python 3.4的Windows安装程序安装了具有未解析依赖项的curses.有人可以说这是一个错误......
好的,我调查了UniCurses.它是PDCurses的包装器:
UniCurses是Python 2.x/3.x的包装器,它在所有平台(MS Windows,Linux和Mac OS X)上提供统一的Curses功能集,其语法接近原始NCurses的语法.为了在Microsoft Windows系统上提供Curses功能,它包装了PDCurses.
通过pip3导致错误安装UniCurses :
C:\Users\Paebbels>pip3 install UniCurses
Downloading/unpacking UniCurses
Could not find any downloads that satisfy the requirement UniCurses
Some externally hosted files were ignored (use …Run Code Online (Sandbox Code Playgroud) 是否有Windows等效的PHP ncurses?
我已经创建了一个CLI脚本,并希望以一种很好的方式显示各种统计信息(当前处理的记录,完成百分比等),而无需将负载和大量文本输出到cmd.exe窗口.
ncurses扩展在Windows上不起作用.
我正在尝试使用C++学习curses库(pdcurses,因为我在Windows操作系统中).我有一个显示3个窗口的程序,然后是一个while循环,根据getch()捕获的按键进行一些处理.按下F1键时循环退出.
然而,尽管使用wrefresh()刷新所有三个窗口,但在我进入第一次按键之前没有任何内容出现.没有while循环,一切都显示正常.我做了很多测试,这就像第一次调用getch()将完全清除屏幕,而不是后续屏幕.
我的问题是:我错过了什么?起初,我在想,也许getch()调用了一个隐式的refresh(),但为什么后续调用它没有相同的行为呢?
非常感谢您的帮助.
这是代码.
#include <curses.h>
int main()
{
initscr();
raw();
keypad(stdscr, TRUE);
noecho();
curs_set(0);
WINDOW *wmap, *wlog, *wlegend;
int pressed_key;
int map_cursor_y = 10, map_cursor_x = 32;
wlog = newwin(5, 65, 0, 15);
wlegend = newwin(25, 15, 0, 0);
wmap = newwin(20, 65, 5, 15);
box(wmap, 0 , 0);
box(wlog, 0 , 0);
box(wlegend, 0 , 0);
mvwprintw(wlog, 1, 1, "this is the log window");
mvwprintw(wlegend, 1, 1, "legends");
mvwaddch(wmap, map_cursor_y, map_cursor_x, '@');
wrefresh(wlog);
wrefresh(wmap);
wrefresh(wlegend);
while ((pressed_key …Run Code Online (Sandbox Code Playgroud) 我正在寻找使用PDCurses库的教程.不幸的是,只有文本文档,更像是函数引用.pdcurses是否足够类似于ncurses使用ncurses教程??? 制作控制台UI的任何提示???
PS.PDCurses - mingw32.
所以我正在制作一个带有传送和常用老鼠的蛇游戏.我有一个像这样运行的循环:
while(snake.alive() && miceEaten < micePerLevel)
{
displayInfo(lives, score, level, micePerLevel - miceEaten);
//some code
if(miceEaten())
{
//update score...
}
//more stuff...
}
Run Code Online (Sandbox Code Playgroud)
上述代码的问题是displayInfo在得分更新之前调用,因此在吃完鼠标之后,用户必须等到循环再次运行才能看到他的分数更新.所以我将这一行代码移到了函数的底部:
while(snake.alive() && miceEaten < micePerLevel)
{
//some code
if(miceEaten())
{
//update score...
}
//more stuff...
displayInfo(lives, score, level, micePerLevel - miceEaten);
}
Run Code Online (Sandbox Code Playgroud)
和传送停止工作!只要蛇到达传送,程序就会崩溃.并displayInfo使用以下代码:
stringstream s;
s << "LEVEL " << left << setw(12) << level << "LIVES: " << setw(12) << lives << "MICE LEFT: " << setw(12) << miceLeft
<< "SCORE: …Run Code Online (Sandbox Code Playgroud) 这让我很不爽。我只是想将pdcurses(即 Windows 的 ncurses)包含到测试程序中。联动虽然失败。
使用 Visual Studio 2010。
我完全知道设置正确的链接附加库路径并列出库本身。没有喜悦。
我已经在 pdcurses 网站上尝试了各种预构建。没有这样的运气。
我当然求助于从源头构建。按照规定从 Visual Studio 命令提示符使用 nmake。建好了。纳达在链接上。
我错过了什么。周五可能太晚了……
输出如下:
1>------ Build started: Project: test, Configuration: Debug x64 ------
1>Build started 14/12/2012 16:24:32.
1>InitializeBuildStatus:
1> Touching "x64\Debug\test.unsuccessfulbuild".
1>ClCompile:
1> main.c
1>C:\dep\pdcurses\curses.h(160): warning C4005: 'MOUSE_MOVED' : macro redefinition
1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wincon.h(101) : see previous definition of 'MOUSE_MOVED'
1>main.c(73): warning C4133: 'function' : incompatible types - from 'unsigned short [20]' to 'const char *'
1>ManifestResourceCompile:
1> All …Run Code Online (Sandbox Code Playgroud) 我在CodeBlocks上制作了一个2048游戏,但由于调试问题,我转到2017年的Visual Studio社区.看来conio.h在那里不起作用,所以我试图切换到curses.h库.
我已经阅读了很多教程,但没有一个能为我工作.我访问了他们的网站并下载了384KB的zip文件,但我不知道如何处理这些文件.
请帮忙?
我正在 Linux 中使用 ncurses 构建游戏。
我可以将代码“复制/粘贴”到 Microsoft Visual Studio(正确设置 PDCurses)并且一切都会正常运行吗?
谢谢!
我知道也许这是一个愚蠢的问题,但我看不清楚,我在这里搜索了其他答案,这些答案非常接近我的,但是,我仍然不明白该怎么做.
问题是我无法编译在Windows中使用curses.h的'C'程序(我正在使用Clion和MinGW),当我尝试这样做时,它为curses.h中的函数提供了"未定义的引用" (例如'initscr','clear',......).
通过MinGW安装管理器我安装了"mingw-32-libpdcurses"(有两个可用的两个不同的类:dev和dll;我安装了dll一个).
我正在使用的CMAKE文件是这样的:
cmake_minimum_required(VERSION 3.3)
project(Project1)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -lpdcurses")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
file(GLOB Project1_SRC
"*.h"
"*.c"
)
add_executable(Project1 ${Project1_SRC})
Run Code Online (Sandbox Code Playgroud)
我应该更改它以便使用curses.h进行编译?
我正在用C ++进行小型项目,并且正在使用curses作为用户界面。我可以很好地使其在我的arch-linux安装中工作,因为设置ncurses在这里工作非常简单。但是我的cmake设置在linux上运行良好,因此我无法使其在Windows上正常运行。
这是我的CMakeList.txt
cmake_minimum_required(VERSION 3.9)
project(fighting_pit)
find_package(Curses REQUIRED)
include_directories(${CURSES_INCLUDE_DIR})
set(CMAKE_CXX_STANDARD 11)
include_directories( ./include)
include_directories( ./src)
add_executable(fighting_pit
include/Arena.h
include/cursor.h
include/Player.h
include/spell.h
include/Turns.h
include/weapon.h
include/Draw.h
src/Arena.cpp
src/cursor.cpp
src/Player.cpp
src/spell.cpp
src/Turns.cpp
src/weapon.cpp
src/Draw.cpp
main.cpp )
target_link_libraries(fighting_pit ${CURSES_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法使其也可以在Windows上运行。
我试图用mingw32-make构建pdcurses。它创建了pdcurses.a。我将其添加到与项目相同的位置,但它仍然显示无法找到curses库。
我使用了mingw的安装管理器,并让它下载了.dll和libpdcurses的dev软件包。只是尝试通过cmion运行cmake仍未找到。所以我将其复制到Windows32和项目文件夹中,但仍然没有帮助。
我在寻找解决方案,但没有一个帮助
如您所见,我不知道该怎么办。不幸的是,我既不是C ++用户,也不是Windows用户,并且我开始非常绝望。