导航:首页 > 游戏攻略 > 井字格游戏攻略

井字格游戏攻略

发布时间:2020-04-29 22:11:50

1、实验五 数组 设计一个井字游戏,两个玩家,一个打圈(O),一个打叉(X),轮流在3乘3的格上打自己的符号,最

#include <iostream>
using namespace std;

int main()
{
char c[3][3] = { '?','?', '?', '?', '?', '?', '?', '?', '?' };
char a, b;
int i, j, d;
d = 1;
a = 'O';
b = 'X';

for (i = 0; i < 3; ++i) {
<< endl;
for (j = 0; j < 3; ++j)
cout << c[i][j];
}

cout << endl << "the game starts" << endl;

while (d <= 9) {

if (d % 2 == 1) cout << endl << "player 1,input two numbers" << endl;
if (d % 2 == 0) cout << endl << "player 2,input two numbers" << endl;
cin >> i >> j;
if (d % 2 == 1)c[i][j] = a;
if (d % 2 == 0)c[i][j] = b;
for (i = 0; i < 3; ++i) {
cout << endl;
for (j = 0; j < 3; ++j)
cout << c[i][j];
}
d++;

if ((c[0][0] == c[0][1] && c[0][1] == c[0][2] && c[0][2] == a) || (c[1][0] == c[1][1] && c[1][1] == c[1][2] && c[1][2] == a) ||
(c[2][0] == c[2][1] && c[2][1] == c[2][2] && c[2][2] == a) || (c[0][0] == c[1][0] && c[1][0] == c[2][0] && c[2][0] == a) ||
(c[0][1] == c[1][1] && c[1][1] == c[2][1] && c[2][1] == a) || (c[0][2] == c[1][2] && c[1][2] == c[2][2] && c[2][2] == a) ||
(c[0][0] == c[1][1] && c[1][1] == c[2][2] && c[2][2] == a) || (c[0][2] == c[1][1] && c[1][1] == c[2][0] && c[2][0] == a))

{
cout << endl << "player 1 win" << endl; break;
}
else if ((c[0][0] == c[0][1] && c[0][1] == c[0][2] && c[0][2] == a) || (c[1][0] == c[1][1] && c[1][1] == c[1][2] && c[1][2] == a) ||
(c[2][0] == c[2][1] && c[2][1] == c[2][2] && c[2][2] == a) || (c[0][0] == c[1][0] && c[1][0] == c[2][0] && c[2][0] == a) ||
(c[0][1] == c[1][1] && c[1][1] == c[2][1] && c[2][1] == a) || (c[0][2] == c[1][2] && c[1][2] == c[2][2] && c[2][2] == a) ||
(c[0][0] == c[1][1] && c[1][1] == c[2][2] && c[2][2] == a) || (c[0][2] == c[1][1] && c[1][1] == c[2][0] && c[2][0] == a))
{
cout << endl << "player 2 win" << endl; break;
}
}
if (d == 10)cout << endl << "平局" << endl;
return 0;
}

2、什么是井字游戏

是一种zd在3*3格子上进行的连珠游戏,和五子棋比较类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和内笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手容者为X)。由最先在任意一条直线上成功连接三个标记的一方获胜。

3、疯狂猜成语有一个吉他旁边有个井字格游戏,下面有个书旁边还有一个画纸,猜一个

琴棋书画
qín qí shū huà
【解释】百弹琴、弈棋、写字、绘画。常以表示个人的文化素养。

【出处】宋·孙光度宪《北梦琐言》卷五:“唐高测,彭州人。聪明博识,文翰纵横。至于天文历数,琴棋书画问,长笛胡琴,率梁朝朱异之流。”

【结构】联合式

【用法】作答主语、宾语、定语;多用于女性内

【近义词】文房四艺

【例句】不拘描龙绣凤,容件件皆精,~,般般都会。 ◎清·张南庄《何典》第七回

4、怎么用javascript做井字游戏

