❶ c語言的推箱子程序,解釋一下
共用體的內存是共享的,也就是說chKeyBit數組與iKeyInfo佔用同一段內存
指定了iKeyInfo,實際上chKeyBit數組的元素也有值了
還需要注意的是對於一個類型的值,訪問其內存時是先從高位地址到低位地址,比如,long型四個位元組,若它讀出的值是0x12345678那麼它的地址空間對應是
12高位地址
34
56
78低位地址
而數組是順序分配的,下標大的地址高,所以才有通過*(數組名+i)訪問第i+1個元素。
對了TC或WinTC編譯器里
unsigned int是兩個位元組的
❷ 學期末需要一份C語言大作業 (需要一份word文檔的試驗報告和一份調試成功的c語言程序) 題目無限制
調試成功的程序我有一大推,但是試驗報告沒有。想要的話可以hi我,五子棋,俄羅斯方塊,掃雷游戲,推箱子,貪吃蛇等。
❸ C語言推箱子:如何記錄目的地坐標並判斷勝利
不用指針,那你就建個數組用來存,目的地坐標,如果目的地數目一樣的話,數組大小就確定了,每副圖目的地數目不一樣的話,那你就以最大個數為准。再用一個變數存目的地數目。
b[N][2]
這樣你在判斷目的在哪時,就不用m,n ,把坐標存入 b[k][0] b[k][1]中
後面 a[b[0][0]][b[0][1]]!='@'&&a[b[1][0]][b[1][1]]!='@'&&..這樣來判斷。
也可以在前面用個循環來判斷。
第二種方法,定義一個變數k 在你把 a[x][x]的'+'變為 '@'時 k++ a[x][x]的'@'變為 '+'時 k--
當k等於目的數時就結束。
❹ 用C語言寫推箱子游戲,怎樣把每次的步數寫進文件並比較的出最小步數
我可以給你一些C操作文件的建議
寫入文件使用fwrite()函數,
比較文件中各個數據的最小值,你可以逐個讀出,在比較
下面是一個例子
#include<stdio.h>
int main()
{
FILE *fp;
int num[5]={10,20,50,40,60};
int i;
int number;
fp=fopen("Data","w"); //打開Data文件,文件操作為寫入
if(NULL==fp) //若打開失敗,返回NULL
{
printf("Can't open the file\n");
return;
}
for(i=0;i<5;i++) //將num中的數據逐個寫入
{
fwrite(&num[i],sizeof(int),1,fp);
}
fclose(fp); //關閉文件
fp=fopen("Data","r"); //重新打開,文件操作為讀
while(fread(&number,sizeof(int),1,fp)!=0) //逐個讀取文件中的數據,並賦予number
printf("\n%d",number); //輸出每個數據
fclose(fp);
}
❺ c語言推箱子
//空:0牆:1箱子:3巢:4箱子與巢重合:5
[MAPCOUNT]
map_count=8
[MAP1]
w=8
h=8
nest_count=4
l1=00011100
l2=00013100
l3=11110100
l4=13202111
l5=11142031
l6=00121111
l7=00131000
l8=00111000
[MAP2]
w=9
h=9
nest_count=3
l1=111110000
l2=140010000
l3=102210111
l4=102010131
l5=111011131
l6=011000031
l7=010001001
l8=010001111
l9=011111000
[MAP3]
w=10
h=7
nest_count=4
l1=0111111100
l2=0100000111
l3=1121110001
l4=1040200201
l5=1033102011
l6=1133100010
l7=0111111110
[MAP4]
w=6
h=8
nest_count=5
l1=011110
l2=110010
l3=142010
l4=112011
l5=110201
l6=132001
l7=133531
l8=111111
//以上為地圖數據文件,保存為boxdata.dat文件
//空:0牆:1箱子:3巢:4箱子與巢重合:5
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<windows.h>
#include<string.h>
typedefstruct
{
intx;
inty;
}PT;
int**s;
PTman;
PT*nest=NULL;
PTprev;
intnest_count=0;
intmap_count=0;
intgate=1;
intw,h;
charwork_dir[100]={'