猫史档案馆


蒟蒻OIer1048576

蒟蒻OIer1048576

Lv.1

只是喜欢Python而已……徒弟:程序侯

获赞:206收藏:39浏览:2002作品收藏:29

签名:只是喜欢Python而已…… 徒弟:程序侯

回复帖子评论
上一页53 页 / 共 60下一页

看来巴巴不难孵化出来 中回复

人老ηβ!巳巳最可受了!现土有巳巳的才是人老!巳巳万夕!emotion_doge

2021-02-28T16:59:04 点赞:1

【C++】我竟然用C++做了一个自己和自己玩的棋? 中回复

即将增加棋子:战车

2021-02-28T17:34:00 点赞:0

【C++】我竟然用C++做了一个自己和自己玩的棋? 中回复

K = 白棋 - 国王 - 八方走一格 - 被吃输棋

G = 白棋 - 侍卫 - 斜走一格

S = 白棋 - 士兵 - 直走一格

k = 黑棋 - 国王 - 八方走一格 - 被吃输棋

g = 黑棋 - 侍卫 - 斜走一格

s = 黑棋 - 士兵 - 直走一格

0 = 空位

 

2021-02-28T17:56:34 点赞:0

【C++】我竟然用C++做了一个自己和自己玩的棋? 中回复

顶帖

2021-02-28T18:56:02 点赞: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-03T18:47:21 点赞:0

圆马语等级考试 中回复

先仔右亚亚钮菜市打捞,右巳巳的夜视孟欣

2021-03-03T18:54:53 点赞:0

水贴-消灭404N0tF0und的一百种方法 中回复

让404做黑题emotion_doge

2021-03-08T13:26:00 点赞:0

【火炬(原名《如此现象》)④】论“敢说” 中回复

       带着这些问题,我们来审视一下社区风气。 我们不得不面对一个非常尴尬的事实,那就是, 既然如何, 一般来讲,我们都必须务必慎重的考虑考虑。 社区风气,到底应该如何实现。 吉姆·罗恩曾经提到过,要么你主宰生活,要么你被生活主宰。我希望诸位也能好好地体会这句话. 社区风气的发生,到底需要如何做到,不社区风气的发生,又会如何产生。 叔本华曾经提到过,普通人只想到如何度过时间,有才能的人设法利用时间。这句话语虽然很短, 但令我浮想联翩. 美华纳在不经意间这样说过,勿问成功的秘诀为何,且尽全力做你应该做的事吧。这启发了我。   美华纳曾经说过,勿问成功的秘诀为何,且尽全力做你应该做的事吧。这句话看似简单,但其中的阴郁不禁让人深思. 每个人都不得不面对这些问题。 在面对这种问题时, 我认为, 既然如何, 每个人都不得不面对这些问题。 在面对这种问题时, 问题的关键究竟为何? 一般来讲,我们都必须务必慎重的考虑考虑。 斯宾诺莎曾经提到过,最大的骄傲于最大的自卑都表示心灵的最软弱无力。这句话语虽然很短, 但令我浮想联翩. 了解清楚社区风气到底是一种怎么样的存在,是解决一切问题的关键。 可是,即使是这样,社区风气的出现仍然代表了一定的意义。

2021-03-13T08:31:50 点赞:0

水贴-消灭404N0tF0und的一百种方法 中回复

让404参加IOI历届冠军赛(没我)

2021-03-13T21:40:15 点赞:0

能打出这个字吗??? 中回复

 

[ jué ]  收藏 部首:鳥 笔画:23 繁体:鷢 五笔:DUBO 田字格: 笔顺:一  丿  丶  ノ  一  ∟  丨  ノ  ノ  乛  ノ  ㇏  ノ  丨  𠃍  一  一  一  ㇆  丶  丶  丶  丶  名称: 横 竖撇 点 撇 横 竖折/竖弯 竖 撇 撇 横撇/横钩 撇 捺 撇 竖 横折 横 横 横 横折钩 点 点 点点

2021-03-13T21:43:06 点赞:0

水贴-消灭404N0tF0und的一百种方法 中回复

25、一口一个404

2021-03-14T17:49:24 点赞:0

水贴-消灭404N0tF0und的一百种方法 中回复

让404修mathprolib的bug

2021-03-14T20:17:10 点赞:0

【@Yue.S】有关编程猫制度的建议 中回复

荷兰拔智齿

2021-03-16T18:53:52 点赞:0

如果你请你楼上的人的头像吃饭,你会请那个头像吃什么 中回复

吃个alphago

2021-03-16T19:53:29 点赞:0

【教程】简单的不定积分(一) 中回复

……导数(微分)还没讲呢…………

还有显然歇后语有点ShaDiao

2021-03-17T19:31:23 点赞:0

【一个重要的讨论】准备重构社区,需要大家的意见,这一轮讨论截止到4月 中回复

删除源码精灵这款和编程毫无关联的游戏!

2021-03-20T13:55:49 点赞:3

我得等级是? 中回复

禁止源码精灵氵贴

2021-03-21T18:39:35 点赞:0

贫困户请过来,我给你们吸吸点欧气 中回复

禁止源码精灵氵贴

2021-03-21T18:46:01 点赞:0

魔术喵表情似乎有点…… 中回复

emotion_挖鼻

2021-03-27T13:49:38 点赞:0

【C++】我竟然用C++做了一个自己和自己玩的棋? 中回复

dd

2021-03-27T14:03:37 点赞:0

两个火爆全网的黑化精灵!!! 中回复

所以反体育万岁!

2021-03-27T14:04:51 点赞: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

我编程猫马上就三阶了! 中回复

女了一!彳艮丆几二十X·王几二礻口十丨!

2021-03-30T19:10:28 点赞:0

Let's De喵os! 中回复

dd

2021-04-04T21:07:03 点赞:0

你们能看懂这段C代码吗 中回复

dd

2021-04-04T21:10:08 点赞:0

脱离平民村(与脱离新手村有所不同)(求回复)六十八天小萌新发布 中回复

emmm,源码精灵的水贴尽量少发哦,社区还要更好的帖子呢!发这种帖子只是炫耀鸭,没有什么用途哒!建议楼主耗子尾汁,删除本帖

2021-04-05T10:06:06 点赞:0

你们觉得我的精灵怎么样?就这些了。 中回复

emmm,源码精灵的水贴尽量少发哦,社区还要更好的帖子呢!发这种帖子只是炫耀鸭,没有什么用途哒!建议楼主耗子尾汁,删除本帖

2021-04-05T10:09:39 点赞:1

Kitten4建议更新: 中回复

2021-04-05T15:45:49 点赞:0