<style type="text/css">
form { font-size: 0px; text-align: center; }
input { margin: 2px; width: 30px; height: 30px; }
.a { width: auto; }
</style>
<body>
<form>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/><br/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/><br/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/><br/>

<input type="button" name="RESET" value="RESET" class="a" />
</form>
</body>var bln = false;
window.onload = function(){
 form = document.forms[0];
form.RESET.onclick = function(){ clear(form); }
clear(form);

for(var i = 0; i < form.s.length; i++){
var btn = form.s[i];
btn.onclick = function(){
this.value = bln ? "X" : "O";
this.disabled = true;
bln = !bln;

checkresult(form);
}
}

}
function clear(form){
for(var i = 0; i < form.s.length; i++) {
form.s[i].value = " ";
form.s[i].disabled = false;
}
bln = false;
}

function end(form){
for(var i = 0; i < form.s.length; i++) {
form.s[i].disabled = true;
}
}

function checkresult(form){
var arrX = [];
var arrO = [];
for(var i = 0; i < form.s.length; i++){
if(form.s[i].value == "X") arrX.push(i);
if(form.s[i].value == "O") arrO.push(i);
}

var X = arrX.join("");
if(
(X.indexOf("0") > -1 && X.indexOf("1") > -1 && X.indexOf("2") > -1) ||
(X.indexOf("0") > -1 && X.indexOf("3") > -1 && X.indexOf("6") > -1) ||
(X.indexOf("0") > -1 && X.indexOf("4") > -1 && X.indexOf("8") > -1) ||
(X.indexOf("1") > -1 && X.indexOf("4") > -1 && X.indexOf("7") > -1) ||
(X.indexOf("2") > -1 && X.indexOf("5") > -1 && X.indexOf("8") > -1) ||
(X.indexOf("2") > -1 && X.indexOf("4") > -1 && X.indexOf("6") > -1) ||
(X.indexOf("3") > -1 && X.indexOf("4") > -1 && X.indexOf("5") > -1) ||
(X.indexOf("6") > -1 && X.indexOf("7") > -1 && X.indexOf("8") > -1)
){
alert("X win");
end(form);
return;
}

var O = arrO.join("");
if(
(O.indexOf("0") > -1 && O.indexOf("1") > -1 && O.indexOf("2") > -1) ||
(O.indexOf("0") > -1 && O.indexOf("3") > -1 && O.indexOf("6") > -1) ||
(O.indexOf("0") > -1 && O.indexOf("4") > -1 && O.indexOf("8") > -1) ||
(O.indexOf("1") > -1 && O.indexOf("4") > -1 && O.indexOf("7") > -1) ||
(O.indexOf("2") > -1 && O.indexOf("5") > -1 && O.indexOf("8") > -1) ||
(O.indexOf("2") > -1 && O.indexOf("4") > -1 && O.indexOf("6") > -1) ||
(O.indexOf("3") > -1 && O.indexOf("4") > -1 && O.indexOf("5") > -1) ||
(O.indexOf("6") > -1 && O.indexOf("7") > -1 && O.indexOf("8") > -1)
){
alert("O win");
end(form);
return;
}
if((X.length == 4 && O.length == 5) || (X.length == 5 && O.length == 4)){
alert("平局");
end(form);
}
}

5、恋香缘小游戏攻略

