當前位置:首頁 » 編程語言 » c語言螞蟻

c語言螞蟻

發布時間: 2022-12-22 08:50:13

① C語言編程

#include <stdlib.h>
#include <Windows.h>
#include <conio.h>
typedef int elemtype;
typedef struct DuLNode //定義結點類型
{
elemtype data;
struct DuLNode *prior;
struct DuLNode *next;
}DuLNode, *Dulinklist;
Dulinklist initlist() //初始化雙向鏈表
{
Dulinklist L;
L = (Dulinklist)malloc(sizeof(DuLNode)); //表頭附加結點
if (!L) exit(-2);
L->data = 0;
L->next = NULL;
L->prior =NULL;
return L;
}//初始化了一個空表
void createlist(Dulinklist *L) //尾插法生成雙向鏈表
{
Dulinklist p, t;
t = *L;
printf("尾插法:請輸入雙向鏈表節點值,以輸入0結束。\n");
scanf("%d", &t->data);
while (t->data != 0)
{
p = (Dulinklist)malloc(sizeof(DuLNode));
if (!p) exit(-2);
t->next = p;
p->prior = t;
scanf("%d", &p->data);
t = p;
}
t ->next= NULL;
/*(*L)->prior = t->prior;
t->prior->next = (*L);*/
}
void print_list(Dulinklist L)
//通過鏈表的遍歷來輸出鏈表中的信息
{
int i;
Dulinklist p;
printf("雙向鏈表為:\nhead");
for (p = L, i = 1; p!= NULL; p = p->next)
{
printf("-> %d<-", p->data);
i++;
}
//printf("-> %d\n", p->data);
printf("\n雙向鏈表的長度為 %d\n\n", i);
}

/*
一趟快速排序的具體做法是:附設兩個指針low和high(即第一個和最後一個指針),
他們的初值分別為low和high設樞軸(一般為low的值pivot)記錄的關鍵字
(即本例子中的整形data)為pivot,則首先從high所指位置
起向前搜索到第一個關鍵字小於pivot的記錄和樞軸記錄交換,然後從low所指位置起
向後搜索,找到第一個關鍵字大於pivot的記錄和樞軸記錄相互交換,重復這兩步直
至low = high為止。
*/
Dulinklist partion(Dulinklist pstHead, Dulinklist pstLow, Dulinklist pstHigh)
{
elemtype iTmp = 0;
elemtype pivot = 0;
if (!pstHead)
{
printf("錯誤,頭節點為空!/n");
exit(1);
}
if (!pstHead->next)
{
return pstHead->next;//就一個元素
}
pivot = pstLow->data;
while (pstLow != pstHigh)
{
//從後面往前換
while (pstLow != pstHigh && pstHigh->data >= pivot)
{
pstHigh = pstHigh->prior;
}
//交換high low
iTmp = pstLow->data;
pstLow->data = pstHigh->data;
pstHigh->data = iTmp;
//從前往後換
while (pstLow != pstHigh && pstLow->data <= pivot)
{
pstLow = pstLow->next;
}
//交換high low
iTmp = pstLow->data;
pstLow->data = pstHigh->data;
pstHigh->data = iTmp;
}
return pstLow;
}
//快排
void quick_sort(Dulinklist pstHead, Dulinklist pstLow, Dulinklist pstHigh)
{
Dulinklist pstTmp = NULL;
pstTmp = partion(pstHead, pstLow, pstHigh);
if (pstLow != pstTmp)
{
quick_sort(pstHead, pstLow, pstTmp->prior);
}
if (pstHigh != pstTmp)
{
quick_sort(pstHead, pstTmp->next, pstHigh);
}
}
void main(){
Dulinklist h = initlist(),head,last;
createlist(&h);
print_list(h);
last = h;
while (last->next)
{
last = last->next;
}
quick_sort(h, h->next, last->prior);
print_list(h);
}

② 有沒有人用C語言做過『模擬螞蟻巢穴』這個程序

咱們來考慮考慮這個游戲規則 好像問題比較嚴重阿
一沒有資源限制
二沒有兵種問題 沒有克制問題
三也是最重要的 隨機決定搏鬥結果 而且是一個對一個單挑 這樣的話一邊100隻打另一邊50隻打完了勝者剩50隻 兵力優勢方根本沒便宜占 也就是說這個游戲里也就沒有了陣型的問題
那就變成單純拼兵了
可是雙方造兵的唯一限制是回合數 又不要資源 所以只要都全速造兵 那就是完全均勢 誰都贏不了
還有 規則裡面一些平衡性設定沒有講清楚
比如蟻巢的生命值 蟻後工蟻在攻擊力生命值上的區別 以及棋盤的尺寸等 這些是會影響比賽進程的
比如如果棋盤很小 那雙方都會rush 如果棋盤很大 那雙方都會擴張 只有棋盤大小適中 這個游戲才有得玩

熱點內容
不用internet打開ftp 發布:2025-05-15 23:06:00 瀏覽:152
sql字元串取數字 發布:2025-05-15 22:57:45 瀏覽:123
推薦編程課 發布:2025-05-15 22:34:12 瀏覽:618
表拒絕訪問 發布:2025-05-15 22:29:37 瀏覽:978
電腦怎樣解壓文件 發布:2025-05-15 22:25:32 瀏覽:439
dns伺服器怎麼看 發布:2025-05-15 22:17:27 瀏覽:151
3dm的壓縮包 發布:2025-05-15 22:09:23 瀏覽:662
和存儲字長 發布:2025-05-15 21:54:09 瀏覽:515
用什麼寫c語言 發布:2025-05-15 21:35:56 瀏覽:418
linux讀取u盤 發布:2025-05-15 21:32:13 瀏覽:508