資源簡(jiǎn)介
這是一個(gè)用c語(yǔ)言編寫的四子棋小程序,本程序作為一個(gè)平臺(tái)使用,對(duì)戰(zhàn)雙方可以分別編寫一個(gè)人工智能程序進(jìn)行對(duì)戰(zhàn),特別鍛煉編程初學(xué)者的編程能力。
代碼片段和文件信息
//?AI修正.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
int?_tmain(int?argc?_TCHAR*?argv[])
{
return?0;
}
#include
#include?“time.h“
#include?“stdlib.h“
#define?m?10????????????????????//m是棋盤的寬度,n是高度
#define?n?10
int?fucksum=0jinggao=0Abomb=1Bbomb=1win=0h[m]={0}now[m][n]={0}nowfora[m][n]={0}nowforb[m][n]={0};
//一些重要和不重要的全局變量
void?copy(int?a[m][n]int?b[m][n])
{
for?(int?i=0;i<=m-1;i++)
for?(int?j=0;j<=n;j++)
b[i][j]=a[i][j];
}
void?delay(int?time)
{
int?ij;
for?(i=0;i<=100000;i++)
for?(j=0;j<=time;j++);
}
#include“abab.h“
//#include“Learner.h“
//#include“SB.H“ //此處要將參賽選手的.h格式的作品包含進(jìn)來(lái),其中應(yīng)該有_XXX_ST函數(shù)
int?main()
{
void?push(intint);
int?check(void);
void?winner(int);
srand((unsigned)time(NULL));
int?papb=-1;
while?(sum if?(sum>n*m*9/10){??????????????????????//如果棋盤上的棋子數(shù)目超過(guò)了90%,會(huì)送每人一個(gè)炸彈
Abomb++;
Bbomb++;
}
copy(nownowfora);
pa=_135_ST(nowfora1AbombBbombpb); //選手A是一個(gè)只會(huì)隨機(jī)下子的AI
//如果想要測(cè)試自己寫的AI,將自己的函數(shù)包含進(jìn)來(lái)之后把_rand_ST換成自己的函數(shù)名稱就可以了
// scanf(“%d“&pa);
if?((pa>=m*2)||(pa<0)){ //如果輸入不規(guī)范的話,嘿嘿,就直接輸了
winner(2);
break;
}
if?(pa>=m){
if?(Abomb>0)?Abomb--;
else?pa=pa%m;
}
push(pa1); //下滿子兒的地方可千萬(wàn)別往里投子兒了,要不然也輸
if?(jinggao)?{
winner(2);
break;
}
if?(win=check()){
winner(win);
break;
}
copy(nownowforb);
// pb=_SB_ST(nowforb2AbombBbombpa); //選手B只會(huì)往第3列下子兒
scanf(“%d“&pb);
if?((pb>=m*2)||(pb<0)){
winner(1);
break;
}
if?(pb>=m){
if?(Bbomb>0)?Bbomb--;
else?pb=pb%m;
}
push(pb2);
if?(jinggao)?{
winner(1);
break;
}
if?(win=check()){
winner(win);
break;
}
}
if?(sum==n*m)?printf(“糟糕,平局了\n“);
return?0;
}
void?pr(void)
{
int?i;
// delay(5000);
printf(“\n“);
for?(int?j=n-1;j>=0;j--){
printf(“%d????“j);
for?(i=0;i<=m-1;i++)?if?(now[i][j])?printf(“???%c“10+now[i][j]);
else?printf(“????“);
printf(“\n“);
}
printf(“\n?????“);
for?(i=0;i
評(píng)論
共有 條評(píng)論