導航:首頁 > 游戲攻略 > 井字格游戲攻略

井字格游戲攻略

發布時間: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;
}

與井字格游戲攻略相關的攻略