一款非常好玩的恋爱养成游戏,游戏有多种选择,多种玩法,并附加多个随机事件以及电脑情敌,对白达到上千句,另外还根据游戏情节区分了30多种结局,还有可能会收到MM寄赠的超爽梦幻写真哦。开始努力工作+进修先赚钱,然后去健身提升魅力,闲逛偶尔遇到事件也可以提升魅力,然后才跟女主角接近,接近到亲密朋友才可以约子
攻略:
其实一开始就工作、深照及少许的接近,到职业等级9或10的时候,开始健身、逛街、 接近到亲密朋友的时候开始约会,健身跟逛街是为了增加魅力有助于+好感,再说说求婚,求婚成功条件除了好感度要到论及婚嫁以外,(不过到论及婚嫁好像游戏就会跳入结局部分)(也许可以在论及婚嫁前努力增加魅力)男主角的魅力好像最少也要到30。
刚开始除了努力工作也要努力深造,可能一个礼拜安排3到5次的接近,刚开始好感度很难升,所以要有耐心,(不要因为这样就很少去接近),深造可以的话升到10就差不多了(平均薪水5XX~4XX$)那时就可以增加去健身的次数,可以约会时,好感度也够时,可以去商店买花送女主角,不管送多贵或多便宜的东西,增加的好感度都一样(虽然剩戒子没送过),偶尔也可以去街上逛逛(大概一个礼拜安排2-3次)遇到强匪或抢劫时,都可以选择去追抢钱的跟强匪决斗,追抢钱的失败,没什么损失,还会增加魅力
强匪搏斗输的话,会扣钱不会魅力,有成功的话是+2魅力不扣钱,捡到钱包,选择等待失主,之后要按底下的(好像是省查)反正就是要确认是不是真的失主这样,确认是之后他会给玩家100$跟魅力+1,还有一个是碰到遗失钱的人,去理会他,会有两种状况:一个是碰到跟你要5$打电话的,这个选择借他,会魅力+1,一个是碰到叫你用500$买他戒子,这个不能选,因为是骗子,会损失500$,等有钱时,偶尔可以请朋友吃饭花500$去打听对手的消息,安排行程的时候也要考虑体力,适当安排休息时间,不然会送医院。

6、井字游戏 运算法则

给你一份详细的代码吧,
已经编译运行确认了:

