井字游戏(shell高级版)
大家小时候大概都玩过井字游戏,就是双方在九宫格里面轮流下棋 ,先构成三点一线(横线、竖线或者斜线)的一方取胜。有点经验的人都知道,这样简单的游戏根本是不分胜负的,除非就是某一方特别粗心,才会让你有获胜的机会。
于是,我们研究了一种新的井字游戏,即所谓的高级版。棋盘为 9×9 的 81宫格,分为9个九宫格。
取胜规则:
1、在任意一个九宫格中先构成三点一线(横线、竖线或者斜线)的一方取胜。
2、轮到对方下棋且对方无子可下,则本方获胜。
下子规则:
1、从左到右、从上到下分别编号9个九宫格为1—9,则先下棋者只能在第5九宫格范围内下子。
2、若对手在第 i 九宫格的第 j 位置处下棋,则紧接着本方必须在第 j 九宫格范围内下棋。
游戏是shell脚本写成的,测试环境为bash,wsad控制方向键移动,f、空格、回车、Tab为下棋动作,x退出游戏,n开始新的游戏。详细可以研究一下代码,十分简单的。
#! /bin/bash #----------------------------------- # Name: 井字游戏(高级版) # Version: 1.0 # Type: Game # Date: 2015-02-26 # Author: ruanshihai # Email: 1103530380@qq.com #----------------------------------- #---------------Define-------------- ECHO="echo -ne" ESC="\033[" OK=0 FALSE=1 #--------------Variable-------------- #color NULL=0 BLACK=30 RED=31 GREEN=32 YELLOW=33 BLUE=34 PURPLE=35 CYAN=36 WHITE=37 #background color BBLACK=40 BRED=41 BGREEN=42 BYELLOW=43 BBLUE=44 BPURPLE=45 BCYAN=46 BWHITE=47 REV=7 BP=5 SP=5 OBP=5 OSP=5 SYMBOL=("x" "o") Player=0 #--------------Function-------------- function SttyInit() { stty_save=$(stty -g) #backup stty clear trap "GameExit;" 2 15 stty -echo