
Lv.1
只是喜欢Python而已……徒弟:程序侯
签名:只是喜欢Python而已…… 徒弟:程序侯
在 【C++】我竟然用C++做了一个自己和自己玩的棋? 中回复
K = 白棋 - 国王 - 八方走一格 - 被吃输棋
G = 白棋 - 侍卫 - 斜走一格
S = 白棋 - 士兵 - 直走一格
k = 黑棋 - 国王 - 八方走一格 - 被吃输棋
g = 黑棋 - 侍卫 - 斜走一格
s = 黑棋 - 士兵 - 直走一格
0 = 空位
2021-02-28T17:56:34 点赞:0
在 【C++】我竟然用C++做了一个自己和自己玩的棋? 中回复
大量debug后:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
char board[7][7] = {
{0,0,'g','k','g',0,0},
{0,0,'s',0,'s',0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,'S',0,'S',0,0},
{0,0,'G','K','G',0,0},
};
enum Piece {
WHITE_KING = 'K',
WHITE_GUARD = 'G',
WHITE_SOILDER = 'S',
BLACK_KING = 'k',
BLACK_GUARD = 'g',
BLACK_SOILDER = 's',
nothing = '\000'
};
bool check(const char* data, char target) {
for (int i = 0; i < 7; ++i) {
for (int j = 0; j < 7; ++j) {
if (board[i][j] == target) return true;
}
}
wcout << data << "赢了!";
return false;
}
void print() {
cout << " 0 1 2 3 4 5 6 \n";
for (int i = 0; i < 7; ++i) {
cout << i << " ";
for (int j = 0; j < 7; ++j) {
if (board[i][j]) cout << board[i][j] << " ";
else cout << "0 ";
}
cout << endl;
}
}
int main() {
while (1) {
//White:
if (check("黑棋", 'K')) return 0;
print();
wcout << "白棋的移动:";
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << endl;
if (board[x1][y1] == nothing) {
wcout << "此处无子\n";
continue;
}
if (board[x1][y1] > 'a') {
wcout << "此处为黑子\n";
continue;
}
if (board[x2][y2] < 'Z' && board[x2][y2] > 'A') {
wcout << "别对着友军开炮啊!\n";
continue;
}
if (board[x1][y1] == WHITE_KING) { // 国王:八方一格,被吃输棋。
int xmove = abs(x2 - x1);
int ymove = abs(y2 - y1);
if (ymove > xmove) swap(xmove, ymove);
if (xmove == 1 && ymove < 2) {
wcout << "移动成功!\n";
board[x1][y1] = nothing;
board[x2][y2] = WHITE_KING;
}
else {
wcout << "你走错了!\n";
continue;
}
}
if (board[x1][y1] == WHITE_GUARD) { // 侍卫:斜走一格
int xmove = abs(x2 - x1);
int ymove = abs(y2 - y1);
if (ymove > xmove) swap(xmove, ymove);
if (xmove == 1 && ymove == 1) {
wcout << "移动成功!\n";
board[x1][y1] = nothing;
board[x2][y2] = WHITE_GUARD;
}
else {
wcout << "你走错了!\n";
continue;
}
}
if (board[x1][y1] == WHITE_SOILDER) { // 国王:八方一格,被吃输棋。
int xmove = abs(x2 - x1);
int ymove = abs(y2 - y1);
if (ymove > xmove) swap(xmove, ymove);
if (xmove == 1 && ymove < 2) {
wcout << "移动成功!\n";
board[x1][y1] = nothing;
board[x2][y2] = WHITE_SOILDER;
}
else {
wcout << "你走错了!\n";
continue;
}
}
// Black:
if (check("白棋", 'k')) return 0;
wcout << "黑棋的移动:";
cin >> x1 >> y1 >> x2 >> y2;
cout << endl;
if (board[x1][y1] == nothing) {
wcout << "此处无子\n";
continue;
}
if (board[x1][y1] < 'Z') {
wcout << "此处为白子\n";
continue;
}
if (board[x2][y2] > 'a') {
wcout << "别对着友军开炮啊!\n";
continue;
}
if (board[x1][y1] == BLACK_KING) { // 国王:八方一格,被吃输棋。
int xmove = abs(x2 - x1);
int ymove = abs(y2 - y1);
if (ymove > xmove) swap(xmove, ymove);
if (xmove == 1 && ymove < 2) {
wcout << "移动成功!\n";
board[x1][y1] = nothing;
board[x2][y2] = BLACK_KING;
}
else {
wcout << "你走错了!\n";
continue;
}
}
if (board[x1][y1] == BLACK_GUARD) { // 侍卫:斜走一格
int xmove = abs(x2 - x1);
int ymove = abs(y2 - y1);
if (ymove > xmove) swap(xmove, ymove);
if (xmove == 1 && ymove == 1) {
wcout << "移动成功!\n";
board[x1][y1] = nothing;
board[x2][y2] = BLACK_GUARD;
}
else {
wcout << "你走错了!\n";
continue;
}
}
if (board[x1][y1] == BLACK_SOILDER) { // 国王:八方一格,被吃输棋。
int xmove = abs(x2 - x1);
int ymove = abs(y2 - y1);
if (ymove > xmove) swap(xmove, ymove);
if (xmove == 1 && ymove < 2) {
wcout << "移动成功!\n";
board[x1][y1] = nothing;
board[x2][y2] = BLACK_SOILDER;
}
else {
wcout << "你走错了!\n";
continue;
}
}
}
}
2021-02-28T20:35:39 点赞:0
在 【火炬(原名《如此现象》)④】论“敢说” 中回复
带着这些问题,我们来审视一下社区风气。 我们不得不面对一个非常尴尬的事实,那就是, 既然如何, 一般来讲,我们都必须务必慎重的考虑考虑。 社区风气,到底应该如何实现。 吉姆·罗恩曾经提到过,要么你主宰生活,要么你被生活主宰。我希望诸位也能好好地体会这句话. 社区风气的发生,到底需要如何做到,不社区风气的发生,又会如何产生。 叔本华曾经提到过,普通人只想到如何度过时间,有才能的人设法利用时间。这句话语虽然很短, 但令我浮想联翩. 美华纳在不经意间这样说过,勿问成功的秘诀为何,且尽全力做你应该做的事吧。这启发了我。 美华纳曾经说过,勿问成功的秘诀为何,且尽全力做你应该做的事吧。这句话看似简单,但其中的阴郁不禁让人深思. 每个人都不得不面对这些问题。 在面对这种问题时, 我认为, 既然如何, 每个人都不得不面对这些问题。 在面对这种问题时, 问题的关键究竟为何? 一般来讲,我们都必须务必慎重的考虑考虑。 斯宾诺莎曾经提到过,最大的骄傲于最大的自卑都表示心灵的最软弱无力。这句话语虽然很短, 但令我浮想联翩. 了解清楚社区风气到底是一种怎么样的存在,是解决一切问题的关键。 可是,即使是这样,社区风气的出现仍然代表了一定的意义。
2021-03-13T08:31:50 点赞:0
在 能打出这个字吗??? 中回复
[ jué ] 收藏 部首:鳥 笔画:23 繁体:鷢 五笔:DUBO 田字格: 笔顺:一 丿 丶 ノ 一 ∟ 丨 ノ ノ 乛 ノ ㇏ ノ 丨 𠃍 一 一 一 ㇆ 丶 丶 丶 丶 名称: 横 竖撇 点 撇 横 竖折/竖弯 竖 撇 撇 横撇/横钩 撇 捺 撇 竖 横折 横 横 横 横折钩 点 点 点点
2021-03-13T21:43:06 点赞:0
在 如何用py随机打乱字符串顺序 中回复
s='123'
from random import shuffle
s=list(s)
shuffle(s)
s=''.join(s)2021-03-27T16:32:50 点赞:0
在 关于快速排序 中回复
def QSort(a):
if len(a) < 2:return a
mid = a[(len(a)+1)//2]
return QSort([i for i in a if i < mid]) + [mid] + QSort([i for i in a if i > mid])2021-03-27T19:13:06 点赞:0
在 脱离平民村(与脱离新手村有所不同)(求回复)六十八天小萌新发布 中回复
emmm,源码精灵的水贴尽量少发哦,社区还要更好的帖子呢!发这种帖子只是炫耀鸭,没有什么用途哒!建议楼主耗子尾汁,删除本帖
2021-04-05T10:06:06 点赞:0
在 你们觉得我的精灵怎么样?就这些了。 中回复
emmm,源码精灵的水贴尽量少发哦,社区还要更好的帖子呢!发这种帖子只是炫耀鸭,没有什么用途哒!建议楼主耗子尾汁,删除本帖
2021-04-05T10:09:39 点赞:1