#include <iostream>
#include <string>
using namespace std;
typedef char chess[10]; //字符数组
typedef int temparr[10]; //整型数组
chess arr; //定义字符数组变量
temparr brr; //定义整型数组变量
int number,suc,n3,c3,n2,c2,n1,c1;
void inarrdata(chess a) //初始化棋盘编号
{
a[1]='1';a[2]='2';a[3]='3';
a[4]='4';a[5]='5';a[6]='6';
a[7]='7';a[8]='8';a[9]='9';
}
void display(chess a) //输出棋盘状态
{
cout<<endl;cout<<endl;
cout<<" "<<a[1]<<" "<<'|'<<" "<<a[2]<<" "<<'|'<<" "<<a[3]<<endl;
cout<<" -----------"<<endl;
cout<<" "<<a[4]<<" "<<'|'<<" "<<a[5]<<" "<<'|'<<" "<<a[6]<<endl;
cout<<" -----------"<<endl;
cout<<" "<<a[7]<<" "<<'|'<<" "<<a[8]<<" "<<'|'<<" "<<a[9]<<endl;
cout<<endl;cout<<endl;
}
int arrfull() //判断还有没有下棋的位置
{
int i;
int arrf=0;
for(i=1;i<=9;i++)
if(i==arr[i]-48) //如果字符arr[i]-48等于i
arrf=1; //那么arrf=1,也就是可以走棋
return arrf;
}
void cn(int line) //判断状态
{
switch(line)
{
case 0:c3=c3+1;break;
case 1:n2=n2+1;break;
case 2:c2=c2+1;break;
case 3:n1=n1+1;break;
case 4:c1=c1+1;break;
case 5:n3=n3+1;break;
}
}
int linenum(char a,char b,char c) //判断状态
{
int ln=6;
if((a=='X')&&(b=='X')&&(c=='X'))
ln=0;
if(((a=='O')&&(b=='O')&&(c!='O'))||((a=='O')&&(b!='O')&&(c=='O'))||((a!='O')&&(b=='O')&&(c=='O')))
ln=1;
if(((a=='X')&&(b=='X')&&(c!='X'))||((a=='X')&&(b!='X')&&(c=='X'))||((a!='X')&&(b=='X')&&(c=='X')))
ln=2;
if(((a=='O')&&(b!='O')&&(c!='O'))||((a!='O')&&(b=='O')&&(c!='O'))||((a!='O')&&(b!='O')&&(c=='O')))
ln=3;
if(((a=='X')&&(b!='X')&&(c!='x'))||((a!='X')&&(b=='X')&&(c!='X'))||((a!='X')&&(b!='X')&&(c=='X')))
ln=4;
if((a=='O')&&(b=='O')&&(c=='O'))
ln=5;
return ln;
}
int maxbrr(int *br) //判断最大权值
{
int temp,i,mb;
temp=-888;
for(i=1;i<=9;i++)
{
if(temp<=br[i])
{
temp=br[i];
mb=i;
}
}
return mb;
}
void manstep() //人走棋处理模块
{
int j;
display(arr);
if(arrfull()) //如果棋盘上还有下棋的位置,人走一步棋
{
cout<<"您要走哪一步?请输入数字(1--9):";
cin>>j;
while((j<1)||(j>9)||(j!=arr[j]-48))
{
cout<<"对不起,您输入的数字不对,请重新输入(1--9):";
cin>>j;
}
arr[j]='O';
n3=0;c3=0;n2=0;c2=0;n1=0;c1=0;
number=linenum(arr[1],arr[2],arr[3]);cn(number);
number=linenum(arr[4],arr[5],arr[6]);cn(number);
number=linenum(arr[7],arr[8],arr[9]);cn(number);
number=linenum(arr[1],arr[4],arr[7]);cn(number);
number=linenum(arr[2],arr[5],arr[8]);cn(number);
number=linenum(arr[3],arr[6],arr[9]);cn(number);
number=linenum(arr[1],arr[5],arr[9]);cn(number);
number=linenum(arr[3],arr[5],arr[7]);cn(number);
if(n3!=0) //您赢了
{
display(arr);
cout<<endl;
cout<<"恭喜您赢了!!!"<<endl;
suc=0;
}
}
}
void computerstep() //计算机走棋处理模块
{
int i;
if(arrfull()) //如果棋盘上还有可下棋的位置,则计算机走棋
{
for(i=1;i<=9;i++) //对每一步可走的棋进行计算
{
if(i==arr[i]-48)
{
c3=0;n2=0;c2=0;n1=0;c1=0;
arr[i]='X';
number=linenum(arr[1],arr[2],arr[3]);cn(number);
number=linenum(arr[4],arr[5],arr[6]);cn(number);
number=linenum(arr[7],arr[8],arr[9]);cn(number);
number=linenum(arr[1],arr[4],arr[7]);cn(number);
number=linenum(arr[2],arr[5],arr[8]);cn(number);
number=linenum(arr[3],arr[6],arr[9]);cn(number);
number=linenum(arr[1],arr[5],arr[9]);cn(number);
number=linenum(arr[3],arr[5],arr[7]);cn(number);
brr[i]=(128*c3-63*n2+31*c2-15*n1+7*c1); //计算此步权值
arr[i]=i+48;
}
else
brr[i]=-999;
}
arr[maxbrr(brr)]='X'; //确定计算机走哪一步,权值最大的一步
c3=0;n2=0;c2=0;n1=0;c1=0;
number=linenum(arr[1],arr[2],arr[3]);cn(number);
number=linenum(arr[4],arr[5],arr[6]);cn(number);
number=linenum(arr[7],arr[8],arr[9]);cn(number);
number=linenum(arr[1],arr[4],arr[7]);cn(number);
number=linenum(arr[2],arr[5],arr[8]);cn(number);
number=linenum(arr[3],arr[6],arr[9]);cn(number);
number=linenum(arr[1],arr[5],arr[9]);cn(number);
number=linenum(arr[3],arr[5],arr[7]);cn(number);
if(c3!=0) //计算机已赢
{
display(arr);
cout<<endl;
cout<<"计算机赢了!!!"<<endl;
suc=0;
}
}
else
suc=0;
}
int main()
{
cout<<"游戏规则:"<<endl<<"棋盘格式如图,人和计算机在棋盘上交替走棋"<<endl;
cout<<"约定计算机使用符号X,人使用符号O"<<endl;
cout<<"谁先使一横行或一竖行或对角线上有三个自己的符号,就胜利了!"<<endl;
string s="y";
string ch;
while(s=="y"||s=="Y")
{
inarrdata(arr); //棋盘坐标编号
display(arr); //显示初始棋盘
suc=1;
cout<<"请选择您是否先走?(y/n)";
cin>>ch;
while(ch!="y"&&ch!="Y"&&ch!="n"&&ch!="N")
{
cout<<"错误!请输入y或n:";
cin>>ch;
}
if((ch=="y")||(ch=="Y")) //输入Y,表示人先走棋
{
while(suc)
{
manstep();
computerstep();
}
}
else //计算机先走棋
{
while(suc)
{
computerstep();
if(suc)
manstep();
}
}
if(n3==0&&c3==0)
cout<<endl<<"和棋!"<<endl<<endl;
cout<<"再来一盘(y/n)?";
cin>>s;
while(s!="y"&&s!="Y"&&s!="n"&&s!="N")
{
cout<<"错误!请输入y或n:";
cin>>s;
}
}
return 0;
}

