From 90d5c8bd6373401b6a662966b18412deb8aec713 Mon Sep 17 00:00:00 2001 From: Sheldon Lee Date: Mon, 15 Jun 2020 01:12:14 +0100 Subject: [PATCH] Works. Generates random grid --- grid.c | 65 +++++- grid.h | 7 +- main.c | 16 +- session.vim | 605 ++++++++++++++++++++++++++++++++++++++-------------- 4 files changed, 524 insertions(+), 169 deletions(-) diff --git a/grid.c b/grid.c index e5afd16..35a6949 100644 --- a/grid.c +++ b/grid.c @@ -1,22 +1,73 @@ #include +#include #include "grid.h" void initGrid(Grid* grid, unsigned int width, unsigned int height) { grid->size = width*height; grid->width = width; - grid->arr = (bool*)malloc(sizeof(bool)*grid->size); + grid->state = (bool*)malloc(sizeof(bool)*grid->size); + grid->next_state = (bool*)malloc(sizeof(bool)*grid->size); } +void randomizeGrid(Grid* grid) +{ + srand(time(NULL)); + for (int i = 0; i < grid->size; i++) { + grid->state[i] = rand()%2; + } +} // maps x, y coordinate to array index of grid unsigned int toIndex(Grid* grid, int x, int y) { return (grid->width*y + x)%grid->size; } +bool getPixel(Grid* grid, int x, int y) +{ + return grid->state[toIndex(grid, x, y)]; +} + void clearGrid(Grid* grid) { - for (int i = 0; i < grid->size; i++) grid->arr[i]=false; + for (int i = 0; i < grid->size; i++) grid->state[i]=false; +} + +// check if cell's next state is alive +static bool isAliveNext(Grid* grid, int x, int y) +{ + bool nw = getPixel(grid, x-1, y-1); + bool n = getPixel(grid, x, y-1); + bool ne = getPixel(grid, x+1, y-1); + bool w = getPixel(grid, x-1, y); + bool e = getPixel(grid, x+1, y); + bool sw = getPixel(grid, x-1, y+1); + bool s = getPixel(grid, x, y+1); + bool se = getPixel(grid, x+1, y+1); + + bool currentlyAlive = grid->state[toIndex(grid, x, y)]; + + const int no_neighbors = 8; + bool neighbors[] = { + nw, n, ne, + w, e, + sw, s, se + }; + + int alive_neighbors = 0; + for (int i = 0; i < no_neighbors; i++) { + alive_neighbors += neighbors[i]; + } + // rules + if (currentlyAlive) { + if (alive_neighbors == 2 || alive_neighbors == 3) { + return true; + } + } + else if (alive_neighbors == 3) { + return true; + } + return false; } void updateGrid(Grid* grid) @@ -26,14 +77,18 @@ void updateGrid(Grid* grid) for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { - + grid->next_state[toIndex(grid, x, y)] = isAliveNext(grid, x, y); } } + + for (int i = 0; i < grid->size; i++) { + grid->state[i] = grid->next_state[i]; + } } void putPixel(Grid* grid, int x, int y) { - grid->arr[toIndex(grid, x, y)] = true; + grid->state[toIndex(grid, x, y)] = true; } void drawGrid(Grid* grid) @@ -43,7 +98,7 @@ void drawGrid(Grid* grid) height = grid->size/width; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { - if (grid->arr[toIndex(grid, x, y)]) mvprintw(y, x, "x"); + if (grid->state[toIndex(grid, x, y)]) mvprintw(y, x, "x"); else mvprintw(y, x, " "); } } diff --git a/grid.h b/grid.h index ce363ea..a97b919 100644 --- a/grid.h +++ b/grid.h @@ -7,13 +7,18 @@ typedef struct Grid { unsigned int size; unsigned int width; - bool* arr; + bool* state; + bool* next_state; } Grid; void initGrid(Grid* grid, unsigned int width, unsigned int height); +void randomizeGrid(Grid* grid); + unsigned int toIndex(Grid* grid, int x, int y); +bool getPixel(Grid* grid, int x, int y); + void clearGrid(Grid* grid); void updateGrid(Grid* grid); diff --git a/main.c b/main.c index d4d07a1..ecc50dc 100644 --- a/main.c +++ b/main.c @@ -30,22 +30,26 @@ int main() Vect2i pos = {0, 0}; Vect2i vel = {1, 1}; - const int DELAY = 33*pow(10,3); + //hz + const int FRAME_RATE = 30; + + const int DELAY = (float)pow(10,6)/(float)FRAME_RATE; Grid grid; initGrid(&grid, width, height); + randomizeGrid(&grid); putPixel(&grid, pos.x, pos.y); while (running) { - clearGrid(&grid); - putPixel(&grid, pos.x, pos.y); drawGrid(&grid); refresh(); - moveVect2i(&pos, vel.x, vel.y); - contain(&pos.x, &vel.x, 0, width-1); - contain(&pos.y, &vel.y, 0, height-1); + //moveVect2i(&pos, vel.x, vel.y); + //contain(&pos.x, &vel.x, 0, width-1); + //contain(&pos.y, &vel.y, 0, height-1); + + updateGrid(&grid); usleep(DELAY); } diff --git a/session.vim b/session.vim index 7d9272e..32da23e 100644 --- a/session.vim +++ b/session.vim @@ -19,6 +19,7 @@ set smartindent set suffixes=.bak,~,.o,.info,.swp,.aux,.bbl,.blg,.brf,.cb,.dvi,.idx,.ilg,.ind,.inx,.jpg,.log,.out,.png,.toc set tabstop=4 set undodir=~/.cache/vim/undo// +set window=63 let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0 let v:this_session=expand(":p") silent only @@ -42,147 +43,6 @@ tabnew tabnew tabnew tabrewind -edit grid.c -set splitbelow splitright -set nosplitbelow -set nosplitright -wincmd t -set winminheight=0 -set winheight=1 -set winminwidth=0 -set winwidth=1 -argglobal -setlocal keymap= -setlocal noarabic -setlocal autoindent -setlocal backupcopy= -setlocal balloonexpr= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden= -setlocal buflisted -setlocal buftype= -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal cinoptions= -setlocal cinwords=if,else,while,do,for,switch -setlocal colorcolumn= -setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// -setlocal commentstring=/*%s*/ -setlocal complete=.,w,b,u,t,i -setlocal concealcursor= -setlocal conceallevel=0 -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal nocursorline -setlocal cursorlineopt=both -setlocal define=^\\s*#\\s*define -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat= -setlocal noexpandtab -if &filetype != 'c' -setlocal filetype=c -endif -setlocal fixendofline -setlocal foldcolumn=0 -setlocal foldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -setlocal foldmethod=manual -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=croql -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include=^\\s*#\\s*include -setlocal includeexpr= -setlocal indentexpr= -setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255 -setlocal keywordprg= -setlocal nolinebreak -setlocal nolisp -setlocal lispwords= -setlocal nolist -setlocal makeencoding= -setlocal makeprg= -setlocal matchpairs=(:),{:},[:] -setlocal modeline -setlocal modifiable -setlocal nrformats=bin,octal,hex -set number -setlocal number -setlocal numberwidth=4 -setlocal omnifunc=ccomplete#Complete -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal noreadonly -set relativenumber -setlocal relativenumber -setlocal norightleft -setlocal rightleftcmd=search -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -setlocal signcolumn=auto -setlocal smartindent -setlocal softtabstop=0 -setlocal nospell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal statusline= -setlocal suffixesadd= -setlocal swapfile -setlocal synmaxcol=3000 -if &syntax != 'c' -setlocal syntax=c -endif -setlocal tabstop=4 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal noundofile -setlocal undolevels=-123456 -setlocal varsofttabstop= -setlocal vartabstop= -setlocal wincolor= -setlocal nowinfixheight -setlocal nowinfixwidth -setlocal wrap -setlocal wrapmargin=0 -silent! normal! zE -let s:l = 29 - ((28 * winheight(0) + 27) / 54) -if s:l < 1 | let s:l = 1 | endif -exe s:l -normal! zt -29 -normal! 0 -tabnext edit main.c set splitbelow splitright set nosplitbelow @@ -318,15 +178,19 @@ setlocal nowinfixwidth setlocal wrap setlocal wrapmargin=0 silent! normal! zE -let s:l = 1 - ((0 * winheight(0) + 27) / 54) +let s:l = 37 - ((36 * winheight(0) + 31) / 62) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -1 +37 normal! 0 tabnext -edit vect.c +edit grid.c set splitbelow splitright +wincmd _ | wincmd | +vsplit +1wincmd h +wincmd w set nosplitbelow set nosplitright wincmd t @@ -334,6 +198,293 @@ set winminheight=0 set winheight=1 set winminwidth=0 set winwidth=1 +exe 'vert 1resize ' . ((&columns * 135 + 136) / 272) +exe 'vert 2resize ' . ((&columns * 136 + 136) / 272) +argglobal +1argu +setlocal keymap= +setlocal noarabic +setlocal autoindent +setlocal backupcopy= +setlocal balloonexpr= +setlocal nobinary +setlocal nobreakindent +setlocal breakindentopt= +setlocal bufhidden= +setlocal buflisted +setlocal buftype= +setlocal nocindent +setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal cinoptions= +setlocal cinwords=if,else,while,do,for,switch +setlocal colorcolumn= +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// +setlocal commentstring=/*%s*/ +setlocal complete=.,w,b,u,t,i +setlocal concealcursor= +setlocal conceallevel=0 +setlocal completefunc= +setlocal nocopyindent +setlocal cryptmethod= +setlocal nocursorbind +setlocal nocursorcolumn +setlocal nocursorline +setlocal cursorlineopt=both +setlocal define=^\\s*#\\s*define +setlocal dictionary= +setlocal nodiff +setlocal equalprg= +setlocal errorformat= +setlocal noexpandtab +if &filetype != 'c' +setlocal filetype=c +endif +setlocal fixendofline +setlocal foldcolumn=0 +setlocal foldenable +setlocal foldexpr=0 +setlocal foldignore=# +setlocal foldlevel=0 +setlocal foldmarker={{{,}}} +setlocal foldmethod=manual +setlocal foldminlines=1 +setlocal foldnestmax=20 +setlocal foldtext=foldtext() +setlocal formatexpr= +setlocal formatoptions=croql +setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* +setlocal formatprg= +setlocal grepprg= +setlocal iminsert=0 +setlocal imsearch=-1 +setlocal include=^\\s*#\\s*include +setlocal includeexpr= +setlocal indentexpr= +setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal noinfercase +setlocal iskeyword=@,48-57,_,192-255 +setlocal keywordprg= +setlocal nolinebreak +setlocal nolisp +setlocal lispwords= +setlocal nolist +setlocal makeencoding= +setlocal makeprg= +setlocal matchpairs=(:),{:},[:] +setlocal modeline +setlocal modifiable +setlocal nrformats=bin,octal,hex +set number +setlocal number +setlocal numberwidth=4 +setlocal omnifunc=ccomplete#Complete +setlocal path= +setlocal nopreserveindent +setlocal nopreviewwindow +setlocal quoteescape=\\ +setlocal noreadonly +set relativenumber +setlocal relativenumber +setlocal norightleft +setlocal rightleftcmd=search +setlocal noscrollbind +setlocal scrolloff=-1 +setlocal shiftwidth=4 +setlocal noshortname +setlocal showbreak= +setlocal sidescrolloff=-1 +setlocal signcolumn=auto +setlocal smartindent +setlocal softtabstop=0 +setlocal nospell +setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ +setlocal spellfile= +setlocal spelllang=en +setlocal statusline= +setlocal suffixesadd= +setlocal swapfile +setlocal synmaxcol=3000 +if &syntax != 'c' +setlocal syntax=c +endif +setlocal tabstop=4 +setlocal tagcase= +setlocal tagfunc= +setlocal tags= +setlocal termwinkey= +setlocal termwinscroll=10000 +setlocal termwinsize= +setlocal textwidth=0 +setlocal thesaurus= +setlocal noundofile +setlocal undolevels=-123456 +setlocal varsofttabstop= +setlocal vartabstop= +setlocal wincolor= +setlocal nowinfixheight +setlocal nowinfixwidth +setlocal wrap +setlocal wrapmargin=0 +silent! normal! zE +let s:l = 39 - ((38 * winheight(0) + 30) / 61) +if s:l < 1 | let s:l = 1 | endif +exe s:l +normal! zt +39 +normal! 022| +wincmd w +argglobal +1argu +if bufexists("grid.h") | buffer grid.h | else | edit grid.h | endif +setlocal keymap= +setlocal noarabic +setlocal autoindent +setlocal backupcopy= +setlocal balloonexpr= +setlocal nobinary +setlocal nobreakindent +setlocal breakindentopt= +setlocal bufhidden= +setlocal buflisted +setlocal buftype= +setlocal nocindent +setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal cinoptions= +setlocal cinwords=if,else,while,do,for,switch +setlocal colorcolumn= +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// +setlocal commentstring=/*%s*/ +setlocal complete=.,w,b,u,t,i +setlocal concealcursor= +setlocal conceallevel=0 +setlocal completefunc= +setlocal nocopyindent +setlocal cryptmethod= +setlocal nocursorbind +setlocal nocursorcolumn +setlocal nocursorline +setlocal cursorlineopt=both +setlocal define=^\\s*#\\s*define +setlocal dictionary= +setlocal nodiff +setlocal equalprg= +setlocal errorformat= +setlocal noexpandtab +if &filetype != 'cpp' +setlocal filetype=cpp +endif +setlocal fixendofline +setlocal foldcolumn=0 +setlocal foldenable +setlocal foldexpr=0 +setlocal foldignore=# +setlocal foldlevel=0 +setlocal foldmarker={{{,}}} +setlocal foldmethod=manual +setlocal foldminlines=1 +setlocal foldnestmax=20 +setlocal foldtext=foldtext() +setlocal formatexpr= +setlocal formatoptions=croql +setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* +setlocal formatprg= +setlocal grepprg= +setlocal iminsert=0 +setlocal imsearch=-1 +setlocal include=^\\s*#\\s*include +setlocal includeexpr= +setlocal indentexpr= +setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal noinfercase +setlocal iskeyword=@,48-57,_,192-255 +setlocal keywordprg= +setlocal nolinebreak +setlocal nolisp +setlocal lispwords= +setlocal nolist +setlocal makeencoding= +setlocal makeprg= +setlocal matchpairs=(:),{:},[:] +setlocal modeline +setlocal modifiable +setlocal nrformats=bin,octal,hex +set number +setlocal number +setlocal numberwidth=4 +setlocal omnifunc=ccomplete#Complete +setlocal path= +setlocal nopreserveindent +setlocal nopreviewwindow +setlocal quoteescape=\\ +setlocal noreadonly +set relativenumber +setlocal relativenumber +setlocal norightleft +setlocal rightleftcmd=search +setlocal noscrollbind +setlocal scrolloff=-1 +setlocal shiftwidth=4 +setlocal noshortname +setlocal showbreak= +setlocal sidescrolloff=-1 +setlocal signcolumn=auto +setlocal smartindent +setlocal softtabstop=0 +setlocal nospell +setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ +setlocal spellfile= +setlocal spelllang=en +setlocal statusline= +setlocal suffixesadd= +setlocal swapfile +setlocal synmaxcol=3000 +if &syntax != 'cpp' +setlocal syntax=cpp +endif +setlocal tabstop=4 +setlocal tagcase= +setlocal tagfunc= +setlocal tags= +setlocal termwinkey= +setlocal termwinscroll=10000 +setlocal termwinsize= +setlocal textwidth=0 +setlocal thesaurus= +setlocal noundofile +setlocal undolevels=-123456 +setlocal varsofttabstop= +setlocal vartabstop= +setlocal wincolor= +setlocal nowinfixheight +setlocal nowinfixwidth +setlocal wrap +setlocal wrapmargin=0 +silent! normal! zE +let s:l = 20 - ((19 * winheight(0) + 30) / 61) +if s:l < 1 | let s:l = 1 | endif +exe s:l +normal! zt +20 +normal! 05| +wincmd w +exe 'vert 1resize ' . ((&columns * 135 + 136) / 272) +exe 'vert 2resize ' . ((&columns * 136 + 136) / 272) +tabnext +edit vect.c +set splitbelow splitright +wincmd _ | wincmd | +vsplit +1wincmd h +wincmd w +set nosplitbelow +set nosplitright +wincmd t +set winminheight=0 +set winheight=1 +set winminwidth=0 +set winwidth=1 +exe 'vert 1resize ' . ((&columns * 135 + 136) / 272) +exe 'vert 2resize ' . ((&columns * 136 + 136) / 272) argglobal 3argu setlocal keymap= @@ -460,12 +611,150 @@ setlocal nowinfixwidth setlocal wrap setlocal wrapmargin=0 silent! normal! zE -let s:l = 1 - ((0 * winheight(0) + 27) / 54) +let s:l = 1 - ((0 * winheight(0) + 30) / 61) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt 1 normal! 0 +wincmd w +argglobal +3argu +if bufexists("vect.h") | buffer vect.h | else | edit vect.h | endif +setlocal keymap= +setlocal noarabic +setlocal autoindent +setlocal backupcopy= +setlocal balloonexpr= +setlocal nobinary +setlocal nobreakindent +setlocal breakindentopt= +setlocal bufhidden= +setlocal buflisted +setlocal buftype= +setlocal nocindent +setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal cinoptions= +setlocal cinwords=if,else,while,do,for,switch +setlocal colorcolumn= +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// +setlocal commentstring=/*%s*/ +setlocal complete=.,w,b,u,t,i +setlocal concealcursor= +setlocal conceallevel=0 +setlocal completefunc= +setlocal nocopyindent +setlocal cryptmethod= +setlocal nocursorbind +setlocal nocursorcolumn +setlocal nocursorline +setlocal cursorlineopt=both +setlocal define=^\\s*#\\s*define +setlocal dictionary= +setlocal nodiff +setlocal equalprg= +setlocal errorformat= +setlocal noexpandtab +if &filetype != 'cpp' +setlocal filetype=cpp +endif +setlocal fixendofline +setlocal foldcolumn=0 +setlocal foldenable +setlocal foldexpr=0 +setlocal foldignore=# +setlocal foldlevel=0 +setlocal foldmarker={{{,}}} +setlocal foldmethod=manual +setlocal foldminlines=1 +setlocal foldnestmax=20 +setlocal foldtext=foldtext() +setlocal formatexpr= +setlocal formatoptions=croql +setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* +setlocal formatprg= +setlocal grepprg= +setlocal iminsert=0 +setlocal imsearch=-1 +setlocal include=^\\s*#\\s*include +setlocal includeexpr= +setlocal indentexpr= +setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal noinfercase +setlocal iskeyword=@,48-57,_,192-255 +setlocal keywordprg= +setlocal nolinebreak +setlocal nolisp +setlocal lispwords= +setlocal nolist +setlocal makeencoding= +setlocal makeprg= +setlocal matchpairs=(:),{:},[:] +setlocal modeline +setlocal modifiable +setlocal nrformats=bin,octal,hex +set number +setlocal number +setlocal numberwidth=4 +setlocal omnifunc=ccomplete#Complete +setlocal path= +setlocal nopreserveindent +setlocal nopreviewwindow +setlocal quoteescape=\\ +setlocal noreadonly +set relativenumber +setlocal relativenumber +setlocal norightleft +setlocal rightleftcmd=search +setlocal noscrollbind +setlocal scrolloff=-1 +setlocal shiftwidth=4 +setlocal noshortname +setlocal showbreak= +setlocal sidescrolloff=-1 +setlocal signcolumn=auto +setlocal smartindent +setlocal softtabstop=0 +setlocal nospell +setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ +setlocal spellfile= +setlocal spelllang=en +setlocal statusline= +setlocal suffixesadd= +setlocal swapfile +setlocal synmaxcol=3000 +if &syntax != 'cpp' +setlocal syntax=cpp +endif +setlocal tabstop=4 +setlocal tagcase= +setlocal tagfunc= +setlocal tags= +setlocal termwinkey= +setlocal termwinscroll=10000 +setlocal termwinsize= +setlocal textwidth=0 +setlocal thesaurus= +setlocal noundofile +setlocal undolevels=-123456 +setlocal varsofttabstop= +setlocal vartabstop= +setlocal wincolor= +setlocal nowinfixheight +setlocal nowinfixwidth +setlocal wrap +setlocal wrapmargin=0 +silent! normal! zE +let s:l = 4 - ((3 * winheight(0) + 30) / 61) +if s:l < 1 | let s:l = 1 | endif +exe s:l +normal! zt +4 +normal! 0 +wincmd w +2wincmd w +exe 'vert 1resize ' . ((&columns * 135 + 136) / 272) +exe 'vert 2resize ' . ((&columns * 136 + 136) / 272) tabnext edit grid.h set splitbelow splitright @@ -602,11 +891,11 @@ setlocal nowinfixwidth setlocal wrap setlocal wrapmargin=0 silent! normal! zE -let s:l = 1 - ((0 * winheight(0) + 27) / 54) +let s:l = 5 - ((4 * winheight(0) + 27) / 55) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -1 +5 normal! 0 tabnext edit vect.h @@ -744,7 +1033,7 @@ setlocal nowinfixwidth setlocal wrap setlocal wrapmargin=0 silent! normal! zE -let s:l = 1 - ((0 * winheight(0) + 27) / 54) +let s:l = 1 - ((0 * winheight(0) + 27) / 55) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt @@ -761,6 +1050,7 @@ set winheight=1 set winminwidth=0 set winwidth=1 argglobal +1argu if bufexists("makefile") | buffer makefile | else | edit makefile | endif setlocal keymap= setlocal noarabic @@ -886,20 +1176,22 @@ setlocal nowinfixwidth setlocal wrap setlocal wrapmargin=0 silent! normal! zE -let s:l = 1 - ((0 * winheight(0) + 27) / 54) +let s:l = 1 - ((0 * winheight(0) + 27) / 55) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt 1 normal! 0 -tabnext 1 +tabnext 3 set stal=1 -badd +1 grid.c -badd +0 main.c -badd +0 vect.c -badd +0 grid.h -badd +0 vect.h -badd +0 makefile +badd +0 grid.c +badd +1 main.c +badd +1 vect.c +badd +1 grid.h +badd +1 vect.h +badd +1 makefile +badd +919 session.vim +badd +0 gri.h if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 silent exe 'bwipe ' . s:wipebuf endif @@ -911,7 +1203,6 @@ if filereadable(s:sx) exe "source " . fnameescape(s:sx) endif let &so = s:so_save | let &siso = s:siso_save -nohlsearch doautoall SessionLoadPost unlet SessionLoad " vim: set ft=vim :