Mine Sweeper/ì�´ìŠ¹í•œ ¶
Python ¶
ë�°ë¸”ìŠ¤ìº í”„2005/화요ì�¼ ë�°ë¸”ìŠ¤ìº í”„2005/pythonì�˜ ToyProblem
ìž…ë ¥ 처리가 귀찮아서 안 만들었다.
변수값� 바꾸�.
ìž…ë ¥ 처리가 귀찮아서 안 만들었다.
변수값� 바꾸�.
~cpp
def search():
for i in range(height):
for j in range(width):
if M[i][j]=='*':
if M[i-1][j-1]!= '*' and i-1>=0 and j-1>=0 and i-1<width and j-1<height:
M[i-1][j-1]=M[i-1][j-1]+1
if M[i-1][j]!= '*' and i-1>=0 and j>=0 and i-1<width and j<height:
M[i-1][j]=M[i-1][j]+1
if M[i-1][j+1]!= '*' and i-1>=0 and j+1>=0 and i-1<width and j+1<height:
M[i-1][j+1]=M[i][j+1]+1
if M[i][j-1]!= '*' and i>=0 and j-1>=0 and i<width and j-1<height:
M[i][j-1]=M[i][j-1]+1
if M[i][j+1]!= '*' and i>=0 and j+1>=0 and i<width and j+1<height:
M[i][j+1]=M[i][j+1]+1
if M[i+1][j-1]!= '*' and i+1>=0 and j-1>=0 and i+1<width and j-1<height:
M[i+1][j-1]=M[i+1][j-1]+1
if M[i+1][j]!= '*' and i+1>=0 and j>=0 and i+1<width and j<height:
M[i+1][j]=M[i+1][j]+1
if M[i+1][j+1]!= '*' and i+1>=0 and j+1>=0 and i+1<width and j+1<height:
M[i+1][j+1]=M[i+1][j+1]+1
width = 4
height = 4
M=[['*','.','.','.'],['.','.','.','.'],['.','*','.','.'],['.','.','.','.']]
for i in range(height):
for j in range(width):
if M[i][j]!='*':
M[i][j]=int(0)
search()
for i in range(height):
print M[i]
FLASH ¶
1학기였나?? 피씨실�서 지뢰찾기하다가 ��나서 짜본 소스.
ì�´ë•� ê°�ì²´ê°€ 무언지 잘 몰ë�¼ì„œ 함수와 ì „ì— ë³€ìˆ˜ë“¤ë§Œ ê°€ì§€ê³ ë§Œë“¤ì–´ 본...-_-ã…‹;; Cëž‘ 다른건 Array ê°�체를 사용한 ì •ë�„??;;
목표는 그래픽 ì¶œë ¥ê¹Œì§€ í• ë ¤ê³ í–ˆëŠ”ë�°;; 귀찮아서리~;;
ì�´ë•� ê°�ì²´ê°€ 무언지 잘 몰ë�¼ì„œ 함수와 ì „ì— ë³€ìˆ˜ë“¤ë§Œ ê°€ì§€ê³ ë§Œë“¤ì–´ 본...-_-ã…‹;; Cëž‘ 다른건 Array ê°�체를 사용한 ì •ë�„??;;
목표는 그래픽 ì¶œë ¥ê¹Œì§€ í• ë ¤ê³ í–ˆëŠ”ë�°;; 귀찮아서리~;;
ì�¸í’‹ 아웃풋 ì¡°ê±´ì�´ 틀립니다. êµ³ì�´ ìƒ�관없ì�„것 같아서 ì˜¬ë ¤ë´…ë‹ˆë‹¤.
layer (ì „ì—)
~cpp
function set_val() {
/////////////////////////지뢰ì�˜ 갯수와 ë§µì�˜ í�¬ê¸°ë¥¼ ê²°ì •í•˜ëŠ” 변수 ì„¤ì •ë¶€
size = 15; // ë§µ 사ì�´ì¦ˆ ì„¤ì •
quantityMine=100;// 지뢰ì�˜ 갯수 ì„¤ì •
/////////////////////////////////////////////////////////////////////////
i = j = 0;
set_all_num = 0;
//size*size 사ì�´ì¦ˆì�˜ 2중 ë°°ì—´ì�˜ ëª¨ë“ ì›�소를 set_all_num값으로 초기화
map = new Array();
for (i=0; i<size; i++) {
map[i] = new Array();
for (j=0; j<size; j++) {
map[i][j] = set_all_num;
}
}
trace("end set all value");
}
// 지뢰� 위치를 세팅
function setMine(){
mine_count = 0;
while(mine_count<quantityMine){
for (i=0; i<size; i++) {
for (j=0; j<size; j++) {
if( map[i][j]!= -1 && mine_count < quantityMine && !( random(100) % 5 ) ){
map[i][j]='*';
trace("지뢰 배치 " + i + " " + j + " 지금 까지 배치� 지뢰� 갯수 : " + ++mine_count);
}else{
}
}
}
}
}
// 지뢰위치만� 표시한다.
function showMineMap(){
trace(" ");
trace(" ");
trace(" ");
for(i=0; i<size; i++){
temp = new Array();
temp = map[i];
showMap=temp.join(" ");
trace(showMap);
}
trace(" ");
trace(" ");
trace(" ");
}
// 주변ì�˜ 지뢰 갯수를 ì„¸ê³ í‘œì‹œí•œë‹¤.
function checkMineMap(){
minecount = 0;
for(i=0; i<size; i++){
for(j=0; j<size; j++){
if(map[i][j]!='*'){
if(map[i-1][j-1]=='*')minecount++;
if(map[i-1][j]=='*')minecount++;
if(map[i-1][j+1]=='*')minecount++;
if(map[i][j-1]=='*')minecount++;
if(map[i][j+1]=='*')minecount++;
if(map[i+1][j-1]=='*')minecount++;
if(map[i+1][j]=='*')minecount++;
if(map[i+1][j+1]=='*')minecount++;
map[i][j]=minecount;
}
minecount=0;
}
}
}
blank symbol : í”Œë ˆì‹œê°€ 실행ë�˜ë©´ 변수를 ì´ˆê¸°í™”í•˜ê³ í•¨ìˆ˜ë¥¼ 부르는.
~cpp
onClipEvent(load){
// 변수를 모� 초기화
_root.set_val();
// 0으로 셋팅ë�œ ë°°ì—´ì�˜ ëª¨ë“ ì›�소를 아웃íŽ�ì—� 보여주는 함수
_root.showMineMap();
// 지뢰� 위치를 세팅
_root.setMine();
// 지뢰 세팅� 완료� 맵� 보여줌
_root.showMineMap();
// 주변ì�˜ 지뢰 갯수를 ì„¸ê³ í‘œì‹œí•œë‹¤.
_root.checkMineMap();
// 지뢰 세팅� 완료� 맵� 보여줌
_root.showMineMap();
}