7、谁能说一下下面这个井字棋游戏程序的编程思路,只需要思路!!

这里面貌似没什么啊,首先是进行初始化百
void inarrdata(chess a) //初始化度棋盘编号
{
a[1]='1';a[2]='2';a[3]='3';
a[4]='4';a[5]='5';a[6]='6';
a[7]='7';a[8]='8';a[9]='9';
}

以下是查找一个位置知,因为之前inarrdata函数里对数组进行了初始化
要注意的是'1'-48=1
'2'-48=2
int arrfull() //判断还有没有下棋的位置
{
int i;
int arrf=0;
for(i=1;i<=9;i++)
if(i==arr[i]-48) //如果字符道arr[i]-48等于i
arrf=1; //那么arrf=1,也回就是可以走棋
return arrf;
}

另外程序中还没有进行下棋的算法答判定的代码~~

8、井字棋的介绍

井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋比较类似,由于棋盘来一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X)井字策略,英文名叫Tic Tactics,一个经源典的重生!Tic Tactics是一个回合制多人游戏,简单易学,但具挑战性!如果你知道怎么玩井字棋,你已经知道怎么玩Tic Tactics。不同的是你才是决定每一步把你的对手送知到哪里的关键。你会为战略的纵深大吃一惊!挑战朋友或者陌生人来道提升你的等级,并最终成为Tic Tactics军师!(详细玩法井字棋吧置顶贴有介绍)

9、用C++做个井字游戏 ,最基本的,自己和自己玩的就可以了,高分呀~~

我把人机对战的改成了人和人对战,你可以参考:

#include <iostream>
#include <string>
using namespace std;
typedef char chess[10]; //字元阵列
typedef int temparr[10]; //整型阵列
chess arr; //定义字元阵列变数
temparr brr; //定义整型阵列变数
int number,suc,n3,c3,n2,c2,n1,c1;
void inarrdata(chess a) //初始化棋盘编号
{
a[1]='1';a[2]='2';a[3]='3';
a[4]='4';a[5]='5';a[6]='6';
a[7]='7';a[8]='8';a[9]='9';
}
void display(chess a) //输出棋盘状态
{
cout<<endl;cout<<endl;
cout<<" "<<a[1]<<" "<<'|'<<" "<<a[2]<<" "<<'|'<<" "<<a[3]<<endl;
cout<<" -----------"<<endl;
cout<<" "<<a[4]<<" "<<'|'<<" "<<a[5]<<" "<<'|'<<" "<<a[6]<<endl;
cout<<" -----------"<<endl;
cout<<" "<<a[7]<<" "<<'|'<<" "<<a[8]<<" "<<'|'<<" "<<a[9]<<endl;
cout<<endl;cout<<endl;
}
int arrfull() //判断还有没有下棋的位置
{
int i;
int arrf=0;
for(i=1;i<=9;i++)
if(i==arr[i]-48) //如果字元arr[i]-48等於i
arrf=1; //那麼arrf=1,也就是可以走棋
return arrf;
}
void cn(int line) //判断状态
{
switch(line)
{
case 0:c3=c3+1;break;
case 1:n2=n2+1;break;
case 2:c2=c2+1;break;
case 3:n1=n1+1;break;
case 4:c1=c1+1;break;
case 5:n3=n3+1;break;
}
}
int linenum(char a,char b,char c) //判断状态
{
int ln=6;
if((a=='X')&&(b=='X')&&(c=='X'))
ln=0;
if(((a=='O')&&(b=='O')&&(c!='O'))||((a=='O')&&(b!='O')&&(c=='O'))||((a!='O')&&(b=='O')&&(c=='O')))
ln=1;
if(((a=='X')&&(b=='X')&&(c!='X'))||((a=='X')&&(b!='X')&&(c=='X'))||((a!='X')&&(b=='X')&&(c=='X')))
ln=2;
if(((a=='O')&&(b!='O')&&(c!='O'))||((a!='O')&&(b=='O')&&(c!='O'))||((a!='O')&&(b!='O')&&(c=='O')))
ln=3;
if(((a=='X')&&(b!='X')&&(c!='x'))||((a!='X')&&(b=='X')&&(c!='X'))||((a!='X')&&(b!='X')&&(c=='X')))
ln=4;
if((a=='O')&&(b=='O')&&(c=='O'))
ln=5;
return ln;
}

