很坑爹的小遊戲,至於怎麼坑爹,嘎嘎~自己研究去吧~!
#include#include#include#include#includeusing namespace std;
void loc(int x,int y);/*定位游標*/
void welcome(); /*建立歡迎介面*/
void buildmap();/*建立介面*/
void getnumber();/*獲得測試的值n,m,s*/
void choice(); /*玩家選擇是否先手*/
void gamestart();/*開始遊戲!*/
void showscore();
void end();
int n1,n2,m,s,r,n;/*n1為玩家先手的石子個數,n2為電腦先手的石子個數*/
int yesno;/*1為玩家先手,2為電腦先手*/
void loc(int x,int y)
; handle hout=getstdhandle(std_output_handle);
setconsolecursorposition(hout,pos);
}void welcome()
void getnumber()
void choice()
void buildmap()
for(int i=0;i<=50;i++)
for(int i=52;i<=70;i+=2)
for(int i=0;i<=10;i++)
for(int i=52;i<=70;i+=2)
for(int i=12;i<=20;i++)
loc(55,14);
printf("《博弈的智慧型》");
loc(55,16);
loc(55,19);
}void showscore()/*狀態列*/
void gamestart()
else
n=n2;
showscore();
sleep(4000);
if(yesno==0)/*如果電腦先取石子*/
while(n>0)
n=n-x;
loc(2,y1);
y1+=2;
printf("玩家取走了%d個石子,還剩餘%d個",x,n);
/*下面該電腦取走石子了*/
sleep(2000);
x=(m+1)-x;
n=n-x;
/*電腦每次只要拿走m+1-x個就是必勝態*/
loc(2,y1);
y1+=2;
printf("電腦取走了%d個石子,還剩餘%d個",x,n);
loc(65,6);
printf(" ");
}loc(2,y1);
printf("你輸啦!再來一次吧?贏了會有大禮哦~");
y1+=2;
loc(2,y1);
printf("是否再來一把?(y/n):");
}void end()
int main()
; dowhile(x[0]=='y');
loc(0,50);
end();
return 0;
}
博弈 取石子遊戲
兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。inp...
題解 取石子遊戲(博弈)
題目描述 一天小明和小紅在玩取石子遊戲,遊戲規則是這樣的 1 本遊戲是乙個二人遊戲 2 有一堆石子,共有n個 3 兩人輪流進行 4 每走一步可以取走1 m個石子 5 最先取光石子的一方為勝。如果遊戲的雙方使用的都是最優策略,請輸出哪個人能贏。輸入輸入的第一行是乙個正整數c c 100 表示有c組測試...
博弈 取 2堆 石子遊戲
題目 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者...