void manstep(char ch) //走棋处理模组
{
int j;
display(arr);
if(arrfull()) //如果棋盘上还有下棋的位置,走一步棋
{
cout<<"玩家"<<ch<<"要走哪一步?请输入数位(1--9):";
cin>>j;
while((j<1)||(j>9)||(j!=arr[j]-48))
{
cout<<"对不起,您输入的数位不对,请重新输入(1--9):";
cin>>j;
}
arr[j]=ch;
n3=0;c3=0;n2=0;c2=0;n1=0;c1=0;
number=linenum(arr[1],arr[2],arr[3]);cn(number);
number=linenum(arr[4],arr[5],arr[6]);cn(number);
number=linenum(arr[7],arr[8],arr[9]);cn(number);
number=linenum(arr[1],arr[4],arr[7]);cn(number);
number=linenum(arr[2],arr[5],arr[8]);cn(number);
number=linenum(arr[3],arr[6],arr[9]);cn(number);
number=linenum(arr[1],arr[5],arr[9]);cn(number);
number=linenum(arr[3],arr[5],arr[7]);cn(number);
if(n3 || c3) //您赢了
{
display(arr);
cout<<endl;
cout<<"恭喜玩家"<<ch<<"赢了!!!"<<endl;
suc=0;
}
}
}
int main()
{
cout<<"游戏规则:"<<endl<<"棋盘格式如图,玩家X和玩家O在棋盘上交替走棋"<<endl;
cout<<"约定玩家X使用符号X,玩家O使用符号O"<<endl;
cout<<"谁先使一横行或一竖行或对角线上有三个自己的符号,就胜利了!"<<endl;
string s="y";
string ch;
while(s=="y"||s=="Y")
{
inarrdata(arr); //棋盘座标编号
display(arr); //显示初始棋盘
suc=1;
cout<<"请选择玩家X是否先走?(y/n)";
cin>>ch;
while(ch!="y"&&ch!="Y"&&ch!="n"&&ch!="N")
{
cout<<"错误!请输入y或n:";
cin>>ch;
}
if((ch=="y")||(ch=="Y")) //输入Y,表示X先走棋
{
while(suc)
{
manstep('X');
if(suc)
manstep('O');
}
}
else //O先走棋
{
while(suc)
{
manstep('O');
if(suc)
manstep('X');
}
}
if(n3==0&&c3==0)
cout<<endl<<"和棋!"<<endl<<endl;
cout<<"再来一盘(y/n)?";
cin>>s;
while(s!="y"&&s!="Y"&&s!="n"&&s!="N")
{
cout<<"错误!请输入y或n:";
cin>>s;
}
}
return 0;
}

与井字格游戏攻略相关的攻略